diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 31c5b11fc..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es2021": true, - "node": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": "latest" - }, - "rules": { - "no-var": 2, - "no-case-declarations": 0, - "no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_", - "vars": "local" - } - ] - } -} diff --git a/.gitignore b/.gitignore index a8bba0b04..bfcddf80f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ node_modules plutip-server/dist-newstyle/ plutip-server/dist/ plutip-server/.stack-work/ +nixos.qcow2 diff --git a/CHANGELOG.md b/CHANGELOG.md index de51e725b..fcbec0bd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,67 +7,98 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -- [[v9.0.0]](#v900) - - [Deprecated](#deprecated) +- [[v9.1.0]](#v910) - [Added](#added) - - [Removed](#removed) - [Changed](#changed) + - [Removed](#removed) - [Fixed](#fixed) -- [[v8.0.0]](#v800) +- [[v9.0.0]](#v900) + - [Deprecated](#deprecated) - [Added](#added-1) + - [Removed](#removed-1) - [Changed](#changed-1) - [Fixed](#fixed-1) - - [Removed](#removed-1) -- [[v7.0.0]](#v700) +- [[v8.0.0]](#v800) - [Added](#added-2) - [Changed](#changed-2) - [Fixed](#fixed-2) - [Removed](#removed-2) -- [[v6.0.0]](#v600) +- [[v7.0.0]](#v700) - [Added](#added-3) - [Changed](#changed-3) - [Fixed](#fixed-3) - [Removed](#removed-3) -- [[v5.0.0]](#v500) +- [[v6.0.0]](#v600) - [Added](#added-4) - [Changed](#changed-4) - - [Removed](#removed-4) - [Fixed](#fixed-4) - - [Runtime Dependencies](#runtime-dependencies) -- [[v4.0.2] - 2023-01-17](#v402---2023-01-17) - - [Fixed](#fixed-5) -- [[v4.0.1] - 2022-12-20](#v401---2022-12-20) + - [Removed](#removed-4) +- [[v5.0.0]](#v500) - [Added](#added-5) -- [[v4.0.0] - 2022-12-15](#v400---2022-12-15) - - [Added](#added-6) - [Changed](#changed-5) - [Removed](#removed-5) + - [Fixed](#fixed-5) + - [Runtime Dependencies](#runtime-dependencies) +- [[v4.0.2] - 2023-01-17](#v402---2023-01-17) - [Fixed](#fixed-6) - - [Runtime Dependencies](#runtime-dependencies-1) -- [[3.0.0] - 2022-11-21](#300---2022-11-21) +- [[v4.0.1] - 2022-12-20](#v401---2022-12-20) + - [Added](#added-6) +- [[v4.0.0] - 2022-12-15](#v400---2022-12-15) - [Added](#added-7) - [Changed](#changed-6) - [Removed](#removed-6) - [Fixed](#fixed-7) - - [Runtime Dependencies](#runtime-dependencies-2) -- [[2.0.0] - 2022-09-12](#200---2022-09-12) + - [Runtime Dependencies](#runtime-dependencies-1) +- [[3.0.0] - 2022-11-21](#300---2022-11-21) - [Added](#added-8) - [Changed](#changed-7) - [Removed](#removed-7) - [Fixed](#fixed-8) -- [[2.0.0-alpha] - 2022-07-05](#200-alpha---2022-07-05) + - [Runtime Dependencies](#runtime-dependencies-2) +- [[2.0.0] - 2022-09-12](#200---2022-09-12) - [Added](#added-9) - - [Removed](#removed-8) - [Changed](#changed-8) + - [Removed](#removed-8) - [Fixed](#fixed-9) -- [[1.1.0] - 2022-06-30](#110---2022-06-30) +- [[2.0.0-alpha] - 2022-07-05](#200-alpha---2022-07-05) + - [Added](#added-10) + - [Removed](#removed-9) + - [Changed](#changed-9) - [Fixed](#fixed-10) -- [[1.0.1] - 2022-06-17](#101---2022-06-17) +- [[1.1.0] - 2022-06-30](#110---2022-06-30) - [Fixed](#fixed-11) +- [[1.0.1] - 2022-06-17](#101---2022-06-17) + - [Fixed](#fixed-12) - [[1.0.0] - 2022-06-10](#100---2022-06-10) +## [v9.1.0] + +This version provides basic Conway support and replaces Plutip with `cardano-testnet`. + +- `cardano-node`: 9.1.0 +- `ogmios`: 6.5.0 +- `kupo`: 2.9.0 +- `@mlabs-haskell/cardano-serialization-lib-gc`: `12.0.0-alpha.31` (wraps the same version of [CSL](https://github.com/Emurgo/cardano-serialization-lib/)) +- `@mlabs-haskell/uplc-apply-args`: `1.0.29-alpha` (wraps the same version of the [`uplc` crate](https://github.com/aiken-lang/aiken/tree/main/crates/uplc)) + +### Added + +- `Contract.Transaction.getTxAuxiliaryData` for querying transaction data ([#1624](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1624)). + +### Changed + +- `Contract.Test.Plutip` is replaced with `Contract.Test.Testnet` that uses `cardano-testnet` instead of Plutip. As a result, we reduced the dependency footprint (`cardano-testnet` is distributed with `cardano-node`, so there are no internal Haskell components anymore in CTL) ([#1624](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1624)) + +### Removed + +- `Contract.Transaction.getTxMetadata` - use `getTxAuxiliaryData` ([#1624](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1624)) + +### Fixed + +- Non-deterministic `ClientHttpError` raised during tests on rare occasions ([#1624](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1624)). + ## [v9.0.0] ### Deprecated @@ -94,6 +125,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Changed +- Bumped Ogmios to version 6.0.3 ([#1626](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1626)) - `Contract.Transaction.mkUnbalancedTx` now returns a tuple: a transaction and the UTxOs it used. - `Contract.Transaction.balanceTx` accepts two extra argument: a list of used UTxOs (set to `Data.Map.empty` if none of them are coming from the outside of the wallet) and balancer constraints (set to `mempty` if not needed) - Default synchronization parameters: all [wallet <-> query layer synchronization primitives](./doc/query-layers.md) are now off by default. The reason is that the runtime overhead made the users unhappy and it was not worth it for most of the users. If your dApp sends transactions in quick succession, consider enabling the synchronization again by using `softSynchronizationParams` (old behavior) or `strictSynchronizationParams`. @@ -129,7 +161,7 @@ Starting from this version, CTL does not use Plutus-domain types anymore. This c - Sharing wallets between Plutip tests - see [the docs for this feature](./doc/plutip-testing.md#sharing-wallet-state-between-tests) ([#1585](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1585)) - `runPlutipTestPlan` is a new function that executes a `ContractTestPlan`. - `sameWallets` is a new function that creates a `ContractTestPlan` from a `UtxoDistribution` and a `TestPlanM` of the same wallets running different `Contract`s. -- new `onClusterStartup` hook that allows to get cluster startup parameters (private keys, `cardano-node` socket and config paths). See [`Test.Ctl.Plutip.Contract.ClusterParameters`](./test/Plutip/Contract/ClusterParameters.purs). ([#1610](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1610)) +- new `onClusterStartup` hook that allows to get cluster startup parameters (private keys, `cardano-node` socket and config paths). See [`Test.Ctl.Plutip.Contract.ClusterParameters`](https://github.com/Plutonomicon/cardano-transaction-lib/blob/a5f9947/test/Plutip/Contract/ClusterParameters.purs). ([#1610](https://github.com/Plutonomicon/cardano-transaction-lib/pull/1610)) ### Changed diff --git a/Makefile b/Makefile index af4026a51..0bc1a80a0 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,15 @@ SHELL := bash .ONESHELL: -.PHONY: esbuild-bundle esbuild-serve webpack-bundle webpack-serve check-format format query-testnet-tip clean check-explicit-exports spago-build create-bundle-entrypoint create-html-entrypoint delete-bundle-entrypoint run-template-checks +.PHONY: esbuild-bundle esbuild-serve webpack-bundle webpack-serve check-format \ + format query-preview-testnet-tip query-preprod-testnet-tip \ + clean check-explicit-exports build create-bundle-entrypoint \ + create-html-entrypoint delete-bundle-entrypoint .SHELLFLAGS := -eu -o pipefail -c ps-sources := $(shell fd --no-ignore-parent -epurs) nix-sources := $(shell fd --no-ignore-parent -enix --exclude='spago*') js-sources := $(shell fd --no-ignore-parent -ejs -ecjs) +purs-args := "--stash --censor-lib --censor-codes=UserDefinedWarning,ImplicitImport,ImplicitQualifiedImport,ImplicitQualifiedImportReExport" ### Bundler setup @@ -21,8 +25,8 @@ preview-node-ipc = $(shell docker volume inspect store_node-preview-ipc | jq -r preprod-node-ipc = $(shell docker volume inspect store_node-preprod-ipc | jq -r '.[0].Mountpoint') serve-port := 4008 -spago-build: - @spago build +build: + @spago build --purs-args ${purs-args} create-bundle-entrypoint: @mkdir -p dist/ @@ -40,20 +44,20 @@ create-html-entrypoint: EOF -esbuild-bundle: spago-build create-bundle-entrypoint +esbuild-bundle: build create-bundle-entrypoint @mkdir -p dist/ BROWSER_RUNTIME=${browser-runtime} node esbuild/bundle.js ./dist/entrypoint.js dist/index.js @make delete-bundle-entrypoint -esbuild-serve: spago-build create-bundle-entrypoint create-html-entrypoint +esbuild-serve: build create-bundle-entrypoint create-html-entrypoint BROWSER_RUNTIME=1 node esbuild/serve.js ./dist/entrypoint.js dist/index.js dist/ ${serve-port} -webpack-bundle: spago-build create-bundle-entrypoint +webpack-bundle: build create-bundle-entrypoint BROWSER_RUNTIME=${browser-runtime} webpack --mode=production \ -o dist/ --env entry=./dist/entrypoint.js @make delete-bundle-entrypoint -webpack-serve: spago-build create-bundle-entrypoint create-html-entrypoint +webpack-serve: build create-bundle-entrypoint create-html-entrypoint BROWSER_RUNTIME=1 webpack-dev-server --progress \ --port ${serve-port} \ -o dist/ --env entry=./dist/entrypoint.js @@ -78,7 +82,7 @@ check-format: check-explicit-exports check-examples-imports check-whitespace @purs-tidy check ${ps-sources} @nixpkgs-fmt --check ${nix-sources} @prettier --log-level warn -c ${js-sources} - @eslint --quiet ${js-sources} --parser-options 'sourceType: module' + @eslint --quiet ${js-sources} format: @purs-tidy format-in-place ${ps-sources} @@ -97,14 +101,11 @@ query-preprod-testnet-tip: CARDANO_NODE_SOCKET_PATH=${preprod-node-ipc}/node.socket cardano-cli query tip \ --testnet-magic 1 -run-ci-actions: +run-ci-actions: run-template-checks nix build -L .#checks.x86_64-linux.formatting-check - nix build -L .#checks.x86_64-linux.template-deps-json - nix build -L .#checks.x86_64-linux.template-dhall-diff - nix build -L .#checks.x86_64-linux.template-version nix build -L .#checks.x86_64-linux.ctl-unit-test nix build -L .#checks.x86_64-linux.ctl-e2e-test - nix build -L .#checks.x86_64-linux.ctl-plutip-test + nix build -L .#checks.x86_64-linux.ctl-local-testnet-test nix build -L .#checks.x86_64-linux.ctl-staking-test nix build -L .#checks.x86_64-linux.examples-imports-check diff --git a/README.md b/README.md index a4ded1dce..9ccdbe83b 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Please explore our documentation to discover how to use CTL, how to set up its r - [Importing Plutus Scripts](./doc/importing-scripts.md) - [Migrating from Plutus Application Backend to CTL](./doc/plutus-comparison.md) - [Overview of testing approaches](./doc/testing.md) - - [Testing on local testnets with Plutip](./doc/plutip-testing.md) + - [Testing on local Cardano testnets](./doc/cardano-testnet-testing.md) - [End-to-end dApp testing with headless browsers](./doc/e2e-testing.md) - [Assertion utilities for testing](./doc/test-utils.md) - [Using a directory with private keys to run tests](./doc/keydir.md) diff --git a/doc/cardano-testnet-testing.md b/doc/cardano-testnet-testing.md new file mode 100644 index 000000000..7065a5ce2 --- /dev/null +++ b/doc/cardano-testnet-testing.md @@ -0,0 +1,410 @@ +# CTL integration with Cardano Testnet + +**Table of Contents** + + + +- [Overview](#overview) +- [Architecture](#architecture) +- [Testing contracts](#testing-contracts) + - [Testing with Mote](#testing-with-mote) + - [Using Mote testing interface](#using-mote-testing-interface) + - [Internal implementation overview](#internal-implementation-overview) + - [Testing in Aff context](#testing-in-aff-context) + - [Sharing wallet state between tests](#sharing-wallet-state-between-tests) + - [Writing checks in tests](#writing-checks-in-tests) + - [Note on SIGINT](#note-on-sigint) + - [Testing with Nix](#testing-with-nix) +- [Cluster configuration options](#cluster-configuration-options) + - [Current limitations](#current-limitations) +- [Using addresses with staking key components](#using-addresses-with-staking-key-components) +- [Limitations](#limitations) +- [See also](#see-also) + + + +## 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. + +## 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/) + +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 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 +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; + +## 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). + +### 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). + +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 +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. + +The [`ctl-scaffold` template](../templates/ctl-scaffold) provides a simple +`Mote`-based example. + +`Contract.Test.Testnet.testTestnetContracts` type is defined as follows: +```purescript +testTestnetContracts + :: TestnetConfig + -> TestPlanM ContractTest Unit + -> TestPlanM (Aff Unit) Unit +``` +It takes a configuration and a tree of Mote tests, where tests are of type +`ContractTest`. + +To create tests of type `ContractTest`, you should either use +`Contract.Test.Testnet.withWallets` or `Contract.Test.Testnet.noWallet`: + +```purescript +withWallets + :: forall (distr :: Type) (wallets :: Type) + . UtxoDistribution distr wallets + => distr + -> (wallets -> Contract Unit) + -> ContractTest + +noWallet :: Contract Unit -> ContractTest +noWallet test = withWallets unit (const test) +``` + +Usage of `testTestnetContracts` is similar to that of `runTestnetContract`, +and distributions are handled in the same way. Here's an example: + +```purescript +suite :: MoteT Aff (Aff Unit) Aff +suite = testTestnetContracts config do + test "Test 1" do + let + distribution :: Array BigInt /\ Array BigInt + distribution = ... + withWallets distribution \(alice /\ bob) -> do + ... + + test "Test 2" do + let + distribution :: Array BigInt + distribution = ... + withWallets distribution \alice -> do + ... + + test "Test 3" do + noWallet do + ... +``` + +#### Using Mote testing interface + +To define tests 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 +wraps them will be run for each such test or group. + +Internally `testTestnetContracts` places a bracket that sets up the CTL +environment and connects to the Cardano Testnet on the top level, so if you +want to connect only once wrap your tests or groups in a single group. In +the example above the environment and Testnet setup will happen 3 times. + +#### Internal implementation overview + +`Contract.Test.Testnet.testTestnetContracts` type is defined as follows: + +```purescript +type TestPlanM :: Type -> Type -> Type +type TestPlanM test a = MoteT Aff test Aff a + +testTestnetContracts + :: TestnetConfig + -> TestPlanM ContractTest Unit + -> TestPlanM (Aff Unit) Unit + +``` +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. + +### 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 +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. + +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. + +`Contract.Test.Testnet.runTestnetContract`'s type is defined as follows: + +```purescript +runTestnetContract + :: forall (distr :: Type) (wallets :: Type) (a :: Type) + . UtxoDistribution distr wallets + => TestnetConfig + -> distr + -> (wallets -> Contract a) + -> Aff a +``` + +`distr` is a specification of how many wallets and with 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). + +The `wallets` argument of the callback is either a `Unit`, a tuple of `KeyWallet`s +(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 +`withKeyWallet`: + +An example `Contract` with two actors using nested tuples: + +```purescript +let + distribution :: Array BigInt /\ Array BigInt + distribution = + [ BigNum.fromInt 1_000_000_000 + , BigNum.fromInt 2_000_000_000 + ] /\ + [ BigNum.fromInt 2_000_000_000 ] +runTestnetContract config distribution \(alice /\ bob) -> do + withKeyWallet alice do + pure unit -- sign, balance, submit, etc. + withKeyWallet bob do + pure unit -- sign, balance, submit, etc. +``` + +An example `Contract` with two actors using `Array`: + +```purescript +let + distribution :: Array (Array BigInt) + distribution = + -- wallet one: two UTxOs + [ [ BigNum.fromInt 1_000_000_000, BigNum.fromInt 2_000_000_000] + -- wallet two: one UTxO + , [ BigNum.fromInt 2_000_000_000 ] + ] +runTestnetContract config distribution \wallets -> do + traverse_ ( \wallet -> do + withKeyWallet wallet do + pure unit -- sign, balance, submit, etc. + ) + wallets +``` + +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 +a Testnet setup on setup and terminates it during the shutdown or in case of an +exception. Logs will be printed in case of an error. + +### Sharing wallet state between tests + +To execute tests that share the same wallet state, the use of +`Contract.Test.Testnet.runTestnetTestPlan` is suggested, which has a type of: + +```purescript +runTestnetTestPlan + :: TestnetConfig + -> ContractTestPlan + -> TestPlanM (Aff Unit) Unit +``` + +`runTestnetTestPlan` uses the exact same logic as `testTestnetContracts`, except it +requires that wallets are pre-allocated inside of the second parameter, which has a +type of `ContractTestPlan`. `Contract.Test.Testnet.sameWallets` is a helper +function that can be used to create a `ContractTestPlan` where all of the tests use +the same wallets that are defined in the `UtxoDistribution`, this function has a +type of: + +```purescript +sameWallets + :: forall (distr :: Type) (wallets :: Type) + . UtxoDistribution distr wallets + => distr + -> TestPlanM (wallets -> Contract Unit) Unit + -> ContractTestPlan +``` + +Usage of `runTestnetTestPlan` is similar to that of `testTestnetContracts`, except +that the distributions are handled slightly differently. Here's an example of +using `sameWallets`: + +```purescript +suite :: TestPlanM (Aff Unit) Unit +suite = runTestnetTestPlan config do + let + distribution :: Array BigInt /\ Array BigInt + distribution = ... + + sameWallets distribution $ + group "Test Plan" do + test "Test 1" \(alice /\ bob /\ charlie) -> do + ... + + test "Test 2" \(alice /\ bob /\ charlie) -> do + ... + + test "Test 3" \(alice /\ bob /\ charlie) -> do + ... +``` + +Another example for using `sameWallets` can be found [here](../test/Testnet/SameWallets.purs). + +### Writing checks in tests + +CTL will run contracts in your test bodies and will print errors for any failed +tests. For more complex checks you can use the [assertions library](./test-utils.md). + +### Note on SIGINT + +Due to `testTestnetContracts`/`runTestnetContract` adding listeners to the SIGINT +IPC signal, Node.js's default behavior of exiting on CTRL+C no longer occurs. This +was done to let cluster cleanup handlers run asynchronously. To restore the usual +exit-by-CTRL+C, we provide helpers to cancel an `Aff` fiber and set the exit code, +to let Node.js shut down gracefully when no more events are to be processed. + +```purescript +... +import Contract.Test.Utils (exitCode, interruptOnSignal) +import Data.Posix.Signal (Signal(SIGINT)) +import Effect.Aff (cancelWith, effectCanceler, launchAff) + +main :: Effect Unit +main = interruptOnSignal SIGINT =<< launchAff do + flip cancelWith (effectCanceler (exitCode 1)) do + ... test suite in Aff ... +``` + +### Testing with Nix + +You can run Testnet tests via CTL's `purescriptProject` as well. After creating +your project, you can use the `runLocalTestnetTest` attribute to create a Testnet testing +environment that is suitable for use with your flake's `checks`. An example: + +```nix +{ + some-testnet-test = project.runLocalTestnetTest { + name = "some-testnet-test"; + testMain = "Test.MyProject.Testnet"; + # The rest of the arguments are passed through to `runPursTest`: + env = { SOME_ENV_VAR = "${some-value}"; }; + }; +} +``` + +The usual approach is to put `projectname-testnet-test` in the `checks` attribute of +your project's `flake.nix`. This is done by default in the +[`ctl-scaffold` template](../templates/ctl-scaffold/flake.nix). + +## Cluster configuration options + +`TestnetConfig` type contains `clusterConfig` record with the following options: + +```purescript + { testnetMagic :: Int + , era :: Era + , slotLength :: Seconds + , epochSize :: Maybe UInt + } +``` + +- `slotLength` and `epochSize` define time-related protocol parameters. Epoch size + is specified in slots. + +### Current limitations + +* Non-default values of `epochSize` (current default is 80) break staking rewards - + see [this issue](https://github.com/mlabs-haskell/plutip/issues/149) for more info. + `slotLength` can be changed without any problems. + +## Using addresses with staking key components + +It's possible to use stake keys with the Testnet. `Contract.Test.Testnet.withStakeKey` +function can be used to modify the distribution spec: + +```purescript +let + privateStakeKey :: PrivateStakeKey + privateStakeKey = wrap $ unsafePartial $ fromJust + $ privateKeyFromBytes =<< hexToRawBytes + "633b1c4c4a075a538d37e062c1ed0706d3f0a94b013708e8f5ab0a0ca1df163d" + aliceUtxos = + [ BigNum.fromInt 2_000_000_000 + , BigNum.fromInt 2_000_000_000 + ] + distribution = withStakeKey privateStakeKey aliceUtxos +``` + +Although stake keys serve no real purpose in the Testnet context, they allow the +use of base addresses, and thus allow the same code for Testnet testing, in-browser +tests, and production. + +Note that CTL re-distributes tADA from payment key-only ("enterprise") addresses to +base addresses, which requires a few transactions before the test can be run. These +transactions happen on the CTL side, because the Testnet can currently handle only +enterprise addresses (see [this issue](https://github.com/mlabs-haskell/plutip/issues/103)). + +## Limitations +* See the `epochSize` configuration option problem [here](#current-limitations). +* Currently there's no way to share wallets between separate tests (which is useful + for complex protocols). You can adapt [this PR](https://github.com/IndigoProtocol/cardano-transaction-lib/pull/1) (needs to be updated for the newer versions of CTL, likely won't need too many changes) if you need it now (and even better -- make a PR to CTL). +* If you've used the [`plutus-simple-model`](https://github.com/mlabs-haskell/plutus-simple-model) library then you might know that it allows to time travel in tests, which can be very useful for testing vesting schedules, etc. Testing with the Testnet doesn't allow this, as it's running a real network. A way around this problem can be to parametrize onchain logic by a time multiplier (and use a small one for tests). + +## See also + +- To actually write the test bodies, [assertions library](./test-utils.md) can be + 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/). diff --git a/doc/comparisons.md b/doc/comparisons.md index 504ad2ca1..083f1db9e 100644 --- a/doc/comparisons.md +++ b/doc/comparisons.md @@ -71,7 +71,7 @@ Both [CTL](./staking.md) and [Lucid](https://lucid.spacebudz.io/docs/getting-sta ### Testing -CTL uses [Plutip](./plutip-testing.md), which is a tool to spawn real Cardano testnets on the fly, while Lucid uses an [emulator](https://lucid.spacebudz.io/docs/getting-started/test-emulate/). +CTL uses [Cardano Testnet](./cardano-testnet-testing.md), while Lucid uses an [emulator](https://lucid.spacebudz.io/docs/getting-started/test-emulate/). Additionally, CTL supports [testing with real wallets](./e2e-testing.md) via headless browsers and provides [an assertion library](./test-utils.md). diff --git a/doc/ctl-as-dependency.md b/doc/ctl-as-dependency.md index 0ae92e72a..cef520e0a 100644 --- a/doc/ctl-as-dependency.md +++ b/doc/ctl-as-dependency.md @@ -16,12 +16,12 @@ CTL can be imported as an additional dependency into a Purescript project built CTL exposes two `overlay`s from its flake. You can use these in the Nix setup of your own project to use the same setup as we do, e.g. the same packages and PS builders: -- `overlays.purescript` contains Purescript builders to compile Purescript sources, build bundles with Webpack/esbuild (`bundlePursProject`), run unit tests using NodeJS (`runPursTest`), and run CTL contracts on a private testnet using Plutip (`runPlutipTest`). -- `overlays.runtime` contains various packages and other tools used in CTL's runtime, including `ogmios`, `kupo`, and `plutip-server`. It also defines `buildCtlRuntime` and `launchCtlRuntime` to help you quickly launch all runtime services (see the [runtime docs](./runtime.md)) +- `overlays.purescript` contains Purescript builders to compile Purescript sources, build bundles with Webpack/esbuild (`bundlePursProject`), run unit tests using NodeJS (`runPursTest`), and run CTL contracts using Cardano Testnet (`runLocalTestnetTest`). +- `overlays.runtime` contains various packages and other tools used in CTL's runtime, including `ogmios`, `kupo`, and `cardano-node`. It also defines `buildCtlRuntime` and `launchCtlRuntime` to help you quickly launch all runtime services (see the [runtime docs](./runtime.md)) We've split the overlays into two components to allow users to more easily choose which parts of CTL's Nix infrastructure they would like to directly consume. For example, some users do not require a pre-packaged runtime and would prefer to build it themselves with more control over its components (e.g. by directly using `ogmios` from their own `inputs`). Such users might still like to use our `purescript` overlay -- splitting the `overlays` allows us to support this. `overlays.runtime` also contains several haskell.nix packages which may cause issues with `hackage.nix` versions in your own project. -Do note that `runPlutipTest` in `overlays.purescript` requires the presence of all of our runtime components. If you choose not to consume `overlays.runtime`, please ensure that your package set contains these (e.g. by adding them to your own `overlays` when instantiating `nixpkgs`). You can find a complete list of the required runtime services [here](./plutip-testing.md#architecture). +Do note that `runLocalTestnetTest` in `overlays.purescript` requires the presence of all of our runtime components. If you choose not to consume `overlays.runtime`, please ensure that your package set contains these (e.g. by adding them to your own `overlays` when instantiating `nixpkgs`). You can find a complete list of the required runtime services [here](./cardano-testnet-testing.md#architecture). To see an example project that uses both `overlays`, please refer to our [scaffolding template](../templates/ctl-scaffold/flake.nix). You can also use this template to conveniently initialize a new CTL-based project (`nix flake init -t github:Plutonomicon/cardano-transaction-lib` in a new directory). It will take a significant amount of time for spago to download the dependencies. diff --git a/doc/development.md b/doc/development.md index ef2af0575..08e7cd830 100644 --- a/doc/development.md +++ b/doc/development.md @@ -74,8 +74,8 @@ To **build** the project **without bundling and for a NodeJS environment**: - `npm run unit-test` for unit tests (no need for a runtime) - [entry point](../test/Unit.purs) - `npm run integration-test` for integration tests (requires a [runtime](./runtime.md#ctl-backend)) - [entry point](../test/Integration.purs) -- `npm run plutip-test` for Plutip integration tests (does not require a runtime) - [entry point](../test/Plutip.purs) -- `npm run staking-test` to run [Plutip](./plutip-testing.md)-powered tests for ADA staking functionality - [entry point](../test/Plutip/Staking.purs) +- `npm run testnet-test` for Cardano Testnet integration tests (does not require a runtime) - [entry point](../test/Testnet.purs) +- `npm run staking-test` to run [Cardano Testnet](./cardano-testnet-testing.md)-powered tests for ADA staking functionality - [entry point](../test/Testnet/Staking.purs) - `npm run blockfrost-test` for [Blockfrost-powered tests](./blockfrost.md) (does not require a runtime, but needs [some setup](./blockfrost.md#setting-up-a-blockfrost-powered-test-suite)) - [entry point](../test/Blockfrost/Contract.purs) - `npm run blockfrost-local-test` for self-hosted [Blockfrost-powered tests](./blockfrost.md) (requires a [local Blockfrost runtime](./blockfrost.md#running-blockfrost-locally)) - [entry point](../test/Blockfrost/Contract.purs) - `npm run e2e-test` for [tests with a headless browser](./e2e-testing.md) (requires a runtime and the tests served via HTTP: `npm run start-runtime` and `npm run e2e-serve` or `esbuild-serve`) @@ -85,9 +85,9 @@ To **build** the project **without bundling and for a NodeJS environment**: Here and below, `` should be replaced with [one of the supported systems](https://github.com/Plutonomicon/cardano-transaction-lib/blob/15fd9c5b683df47134dce4a0479f1edc30d4b6f7/flake.nix#L51) that you use, e.g. `x86_64-linux`. - Unit tests: `nix build .#checks..ctl-unit-test` -- [E2E tests in Nix with wallet mocks](./e2e-testing.md#using-cip-30-mock-with-plutip): `nix build -L .#checks..ctl-e2e-test` -- Contract tests ([Plutip](./plutip-testing.md)): `nix build -L .#checks..ctl-plutip-test` -- [Staking](./staking.md) tests ([Plutip](./plutip-testing.md)): `nix build -L .#checks..ctl-staking-test` +- [E2E tests in Nix with wallet mocks](./e2e-testing.md#using-cip-30-mock-with-cardano-testnet): `nix build -L .#checks..ctl-e2e-test` +- Contract tests ([Cardano Testnet](./cardano-testnet-testing.md)): `nix build -L .#checks..ctl-local-testnet-test` +- [Staking](./staking.md) tests ([Cardano Testnet](./cardano-testnet-testing.md)): `nix build -L .#checks..ctl-staking-test` #### Nix checks diff --git a/doc/e2e-testing.md b/doc/e2e-testing.md index 93135f941..2aa978b28 100644 --- a/doc/e2e-testing.md +++ b/doc/e2e-testing.md @@ -22,7 +22,7 @@ CTL comes with advanced machinery for E2E testing in the browser, which can be u - [Using custom unauthorized extensions](#using-custom-unauthorized-extensions) - [Serving the Contract to be tested](#serving-the-contract-to-be-tested) - [Mocking CIP-30 interface](#mocking-cip-30-interface) - - [Using CIP-30 mock with Plutip](#using-cip-30-mock-with-plutip) + - [Using CIP-30 mock with Cardano Testnet](#using-cip-30-mock-with-cardano-testnet) @@ -293,9 +293,9 @@ The `nami:` prefix should not be specified, otherwise CTL will refuse to overwri In order to use the keys, their corresponding address must be pre-funded using the [faucet](https://docs.cardano.org/cardano-testnet/tools/faucet) (beware of IP-based rate-limiting) or from another wallet. Most contracts require at least two UTxOs to run (one will be used as collateral), so it's best to make two transactions. -### Using CIP-30 mock with Plutip +### Using CIP-30 mock with Cardano Testnet -It's possible to run headless browser tests on top of a temporary plutip cluster. In this case, key generation and pre-funding will be handled by `plutip-server`, as well as deployment of all the query layer services. +It's possible to run headless browser tests on top of a Cardano Testnet cluster. To do that, it's enough to define a config name that: @@ -307,10 +307,10 @@ E.g.: ```purescript wallets :: Map E2EConfigName (ContractParams /\ Maybe WalletMock) wallets = Map.fromFoldable - [ "plutip-nami-mock" /\ mainnetNamiConfig /\ Just MockNami - , "plutip-gero-mock" /\ mainnetGeroConfig /\ Just MockGero - , "plutip-flint-mock" /\ mainnetFlintConfig /\ Just MockFlint - , "plutip-lode-mock" /\ mainnetLodeConfig /\ Just MockLode + [ "testnet-nami-mock" /\ mainnetNamiConfig /\ Just MockNami + , "testnet-gero-mock" /\ mainnetGeroConfig /\ Just MockGero + , "testnet-flint-mock" /\ mainnetFlintConfig /\ Just MockFlint + , "testnet-lode-mock" /\ mainnetLodeConfig /\ Just MockLode ] ``` @@ -327,4 +327,4 @@ Full example can be found [in the template](../templates/ctl-scaffold/test/E2E.p There are a few important caveats/limitations: - We only allow base addresses (with a stake pubkey hash present) to be used. If there's a need to use enterprise addresses, the users should move some ada to their own enterprise address, e.g. with `mustPayToPubKey` -- The amount of tAda is fixed to `1000000000000` and divided into 5 UTxOs equally +- The amount of tAda is fixed to `25_000_000_000` lovelace and divided into 5 UTxOs equally diff --git a/doc/faq.md b/doc/faq.md index dc5575a71..14be88ea7 100644 --- a/doc/faq.md +++ b/doc/faq.md @@ -28,7 +28,6 @@ This document lists common problems encountered by CTL users and developers. - [Package 'chromium-105.0.5195.125' is not supported on 'x86_64-darwin'](#package-chromium-10505195125-is-not-supported-on-x86_64-darwin) - [Miscellaneous](#miscellaneous) - [Q: Why am I getting `Error: (AtKey "coinsPerUtxoByte" MissingValue)`?](#q-why-am-i-getting-error-atkey-coinsperutxobyte-missingvalue) - - [Q: Why do I get an error from `foreign.js` when running Plutip tests locally?](#q-why-do-i-get-an-error-from-foreignjs-when-running-plutip-tests-locally) - [Q: How can I write my own Nix derivations using the project returned by `purescriptProject`?](#q-how-can-i-write-my-own-nix-derivations-using-the-project-returned-by-purescriptproject) @@ -99,8 +98,6 @@ To do anything time-related, it's best to rely on local node chain tip time, ins Time/slot conversion functions depend on `eraSummaries` [Ogmios local state query](https://ogmios.dev/mini-protocols/local-state-query/), that returns era bounds and slotting parameters details, required for proper slot arithmetic. The most common source of the problem is that Ogmios does not return enough epochs into the future. [A possible symptom](https://github.com/Plutonomicon/cardano-transaction-lib/issues/1057) is `CannotFindTimeInEraSummaries` in the error message. -When using Plutip, a solution may be [to increase the `epochSize` parameter](https://github.com/Plutonomicon/cardano-transaction-lib/issues/1057#issuecomment-1450692539). - ### Q: I'm getting `Uncomputable slot arithmetic; transaction's validity bounds go beyond the foreseeable end of the current era: PastHorizon` Ensure your transaction's validity range does not go over `SafeZone` slots of the current era. The reason for this kind of errors is that time-related estimations are slot-based, and future forks may change slot lengths. So there is only a relatively small time window in the future during which it is known that forks cannot occur. @@ -168,10 +165,6 @@ To disable, set `withChromium` to `false` in [`purescriptProject`'s `shell` argu This is because the node hasn't fully synced. The protocol parameter name changed from `coinsPerUtxoWord` to `coinsPerUtxoByte` in Babbage. CTL only supports the latest era, but Ogmios returns different protocol parameters format depending on current era of a local node. -### Q: Why do I get an error from `foreign.js` when running Plutip tests locally? - -The most likely reason for this is that spawning the external processes from `Contract.Test.Plutip` fails. Make sure that all of the required services are on your `$PATH` (see more [here](./runtime.md); you can also set `shell.withRuntime = true;` to ensure that these are always added to your shell environment when running `nix develop`). - ### Q: How can I write my own Nix derivations using the project returned by `purescriptProject`? If the different derivation builders that `purescriptProject` gives you out-of-the-box (e.g. `runPursTest`, `bundlePursProject`, etc...) are not sufficient, you can access the compiled project (all of the original `src` argument plus the `output` directory that `purs` produces) and the generated `node_modules` using the `compiled` and `nodeModules` attributes, respectively. These can be used to write your own derivations without needing to recompile the entire project (that is, the generated output can be shared between all of your Nix components). For example: diff --git a/doc/getting-started.md b/doc/getting-started.md index 280e5a724..31dbbfca3 100644 --- a/doc/getting-started.md +++ b/doc/getting-started.md @@ -226,6 +226,6 @@ See [here](./key-management.md) For full testing with browser-based light wallets see [E2E Testing in the Browser](./e2e-testing.md). -### Plutip integration +### Cardano Testnet integration -Plutip is a tool for testing contracts on a local testnet. See [CTL integration with Plutip](./plutip-testing.md). +See [CTL integration with Cardano Testnet](./cardano-testnet-testing.md). diff --git a/doc/key-management.md b/doc/key-management.md index f4635b65c..65d95fe08 100644 --- a/doc/key-management.md +++ b/doc/key-management.md @@ -66,7 +66,7 @@ Contract.Wallet.Key.mkKeyWalletFromMnemonic :: String -> Cip1852DerivationPath -> StakeKeyPresence -> Either String KeyWallet ``` -`Contract.Wallet.withKeyWalletFromMnemonic` is another helper function that lets to construct and use wallets on the fly, which is convenient for [Plutip tests](./plutip-testing.md). +`Contract.Wallet.withKeyWalletFromMnemonic` is another helper function that lets to construct and use wallets on the fly, which is convenient for [Cardano Testnet tests](./cardano-testnet-testing.md). In `ContractParams`, these values can be conveniently passed as the `walletSpec` via the `UseMnemonic` constructor: diff --git a/doc/plutip-testing.md b/doc/plutip-testing.md index e95ef09a7..a245dcdaf 100644 --- a/doc/plutip-testing.md +++ b/doc/plutip-testing.md @@ -1,366 +1,13 @@ -# CTL integration with Plutip - -[Plutip](https://github.com/mlabs-haskell/plutip) is a tool to run private Cardano testnets. CTL provides integration with Plutip via [`plutip-server` binary](https://github.com/Plutonomicon/cardano-transaction-lib/tree/develop/plutip-server) that exposes an HTTP interface to control local Cardano clusters. - -**Table of Contents** -- [Architecture](#architecture) -- [Testing contracts](#testing-contracts) - - [Testing with Mote](#testing-with-mote) - - [Overview](#overview) - - [Using Mote testing interface](#using-mote-testing-interface) - - [Internal implementation overview](#internal-implementation-overview) - - [Testing in Aff context](#testing-in-aff-context) - - [Sharing wallet state between tests](#sharing-wallet-state-between-tests) - - [Writing checks in tests](#writing-checks-in-tests) - - [Note on running clusters](#note-on-running-clusters) - - [Note on SIGINT](#note-on-sigint) - - [Testing with Nix](#testing-with-nix) -- [Cluster configuration options](#cluster-configuration-options) - - [Current limitations](#current-limitations) -- [Using addresses with staking key components](#using-addresses-with-staking-key-components) -- [Limitations](#limitations) -- [See also](#see-also) +- [CTL integration with Plutip](#ctl-integration-with-plutip) -## Architecture - -CTL depends on a number of binaries in the `$PATH` to execute Plutip tests: - -- `plutip-server` to launch a local `cardano-node` cluster -- [`ogmios`](https://ogmios.dev/) -- [`kupo`](https://cardanosolutions.github.io/kupo/) - -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.runPlutipTest` 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 Plutip tests: -1. `nix develop` followed by `npm run test` (recommended for development) -2. `nix run .#checks.x86_64-linux.ctl-scaffold-plutip-test` - * where you'd usually replace `x86_64-linux` with the system you run tests on - * and `ctl-scaffold-plutip-test` with the name of the plutip test derivation for your project; - * note that building of your project via Nix will fail in case there are any PureScript compile-time warnings. - -## Testing contracts - -CTL can help you test the offchain `Contract`s from your project (and consequently the interaction of onchain and offchain code) by spinning up a disposable private testnet via Plutip and making all your `Contract`s interact with it. - -There are two approaches to writing such tests. - -### Testing with Mote - -#### Overview - -[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). - -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 distribution of funds to a `Contract a`) via Mote and then use the `Contract.Test.Plutip.testPlutipContracts` function to execute them. -This allows to set up a Plutip cluster only once per top-level groups and tests passed to the `testPlutipContracts` 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. - -The [`ctl-scaffold` template](../templates/ctl-scaffold) provides a simple `Mote`-based example. - -`Contract.Test.Plutip.testPlutipContracts` type is defined as follows: -```purescript -testPlutipContracts - :: PlutipConfig - -> TestPlanM ContractTest Unit - -> TestPlanM (Aff Unit) Unit -``` - -It takes a plutip config and a tree of Mote tests, where tests are of type `ContractTest`. - -To create tests of type `ContractTest`, you should either use `Contract.Test.Plutip.withWallets` or `Contract.Test.Plutip.noWallet`: - -```purescript -withWallets - :: forall (distr :: Type) (wallets :: Type) - . UtxoDistribution distr wallets - => distr - -> (wallets -> Contract Unit) - -> ContractTest - -noWallet :: Contract Unit -> ContractTest -noWallet test = withWallets unit (const test) -``` - -Usage of `testPlutipContracts` is similar to that of `runPlutipContract`, and distributions are handled in the same way. Here's an example: - -```purescript -suite :: MoteT Aff (Aff Unit) Aff -suite = testPlutipContracts config do - test "Test 1" do - let - distribution :: Array BigInt /\ Array BigInt - distribution = ... - withWallets distribution \(alice /\ bob) -> do - ... - - test "Test 2" do - let - distribution :: Array BigInt - distribution = ... - withWallets distribution \alice -> do - ... - - test "Test 3" do - noWallet do - ... -``` - -#### Using Mote testing interface - -To define tests 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 wraps them will be run for each such test or group. - -Internally `testPlutipContracts` places a bracket that sets up the CTL environment and starts up the Plutip cluster on the top level, so if you want to launch cluster only once wrap your tests or groups in a single group. -In the example above the environment and cluster setup will happen 3 times. - -#### Internal implementation overview - -`Contract.Test.Plutip.testPlutipContracts` type is defined as follows (after expansion of the CTL's `TestPlanM` type synonym): -```purescript -type TestPlanM :: Type -> Type -> Type -type TestPlanM test a = MoteT Aff test Aff a - -testPlutipContracts - :: PlutipConfig - -> MoteT Aff ContractTest Aff Unit - -> MoteT Aff (Aff Unit) Aff Unit - --- Recall that `MoteT` has three type variables -newtype MoteT bracket test m a -``` -where -* `bracket :: Type -> Type` is where brackets will be run (before/setup is `bracket r` and after/shutdown is of type `r -> bracket Unit`), - * in our case it's `Aff` and is where the CTL environment and Plutip cluster setup will happen, - * also environment setup and Plutip startup and teardown will happen once per each top-level test or group inside the `testPlutipContracts` call, - * so wrap your tests or groups in a single group if you want for the cluster to start only once, -* `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. - -`testPlutipContracts` also combines distributions of individual tests in a single big distribution (via nested tuples) and modifies tests to pluck their required distributions out of the big one. -This allows to create wallets and fund them in one step, during the Plutip setup. -See the comments in the [`Ctl.Internal.Plutip.Server` module](../src/Internal/Plutip/Server.purs) for more info (relevant ones are in `execDistribution` and `testPlutipContracts` functions). - -In complicated protocols you might want to execute some `Contract`s in one test and then execute other `Contract`s which depend on some wallet-dependent state set up by the first batch of contracts, e.g. some authorization token is present at some wallet. -Keeping these steps in separate sequential tests allows to pinpoint where things failed much easier, but currently CTL uses separate wallets for each test without an easy way to refer to wallets in other tests, so you have to call first batch of contracts again to replicate the state of the wallets, which in turn might fail or mess up your protocol, because the chain state is shared between tests for each top-level group. - -### Testing in Aff context - -Second approach is to use the `Contract.Test.Plutip.runPlutipContract` function, which takes a single `Contract`, launches a Plutip cluster and executes the passed contract. -This function runs in `Aff`; it will also throw an exception should contract fail for any reason. -After the contract execution the Plutip cluster is terminated. -You can either call it directly from your test's main or use any library for grouping and describing tests which support effects in the test body, like Mote. - -`Contract.Test.Plutip.runPlutipContract`'s function type is defined as follows: - -```purescript -runPlutipContract - :: forall (distr :: Type) (wallets :: Type) (a :: Type) - . UtxoDistribution distr wallets - => PlutipConfig - -> distr - -> (wallets -> Contract a) - -> Aff a -``` - -`distr` is a specification of how many wallets and with 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). - -The `wallets` argument of the callback is either a `Unit`, a tuple of `KeyWallet`s (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 `withKeyWallet`: - -An example `Contract` with two actors using nested tuples: - -```purescript -let - distribution :: Array BigInt /\ Array BigInt - distribution = - [ BigNum.fromInt 1_000_000_000 - , BigNum.fromInt 2_000_000_000 - ] /\ - [ BigNum.fromInt 2_000_000_000 ] -runPlutipContract config distribution \(alice /\ bob) -> do - withKeyWallet alice do - pure unit -- sign, balance, submit, etc. - withKeyWallet bob do - pure unit -- sign, balance, submit, etc. -``` -An example `Contract` with two actors using `Array`: - -```purescript -let - distribution :: Array (Array BigInt) - distribution = - -- wallet one: two UTxOs - [ [ BigNum.fromInt 1_000_000_000, BigNum.fromInt 2_000_000_000] - -- wallet two: one UTxO - , [ BigNum.fromInt 2_000_000_000 ] - ] -runPlutipContract config distribution \wallets -> do - traverse_ ( \wallet -> do - withKeyWallet wallet do - pure unit -- sign, balance, submit, etc. - ) - wallets -``` - -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 `runPlutipContract` runs a contract in an `Aff.bracket`, which creates a Plutip cluster on setup and terminates it during the shutdown or in case of an exception. -Logs will be printed in case of an error. - -### Sharing wallet state between tests - -To execute tests that share the same wallet state, the use of `Contract.Test.Plutip.runPlutipTestPlan` is suggested, which has a type of: - -```purescript -runPlutipTestPlan - :: PlutipConfig - -> ContractTestPlan - -> TestPlanM (Aff Unit) Unit -``` - -`runPlutipTestPlan` uses the exact same logic to perform `testPlutipContracts`, except it requires that wallets are pre-allocated inside of the second parameter, which has a type of `ContractTestPlan`. `Contract.Test.Plutip.sameWallets` is a helper function that can be used to create a `ContractTestPlan` where all of the tests use the same wallets that are defined in the `UtxoDistribution`, this function has a type of: - -```purescript -sameWallets - :: forall (distr :: Type) (wallets :: Type) - . UtxoDistribution distr wallets - => distr - -> TestPlanM (wallets -> Contract Unit) Unit - -> ContractTestPlan -``` - -Usage of `runPlutipTestPlan` is similar to that of `testPlutipContracts`, except that the distributions are handled slightly differently. Here's an example of using `sameWallets`: - -```purescript -suite :: TestPlanM (Aff Unit) Unit -suite = runPlutipTestPlan config do - let - distribution :: Array BigInt /\ Array BigInt - distribution = ... - - sameWallets distribution $ - group "Test Plan" do - test "Test 1" \(alice /\ bob /\ charlie) -> do - ... - - test "Test 2" \(alice /\ bob /\ charlie) -> do - ... - - test "Test 3" \(alice /\ bob /\ charlie) -> do - ... -``` - -Another example for using `sameWallets` can be found [here](../test/Plutip/SameWallets.purs). - -### Writing checks in tests - -CTL will run contracts in your test bodies and will print errors for any failed tests. -For more complex checks you can use the [assertions library](./test-utils.md). - -### Note on running clusters - -The communication with Plutip happens via the `plutip-server`'s HTTP interface, which allows to start or stop a cluster. -[`plutip-server`](../plutip-server) allows only once active cluster at a time. -CTL currently launches `plutip-server` and `kupo` on pre-defined ports, so you won't be able to launch multiple environments to get parallel cluster. - - - - -### Note on SIGINT - -Due to `testPlutipContracts`/`runPlutipContract` adding listeners to the SIGINT IPC signal, Node.js's default behaviour of exiting on CTRL+C no longer occurs. This was done to let cluster cleanup handlers run asynchronously. To restore the usual exit-by-CTRL+C, we provide helpers to cancel an `Aff` fiber and set the exit code, to let Node.js shut down gracefully when no more events are to be processed. - -```purescript -... -import Contract.Test.Utils (exitCode, interruptOnSignal) -import Data.Posix.Signal (Signal(SIGINT)) -import Effect.Aff (cancelWith, effectCanceler, launchAff) - -main :: Effect Unit -main = interruptOnSignal SIGINT =<< launchAff do - flip cancelWith (effectCanceler (exitCode 1)) do - ... test suite in Aff ... -``` - -### Testing with Nix - -You can run Plutip tests via CTL's `purescriptProject` as well. After creating your project, you can use the `runPlutipTest` attribute to create a Plutip testing environment that is suitable for use with your flake's `checks`. An example: - -```nix -{ - some-plutip-test = project.runPlutipTest { - name = "some-plutip-test"; - testMain = "Test.MyProject.Plutip"; - # The rest of the arguments are passed through to `runPursTest`: - env = { SOME_ENV_VAR = "${some-value}"; }; - }; -} -``` - -The usual approach is to put `projectname-plutip-test` in the `checks` attribute of your project's `flake.nix`. -This is done by default in the [`ctl-scaffold` template](../templates/ctl-scaffold/flake.nix). - -## Cluster configuration options - -`PlutipConfig` type contains `clusterConfig` record with the following options: - -```purescript -{ slotLength :: Seconds -, epochSize :: Maybe UInt -, maxTxSize :: Maybe UInt -, raiseExUnitsToMax :: Boolean -} -``` - -- `slotLength` and `epochSize` define time-related protocol parameters. Epoch size is specified in slots. -- `maxTxSize` (in bytes) allows to stress-test protocols with more restrictive transaction size limits. -- `raiseExUnitsToMax` allows to bypass execution units limit (useful when compiling the contract with tracing in development and without it in production). - -### Current limitations - -* Non-default values of `epochSize` (current default is 80) break staking rewards - see [this issue](https://github.com/mlabs-haskell/plutip/issues/149) for more info. `slotLength` can be changed without any problems. - -## Using addresses with staking key components - -It's possible to use stake keys with Plutip. `Contract.Test.Plutip.withStakeKey` function can be used to modify the distribution spec: - -```purescript -let - privateStakeKey :: PrivateStakeKey - privateStakeKey = wrap $ unsafePartial $ fromJust - $ privateKeyFromBytes =<< hexToRawBytes - "633b1c4c4a075a538d37e062c1ed0706d3f0a94b013708e8f5ab0a0ca1df163d" - aliceUtxos = - [ BigNum.fromInt 2_000_000_000 - , BigNum.fromInt 2_000_000_000 - ] - distribution = withStakeKey privateStakeKey aliceUtxos -``` - -Although stake keys serve no real purpose in plutip context, they allow to use base addresses, and thus allow to have the same code for plutip testing, in-browser tests and production. - -Note that CTL re-distributes tADA from payment key-only ("enterprise") addresses to base addresses, which requires a few transactions before the test can be run. These transactions happen on the CTL side, because Plutip can currently handle only enterprise addreses (see [this issue](https://github.com/mlabs-haskell/plutip/issues/103)). - -## Limitations -* See the `epochSize` configuration option problem [here](#current-limitations). -* Currently there's no way to share wallets between separate tests (which is useful for complex protocols). You can adapt [this PR](https://github.com/IndigoProtocol/cardano-transaction-lib/pull/1) (needs to be updated for the newer versions of CTL, likely won't need too many changes) if you need it now (and even better -- make a PR to CTL). -* If you've used the [`plutus-simple-model`](https://github.com/mlabs-haskell/plutus-simple-model) library then you might know that it allows to time travel in tests, which can be very useful for testing vesting schedules, etc. Testing with Plutip doesn't allow this, as it's running a real network. A way around this problem can be to parametrize onchain logic by a time multiplier (and use a small one for tests). - -## See also +# CTL integration with Plutip -- To actually write the test bodies, [assertions library](./test-utils.md) can be useful [(usage example)](../examples/ContractTestUtils.purs). -- Take a look at CTL's Plutip tests for the usage examples: - - the entry point with `main` that runs Plutip tests is [here](../test/Plutip.purs), - - folder with various test suites is [here](../test/Plutip/). +The use of [Plutip](https://github.com/mlabs-haskell/plutip) in CTL is +deprecated. For information on how to test with the Cardano Testnet, please +refer to the [CTL integration with Cardano Testnet](./cardano-testnet-testing.md) +documentation. diff --git a/doc/staking.md b/doc/staking.md index a25f62006..a93ba783e 100644 --- a/doc/staking.md +++ b/doc/staking.md @@ -14,4 +14,4 @@ CTL supports all operations with stake: - Receiving rewards - Withdrawing rewards -[Our tests](../test/Plutip/Staking.purs) include examples for each of the supported cases. +[Our tests](../test/Testnet/Staking.purs) include examples for each of the supported cases. diff --git a/doc/test-utils.md b/doc/test-utils.md index 0290683dc..f2339d92b 100644 --- a/doc/test-utils.md +++ b/doc/test-utils.md @@ -87,6 +87,6 @@ type ContractCheck a = Particular values can be constructed with utility functions, as demonstrated in the [ContractTestUtils example](../examples/ContractTestUtils.purs) (see `mkAssertions`). -An example for using checks in the tests is [here](../test/Plutip/Contract/Assert.purs). +An example for using checks in the tests is [here](../test/Testnet/Contract/Assert.purs). All the functions require `Labeled` arguments, that can be constructed with `label` function; or `noLabel`, if descriptive names in error messages are not needed. diff --git a/doc/testing.md b/doc/testing.md index 19de1f429..c079c8eb7 100644 --- a/doc/testing.md +++ b/doc/testing.md @@ -4,11 +4,9 @@ This page summarizes various approaches to testing with CTL. -## Testing with Plutip +## Testing with Cardano Testnet -Plutip is a tool that allows to manage temporary `cardano-node` clusters. CTL has a test engine that controls these clusters and runs users' `Contract`s in their disposable environment. No setup is needed. - -[See here for more info](./plutip-testing.md). +[See here for more info](./cardano-testnet-testing.md). ## Testing with a headless browser (E2E testing) @@ -28,11 +26,11 @@ It is possible to test `Contract`s that explicitly use wallet connections in Nod See `Contract.Test.Cip30Mock` module. -## Plutip and CIP-30 mocking in headless browsers +## Cardano Testnet and CIP-30 mocking in headless browsers -We also provide abilities to test `Contract`s in a headless browser using query layer of a temporary Plutip cluster as backend and CIP-30 mock instead of a wallet. This method provides stronger guarantees than just CIP-30 mocking in NodeJS, while retaining the ability to be used in Nix builds (by not depending on a real light wallet extension). +We also provide abilities to test `Contract`s in a headless browser using query layer of a Cardano Testnet cluster as backend and CIP-30 mock instead of a wallet. This method provides stronger guarantees than just CIP-30 mocking in NodeJS, while retaining the ability to be used in Nix builds (by not depending on a real light wallet extension). -[See here for more info](./e2e-testing.md#using-cip-30-mock-with-plutip). +[See here for more info](./e2e-testing.md#using-cip-30-mock-with-cardano-testnet). ## Assertion helpers in PureScript diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..36f30f1d9 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,33 @@ +import js from "@eslint/js"; +import globals from "globals"; + +export default [ + js.configs.recommended, + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.commonjs, + ...globals.es2021, + ...globals.node + }, + + ecmaVersion: "latest", + sourceType: "module" + }, + + rules: { + "no-var": 2, + "no-case-declarations": 0, + + "no-unused-vars": [ + "error", + { + argsIgnorePattern: "^_", + caughtErrorsIgnorePattern: "^_", + vars: "local" + } + ] + } + } +]; diff --git a/examples/ByUrl.purs b/examples/ByUrl.purs index 8d027d171..30ae5aa1c 100644 --- a/examples/ByUrl.purs +++ b/examples/ByUrl.purs @@ -15,11 +15,7 @@ import Contract.Config ) , blockfrostPublicPreprodServerConfig , blockfrostPublicPreviewServerConfig - , mainnetFlintConfig - , mainnetGeroConfig - , mainnetLodeConfig , mainnetNamiConfig - , mainnetNuFiConfig , mkBlockfrostBackendParams , testnetConfig , testnetEternlConfig @@ -41,6 +37,7 @@ import Ctl.Examples.Cip30 as Cip30 import Ctl.Examples.Datums as Datums import Ctl.Examples.DropTokens as DropTokens import Ctl.Examples.ECDSA as ECDSA +import Ctl.Examples.IncludeDatum (contract) as IncludeDatum import Ctl.Examples.MintsMultipleTokens as MintsMultipleTokens import Ctl.Examples.NativeScriptMints as NativeScriptMints import Ctl.Examples.OneShotMinting as OneShotMinting @@ -167,12 +164,11 @@ wallets = Map.fromFoldable , "gero-mock" /\ testnetGeroConfig /\ Just MockGero , "flint-mock" /\ testnetFlintConfig /\ Just MockFlint , "lode-mock" /\ testnetLodeConfig /\ Just MockLode - -- Plutip cluster's network ID is set to mainnet: - , "plutip-nami-mock" /\ mainnetNamiConfig /\ Just MockNami - , "plutip-gero-mock" /\ mainnetGeroConfig /\ Just MockGero - , "plutip-flint-mock" /\ mainnetFlintConfig /\ Just MockFlint - , "plutip-lode-mock" /\ mainnetLodeConfig /\ Just MockLode - , "plutip-nufi-mock" /\ mainnetNuFiConfig /\ Just MockNuFi + , "plutip-nami-mock" /\ testnetNamiConfig /\ Just MockNami + , "plutip-gero-mock" /\ testnetGeroConfig /\ Just MockGero + , "plutip-flint-mock" /\ testnetFlintConfig /\ Just MockFlint + , "plutip-lode-mock" /\ testnetLodeConfig /\ Just MockLode + , "plutip-nufi-mock" /\ testnetNuFiConfig /\ Just MockNuFi ] mkBlockfrostPreviewConfig :: Maybe String -> ContractParams @@ -226,6 +222,7 @@ examples = addSuccessLog <$> Map.fromFoldable ChangeGeneration.checkChangeOutputsDistribution 3 1 5 , "ChangeGeneration1-3" /\ ChangeGeneration.checkChangeOutputsDistribution 1 3 7 + , "IncludeDatum" /\ IncludeDatum.contract ] addSuccessLog :: Contract Unit -> Contract Unit diff --git a/examples/ECDSA.purs b/examples/ECDSA.purs index 1a99d2de5..42b5366af 100644 --- a/examples/ECDSA.purs +++ b/examples/ECDSA.purs @@ -78,7 +78,7 @@ contract = do -- | Prepare the ECDSA test by locking some funds at the validator address prepTest :: Contract TransactionHash prepTest = do - validator <- liftContractM "Caonnot get validator" getValidator + validator <- liftContractM "Cannot get validator" getValidator let valHash = validatorHash validator val = Value.lovelaceValueOf BigNum.one diff --git a/examples/Helpers.purs b/examples/Helpers.purs index c52cfdb6a..cb43614fd 100644 --- a/examples/Helpers.purs +++ b/examples/Helpers.purs @@ -32,8 +32,7 @@ mkAssetName str = =<< byteArrayFromAscii str mustPayToPubKeyStakeAddress - :: forall (i :: Type) (o :: Type) - . PaymentPubKeyHash + :: PaymentPubKeyHash -> Maybe StakePubKeyHash -> Value -> Constraints.TxConstraints @@ -43,8 +42,7 @@ mustPayToPubKeyStakeAddress pkh (Just skh) = Constraints.mustPayToPubKeyAddress pkh skh mustPayToPubKeyStakeAddressWithDatum - :: forall (i :: Type) (o :: Type) - . PaymentPubKeyHash + :: PaymentPubKeyHash -> Maybe StakePubKeyHash -> PlutusData -> DatumPresence @@ -56,8 +54,7 @@ mustPayToPubKeyStakeAddressWithDatum pkh (Just skh) datum dtp = Constraints.mustPayToPubKeyAddressWithDatum pkh skh datum dtp mustPayToPubKeyStakeAddressWithScriptRef - :: forall (i :: Type) (o :: Type) - . PaymentPubKeyHash + :: PaymentPubKeyHash -> Maybe StakePubKeyHash -> ScriptRef -> Value @@ -67,8 +64,7 @@ mustPayToPubKeyStakeAddressWithScriptRef pkh Nothing scriptRef = mustPayToPubKeyStakeAddressWithScriptRef pkh (Just skh) scriptRef = Constraints.mustPayToPubKeyAddressWithScriptRef pkh skh scriptRef -submitAndLog - :: Transaction -> Contract Unit +submitAndLog :: Transaction -> Contract Unit submitAndLog bsTx = do txId <- submit bsTx logInfo' $ "Tx ID: " <> show txId diff --git a/examples/IncludeDatum.purs b/examples/IncludeDatum.purs index 42135a565..2a3f472fd 100644 --- a/examples/IncludeDatum.purs +++ b/examples/IncludeDatum.purs @@ -3,7 +3,8 @@ -- | and then spends the script Utxo. The script only checks -- | that the value of the datum is equal to 42. module Ctl.Examples.IncludeDatum - ( example + ( contract + , example , only42Script , main , payToIncludeDatum @@ -53,16 +54,18 @@ main :: Effect Unit main = example testnetNamiConfig example :: ContractParams -> Effect Unit -example cfg = launchAff_ do - runContract cfg do - logInfo' "Running Examples.IncludeDatum" - validator <- only42Script - let vhash = validatorHash validator - logInfo' "Attempt to lock value" - txId <- payToIncludeDatum vhash - awaitTxConfirmed txId - logInfo' "Tx submitted successfully, Try to spend locked values" - spendFromIncludeDatum vhash validator txId +example = launchAff_ <<< flip runContract contract + +contract :: Contract Unit +contract = do + logInfo' "Running Examples.IncludeDatum" + validator <- only42Script + let vhash = validatorHash validator + logInfo' "Attempt to lock value" + txId <- payToIncludeDatum vhash + awaitTxConfirmed txId + logInfo' "Tx submitted successfully, Try to spend locked values" + spendFromIncludeDatum vhash validator txId datum :: PlutusData datum = Integer $ BigInt.fromInt 42 diff --git a/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-2d2ce3159a465c84058d7eab67b1b345.json b/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-2d2ce3159a465c84058d7eab67b1b345.json deleted file mode 100644 index d137e184a..000000000 --- a/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-2d2ce3159a465c84058d7eab67b1b345.json +++ /dev/null @@ -1 +0,0 @@ -{"epoch":374,"min_fee_a":44,"min_fee_b":155381,"max_block_size":90112,"max_tx_size":16384,"max_block_header_size":1100,"key_deposit":"2000000","pool_deposit":"500000000","e_max":18,"n_opt":500,"a0":0.3,"rho":0.003,"tau":0.2,"decentralisation_param":0,"extra_entropy":null,"protocol_major_ver":8,"protocol_minor_ver":0,"min_utxo":"4310","min_pool_cost":"170000000","nonce":"e35763cef0b1b30b21d7cf61e8572e016fe3b71c0619a80d1d4850643357d047","cost_models":{"PlutusV1":{"addInteger-cpu-arguments-intercept":205665,"addInteger-cpu-arguments-slope":812,"addInteger-memory-arguments-intercept":1,"addInteger-memory-arguments-slope":1,"appendByteString-cpu-arguments-intercept":1000,"appendByteString-cpu-arguments-slope":571,"appendByteString-memory-arguments-intercept":0,"appendByteString-memory-arguments-slope":1,"appendString-cpu-arguments-intercept":1000,"appendString-cpu-arguments-slope":24177,"appendString-memory-arguments-intercept":4,"appendString-memory-arguments-slope":1,"bData-cpu-arguments":1000,"bData-memory-arguments":32,"blake2b_256-cpu-arguments-intercept":117366,"blake2b_256-cpu-arguments-slope":10475,"blake2b_256-memory-arguments":4,"cekApplyCost-exBudgetCPU":23000,"cekApplyCost-exBudgetMemory":100,"cekBuiltinCost-exBudgetCPU":23000,"cekBuiltinCost-exBudgetMemory":100,"cekConstCost-exBudgetCPU":23000,"cekConstCost-exBudgetMemory":100,"cekDelayCost-exBudgetCPU":23000,"cekDelayCost-exBudgetMemory":100,"cekForceCost-exBudgetCPU":23000,"cekForceCost-exBudgetMemory":100,"cekLamCost-exBudgetCPU":23000,"cekLamCost-exBudgetMemory":100,"cekStartupCost-exBudgetCPU":100,"cekStartupCost-exBudgetMemory":100,"cekVarCost-exBudgetCPU":23000,"cekVarCost-exBudgetMemory":100,"chooseData-cpu-arguments":19537,"chooseData-memory-arguments":32,"chooseList-cpu-arguments":175354,"chooseList-memory-arguments":32,"chooseUnit-cpu-arguments":46417,"chooseUnit-memory-arguments":4,"consByteString-cpu-arguments-intercept":221973,"consByteString-cpu-arguments-slope":511,"consByteString-memory-arguments-intercept":0,"consByteString-memory-arguments-slope":1,"constrData-cpu-arguments":89141,"constrData-memory-arguments":32,"decodeUtf8-cpu-arguments-intercept":497525,"decodeUtf8-cpu-arguments-slope":14068,"decodeUtf8-memory-arguments-intercept":4,"decodeUtf8-memory-arguments-slope":2,"divideInteger-cpu-arguments-constant":196500,"divideInteger-cpu-arguments-model-arguments-intercept":453240,"divideInteger-cpu-arguments-model-arguments-slope":220,"divideInteger-memory-arguments-intercept":0,"divideInteger-memory-arguments-minimum":1,"divideInteger-memory-arguments-slope":1,"encodeUtf8-cpu-arguments-intercept":1000,"encodeUtf8-cpu-arguments-slope":28662,"encodeUtf8-memory-arguments-intercept":4,"encodeUtf8-memory-arguments-slope":2,"equalsByteString-cpu-arguments-constant":245000,"equalsByteString-cpu-arguments-intercept":216773,"equalsByteString-cpu-arguments-slope":62,"equalsByteString-memory-arguments":1,"equalsData-cpu-arguments-intercept":1060367,"equalsData-cpu-arguments-slope":12586,"equalsData-memory-arguments":1,"equalsInteger-cpu-arguments-intercept":208512,"equalsInteger-cpu-arguments-slope":421,"equalsInteger-memory-arguments":1,"equalsString-cpu-arguments-constant":187000,"equalsString-cpu-arguments-intercept":1000,"equalsString-cpu-arguments-slope":52998,"equalsString-memory-arguments":1,"fstPair-cpu-arguments":80436,"fstPair-memory-arguments":32,"headList-cpu-arguments":43249,"headList-memory-arguments":32,"iData-cpu-arguments":1000,"iData-memory-arguments":32,"ifThenElse-cpu-arguments":80556,"ifThenElse-memory-arguments":1,"indexByteString-cpu-arguments":57667,"indexByteString-memory-arguments":4,"lengthOfByteString-cpu-arguments":1000,"lengthOfByteString-memory-arguments":10,"lessThanByteString-cpu-arguments-intercept":197145,"lessThanByteString-cpu-arguments-slope":156,"lessThanByteString-memory-arguments":1,"lessThanEqualsByteString-cpu-arguments-intercept":197145,"lessThanEqualsByteString-cpu-arguments-slope":156,"lessThanEqualsByteString-memory-arguments":1,"lessThanEqualsInteger-cpu-arguments-intercept":204924,"lessThanEqualsInteger-cpu-arguments-slope":473,"lessThanEqualsInteger-memory-arguments":1,"lessThanInteger-cpu-arguments-intercept":208896,"lessThanInteger-cpu-arguments-slope":511,"lessThanInteger-memory-arguments":1,"listData-cpu-arguments":52467,"listData-memory-arguments":32,"mapData-cpu-arguments":64832,"mapData-memory-arguments":32,"mkCons-cpu-arguments":65493,"mkCons-memory-arguments":32,"mkNilData-cpu-arguments":22558,"mkNilData-memory-arguments":32,"mkNilPairData-cpu-arguments":16563,"mkNilPairData-memory-arguments":32,"mkPairData-cpu-arguments":76511,"mkPairData-memory-arguments":32,"modInteger-cpu-arguments-constant":196500,"modInteger-cpu-arguments-model-arguments-intercept":453240,"modInteger-cpu-arguments-model-arguments-slope":220,"modInteger-memory-arguments-intercept":0,"modInteger-memory-arguments-minimum":1,"modInteger-memory-arguments-slope":1,"multiplyInteger-cpu-arguments-intercept":69522,"multiplyInteger-cpu-arguments-slope":11687,"multiplyInteger-memory-arguments-intercept":0,"multiplyInteger-memory-arguments-slope":1,"nullList-cpu-arguments":60091,"nullList-memory-arguments":32,"quotientInteger-cpu-arguments-constant":196500,"quotientInteger-cpu-arguments-model-arguments-intercept":453240,"quotientInteger-cpu-arguments-model-arguments-slope":220,"quotientInteger-memory-arguments-intercept":0,"quotientInteger-memory-arguments-minimum":1,"quotientInteger-memory-arguments-slope":1,"remainderInteger-cpu-arguments-constant":196500,"remainderInteger-cpu-arguments-model-arguments-intercept":453240,"remainderInteger-cpu-arguments-model-arguments-slope":220,"remainderInteger-memory-arguments-intercept":0,"remainderInteger-memory-arguments-minimum":1,"remainderInteger-memory-arguments-slope":1,"sha2_256-cpu-arguments-intercept":806990,"sha2_256-cpu-arguments-slope":30482,"sha2_256-memory-arguments":4,"sha3_256-cpu-arguments-intercept":1927926,"sha3_256-cpu-arguments-slope":82523,"sha3_256-memory-arguments":4,"sliceByteString-cpu-arguments-intercept":265318,"sliceByteString-cpu-arguments-slope":0,"sliceByteString-memory-arguments-intercept":4,"sliceByteString-memory-arguments-slope":0,"sndPair-cpu-arguments":85931,"sndPair-memory-arguments":32,"subtractInteger-cpu-arguments-intercept":205665,"subtractInteger-cpu-arguments-slope":812,"subtractInteger-memory-arguments-intercept":1,"subtractInteger-memory-arguments-slope":1,"tailList-cpu-arguments":41182,"tailList-memory-arguments":32,"trace-cpu-arguments":212342,"trace-memory-arguments":32,"unBData-cpu-arguments":31220,"unBData-memory-arguments":32,"unConstrData-cpu-arguments":32696,"unConstrData-memory-arguments":32,"unIData-cpu-arguments":43357,"unIData-memory-arguments":32,"unListData-cpu-arguments":32247,"unListData-memory-arguments":32,"unMapData-cpu-arguments":38314,"unMapData-memory-arguments":32,"verifyEd25519Signature-cpu-arguments-intercept":57996947,"verifyEd25519Signature-cpu-arguments-slope":18975,"verifyEd25519Signature-memory-arguments":10},"PlutusV2":{"addInteger-cpu-arguments-intercept":205665,"addInteger-cpu-arguments-slope":812,"addInteger-memory-arguments-intercept":1,"addInteger-memory-arguments-slope":1,"appendByteString-cpu-arguments-intercept":1000,"appendByteString-cpu-arguments-slope":571,"appendByteString-memory-arguments-intercept":0,"appendByteString-memory-arguments-slope":1,"appendString-cpu-arguments-intercept":1000,"appendString-cpu-arguments-slope":24177,"appendString-memory-arguments-intercept":4,"appendString-memory-arguments-slope":1,"bData-cpu-arguments":1000,"bData-memory-arguments":32,"blake2b_256-cpu-arguments-intercept":117366,"blake2b_256-cpu-arguments-slope":10475,"blake2b_256-memory-arguments":4,"cekApplyCost-exBudgetCPU":23000,"cekApplyCost-exBudgetMemory":100,"cekBuiltinCost-exBudgetCPU":23000,"cekBuiltinCost-exBudgetMemory":100,"cekConstCost-exBudgetCPU":23000,"cekConstCost-exBudgetMemory":100,"cekDelayCost-exBudgetCPU":23000,"cekDelayCost-exBudgetMemory":100,"cekForceCost-exBudgetCPU":23000,"cekForceCost-exBudgetMemory":100,"cekLamCost-exBudgetCPU":23000,"cekLamCost-exBudgetMemory":100,"cekStartupCost-exBudgetCPU":100,"cekStartupCost-exBudgetMemory":100,"cekVarCost-exBudgetCPU":23000,"cekVarCost-exBudgetMemory":100,"chooseData-cpu-arguments":19537,"chooseData-memory-arguments":32,"chooseList-cpu-arguments":175354,"chooseList-memory-arguments":32,"chooseUnit-cpu-arguments":46417,"chooseUnit-memory-arguments":4,"consByteString-cpu-arguments-intercept":221973,"consByteString-cpu-arguments-slope":511,"consByteString-memory-arguments-intercept":0,"consByteString-memory-arguments-slope":1,"constrData-cpu-arguments":89141,"constrData-memory-arguments":32,"decodeUtf8-cpu-arguments-intercept":497525,"decodeUtf8-cpu-arguments-slope":14068,"decodeUtf8-memory-arguments-intercept":4,"decodeUtf8-memory-arguments-slope":2,"divideInteger-cpu-arguments-constant":196500,"divideInteger-cpu-arguments-model-arguments-intercept":453240,"divideInteger-cpu-arguments-model-arguments-slope":220,"divideInteger-memory-arguments-intercept":0,"divideInteger-memory-arguments-minimum":1,"divideInteger-memory-arguments-slope":1,"encodeUtf8-cpu-arguments-intercept":1000,"encodeUtf8-cpu-arguments-slope":28662,"encodeUtf8-memory-arguments-intercept":4,"encodeUtf8-memory-arguments-slope":2,"equalsByteString-cpu-arguments-constant":245000,"equalsByteString-cpu-arguments-intercept":216773,"equalsByteString-cpu-arguments-slope":62,"equalsByteString-memory-arguments":1,"equalsData-cpu-arguments-intercept":1060367,"equalsData-cpu-arguments-slope":12586,"equalsData-memory-arguments":1,"equalsInteger-cpu-arguments-intercept":208512,"equalsInteger-cpu-arguments-slope":421,"equalsInteger-memory-arguments":1,"equalsString-cpu-arguments-constant":187000,"equalsString-cpu-arguments-intercept":1000,"equalsString-cpu-arguments-slope":52998,"equalsString-memory-arguments":1,"fstPair-cpu-arguments":80436,"fstPair-memory-arguments":32,"headList-cpu-arguments":43249,"headList-memory-arguments":32,"iData-cpu-arguments":1000,"iData-memory-arguments":32,"ifThenElse-cpu-arguments":80556,"ifThenElse-memory-arguments":1,"indexByteString-cpu-arguments":57667,"indexByteString-memory-arguments":4,"lengthOfByteString-cpu-arguments":1000,"lengthOfByteString-memory-arguments":10,"lessThanByteString-cpu-arguments-intercept":197145,"lessThanByteString-cpu-arguments-slope":156,"lessThanByteString-memory-arguments":1,"lessThanEqualsByteString-cpu-arguments-intercept":197145,"lessThanEqualsByteString-cpu-arguments-slope":156,"lessThanEqualsByteString-memory-arguments":1,"lessThanEqualsInteger-cpu-arguments-intercept":204924,"lessThanEqualsInteger-cpu-arguments-slope":473,"lessThanEqualsInteger-memory-arguments":1,"lessThanInteger-cpu-arguments-intercept":208896,"lessThanInteger-cpu-arguments-slope":511,"lessThanInteger-memory-arguments":1,"listData-cpu-arguments":52467,"listData-memory-arguments":32,"mapData-cpu-arguments":64832,"mapData-memory-arguments":32,"mkCons-cpu-arguments":65493,"mkCons-memory-arguments":32,"mkNilData-cpu-arguments":22558,"mkNilData-memory-arguments":32,"mkNilPairData-cpu-arguments":16563,"mkNilPairData-memory-arguments":32,"mkPairData-cpu-arguments":76511,"mkPairData-memory-arguments":32,"modInteger-cpu-arguments-constant":196500,"modInteger-cpu-arguments-model-arguments-intercept":453240,"modInteger-cpu-arguments-model-arguments-slope":220,"modInteger-memory-arguments-intercept":0,"modInteger-memory-arguments-minimum":1,"modInteger-memory-arguments-slope":1,"multiplyInteger-cpu-arguments-intercept":69522,"multiplyInteger-cpu-arguments-slope":11687,"multiplyInteger-memory-arguments-intercept":0,"multiplyInteger-memory-arguments-slope":1,"nullList-cpu-arguments":60091,"nullList-memory-arguments":32,"quotientInteger-cpu-arguments-constant":196500,"quotientInteger-cpu-arguments-model-arguments-intercept":453240,"quotientInteger-cpu-arguments-model-arguments-slope":220,"quotientInteger-memory-arguments-intercept":0,"quotientInteger-memory-arguments-minimum":1,"quotientInteger-memory-arguments-slope":1,"remainderInteger-cpu-arguments-constant":196500,"remainderInteger-cpu-arguments-model-arguments-intercept":453240,"remainderInteger-cpu-arguments-model-arguments-slope":220,"remainderInteger-memory-arguments-intercept":0,"remainderInteger-memory-arguments-minimum":1,"remainderInteger-memory-arguments-slope":1,"serialiseData-cpu-arguments-intercept":1159724,"serialiseData-cpu-arguments-slope":392670,"serialiseData-memory-arguments-intercept":0,"serialiseData-memory-arguments-slope":2,"sha2_256-cpu-arguments-intercept":806990,"sha2_256-cpu-arguments-slope":30482,"sha2_256-memory-arguments":4,"sha3_256-cpu-arguments-intercept":1927926,"sha3_256-cpu-arguments-slope":82523,"sha3_256-memory-arguments":4,"sliceByteString-cpu-arguments-intercept":265318,"sliceByteString-cpu-arguments-slope":0,"sliceByteString-memory-arguments-intercept":4,"sliceByteString-memory-arguments-slope":0,"sndPair-cpu-arguments":85931,"sndPair-memory-arguments":32,"subtractInteger-cpu-arguments-intercept":205665,"subtractInteger-cpu-arguments-slope":812,"subtractInteger-memory-arguments-intercept":1,"subtractInteger-memory-arguments-slope":1,"tailList-cpu-arguments":41182,"tailList-memory-arguments":32,"trace-cpu-arguments":212342,"trace-memory-arguments":32,"unBData-cpu-arguments":31220,"unBData-memory-arguments":32,"unConstrData-cpu-arguments":32696,"unConstrData-memory-arguments":32,"unIData-cpu-arguments":43357,"unIData-memory-arguments":32,"unListData-cpu-arguments":32247,"unListData-memory-arguments":32,"unMapData-cpu-arguments":38314,"unMapData-memory-arguments":32,"verifyEcdsaSecp256k1Signature-cpu-arguments":35892428,"verifyEcdsaSecp256k1Signature-memory-arguments":10,"verifyEd25519Signature-cpu-arguments-intercept":57996947,"verifyEd25519Signature-cpu-arguments-slope":18975,"verifyEd25519Signature-memory-arguments":10,"verifySchnorrSecp256k1Signature-cpu-arguments-intercept":38887044,"verifySchnorrSecp256k1Signature-cpu-arguments-slope":32947,"verifySchnorrSecp256k1Signature-memory-arguments":10}},"price_mem":0.0577,"price_step":0.0000721,"max_tx_ex_mem":"14000000","max_tx_ex_steps":"10000000000","max_block_ex_mem":"62000000","max_block_ex_steps":"20000000000","max_val_size":"5000","collateral_percent":150,"max_collateral_inputs":3,"coins_per_utxo_size":"4310","coins_per_utxo_word":"4310"} \ No newline at end of file diff --git a/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-7fe834fd628aa322eedeb3d8c7c1dd61.json b/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-7fe834fd628aa322eedeb3d8c7c1dd61.json deleted file mode 100644 index 0fed15880..000000000 --- a/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-7fe834fd628aa322eedeb3d8c7c1dd61.json +++ /dev/null @@ -1 +0,0 @@ -{"epoch":71,"min_fee_a":44,"min_fee_b":155381,"max_block_size":90112,"max_tx_size":16384,"max_block_header_size":1100,"key_deposit":"2000000","pool_deposit":"500000000","e_max":18,"n_opt":500,"a0":0.3,"rho":0.003,"tau":0.2,"decentralisation_param":0,"extra_entropy":null,"protocol_major_ver":8,"protocol_minor_ver":0,"min_utxo":"4310","min_pool_cost":"340000000","nonce":"e3ba06ef0f6021007739589d435432517a86e4e22723ac11b92b12f817718c77","cost_models":{"PlutusV1":{"addInteger-cpu-arguments-intercept":205665,"addInteger-cpu-arguments-slope":812,"addInteger-memory-arguments-intercept":1,"addInteger-memory-arguments-slope":1,"appendByteString-cpu-arguments-intercept":1000,"appendByteString-cpu-arguments-slope":571,"appendByteString-memory-arguments-intercept":0,"appendByteString-memory-arguments-slope":1,"appendString-cpu-arguments-intercept":1000,"appendString-cpu-arguments-slope":24177,"appendString-memory-arguments-intercept":4,"appendString-memory-arguments-slope":1,"bData-cpu-arguments":1000,"bData-memory-arguments":32,"blake2b_256-cpu-arguments-intercept":117366,"blake2b_256-cpu-arguments-slope":10475,"blake2b_256-memory-arguments":4,"cekApplyCost-exBudgetCPU":23000,"cekApplyCost-exBudgetMemory":100,"cekBuiltinCost-exBudgetCPU":23000,"cekBuiltinCost-exBudgetMemory":100,"cekConstCost-exBudgetCPU":23000,"cekConstCost-exBudgetMemory":100,"cekDelayCost-exBudgetCPU":23000,"cekDelayCost-exBudgetMemory":100,"cekForceCost-exBudgetCPU":23000,"cekForceCost-exBudgetMemory":100,"cekLamCost-exBudgetCPU":23000,"cekLamCost-exBudgetMemory":100,"cekStartupCost-exBudgetCPU":100,"cekStartupCost-exBudgetMemory":100,"cekVarCost-exBudgetCPU":23000,"cekVarCost-exBudgetMemory":100,"chooseData-cpu-arguments":19537,"chooseData-memory-arguments":32,"chooseList-cpu-arguments":175354,"chooseList-memory-arguments":32,"chooseUnit-cpu-arguments":46417,"chooseUnit-memory-arguments":4,"consByteString-cpu-arguments-intercept":221973,"consByteString-cpu-arguments-slope":511,"consByteString-memory-arguments-intercept":0,"consByteString-memory-arguments-slope":1,"constrData-cpu-arguments":89141,"constrData-memory-arguments":32,"decodeUtf8-cpu-arguments-intercept":497525,"decodeUtf8-cpu-arguments-slope":14068,"decodeUtf8-memory-arguments-intercept":4,"decodeUtf8-memory-arguments-slope":2,"divideInteger-cpu-arguments-constant":196500,"divideInteger-cpu-arguments-model-arguments-intercept":453240,"divideInteger-cpu-arguments-model-arguments-slope":220,"divideInteger-memory-arguments-intercept":0,"divideInteger-memory-arguments-minimum":1,"divideInteger-memory-arguments-slope":1,"encodeUtf8-cpu-arguments-intercept":1000,"encodeUtf8-cpu-arguments-slope":28662,"encodeUtf8-memory-arguments-intercept":4,"encodeUtf8-memory-arguments-slope":2,"equalsByteString-cpu-arguments-constant":245000,"equalsByteString-cpu-arguments-intercept":216773,"equalsByteString-cpu-arguments-slope":62,"equalsByteString-memory-arguments":1,"equalsData-cpu-arguments-intercept":1060367,"equalsData-cpu-arguments-slope":12586,"equalsData-memory-arguments":1,"equalsInteger-cpu-arguments-intercept":208512,"equalsInteger-cpu-arguments-slope":421,"equalsInteger-memory-arguments":1,"equalsString-cpu-arguments-constant":187000,"equalsString-cpu-arguments-intercept":1000,"equalsString-cpu-arguments-slope":52998,"equalsString-memory-arguments":1,"fstPair-cpu-arguments":80436,"fstPair-memory-arguments":32,"headList-cpu-arguments":43249,"headList-memory-arguments":32,"iData-cpu-arguments":1000,"iData-memory-arguments":32,"ifThenElse-cpu-arguments":80556,"ifThenElse-memory-arguments":1,"indexByteString-cpu-arguments":57667,"indexByteString-memory-arguments":4,"lengthOfByteString-cpu-arguments":1000,"lengthOfByteString-memory-arguments":10,"lessThanByteString-cpu-arguments-intercept":197145,"lessThanByteString-cpu-arguments-slope":156,"lessThanByteString-memory-arguments":1,"lessThanEqualsByteString-cpu-arguments-intercept":197145,"lessThanEqualsByteString-cpu-arguments-slope":156,"lessThanEqualsByteString-memory-arguments":1,"lessThanEqualsInteger-cpu-arguments-intercept":204924,"lessThanEqualsInteger-cpu-arguments-slope":473,"lessThanEqualsInteger-memory-arguments":1,"lessThanInteger-cpu-arguments-intercept":208896,"lessThanInteger-cpu-arguments-slope":511,"lessThanInteger-memory-arguments":1,"listData-cpu-arguments":52467,"listData-memory-arguments":32,"mapData-cpu-arguments":64832,"mapData-memory-arguments":32,"mkCons-cpu-arguments":65493,"mkCons-memory-arguments":32,"mkNilData-cpu-arguments":22558,"mkNilData-memory-arguments":32,"mkNilPairData-cpu-arguments":16563,"mkNilPairData-memory-arguments":32,"mkPairData-cpu-arguments":76511,"mkPairData-memory-arguments":32,"modInteger-cpu-arguments-constant":196500,"modInteger-cpu-arguments-model-arguments-intercept":453240,"modInteger-cpu-arguments-model-arguments-slope":220,"modInteger-memory-arguments-intercept":0,"modInteger-memory-arguments-minimum":1,"modInteger-memory-arguments-slope":1,"multiplyInteger-cpu-arguments-intercept":69522,"multiplyInteger-cpu-arguments-slope":11687,"multiplyInteger-memory-arguments-intercept":0,"multiplyInteger-memory-arguments-slope":1,"nullList-cpu-arguments":60091,"nullList-memory-arguments":32,"quotientInteger-cpu-arguments-constant":196500,"quotientInteger-cpu-arguments-model-arguments-intercept":453240,"quotientInteger-cpu-arguments-model-arguments-slope":220,"quotientInteger-memory-arguments-intercept":0,"quotientInteger-memory-arguments-minimum":1,"quotientInteger-memory-arguments-slope":1,"remainderInteger-cpu-arguments-constant":196500,"remainderInteger-cpu-arguments-model-arguments-intercept":453240,"remainderInteger-cpu-arguments-model-arguments-slope":220,"remainderInteger-memory-arguments-intercept":0,"remainderInteger-memory-arguments-minimum":1,"remainderInteger-memory-arguments-slope":1,"sha2_256-cpu-arguments-intercept":806990,"sha2_256-cpu-arguments-slope":30482,"sha2_256-memory-arguments":4,"sha3_256-cpu-arguments-intercept":1927926,"sha3_256-cpu-arguments-slope":82523,"sha3_256-memory-arguments":4,"sliceByteString-cpu-arguments-intercept":265318,"sliceByteString-cpu-arguments-slope":0,"sliceByteString-memory-arguments-intercept":4,"sliceByteString-memory-arguments-slope":0,"sndPair-cpu-arguments":85931,"sndPair-memory-arguments":32,"subtractInteger-cpu-arguments-intercept":205665,"subtractInteger-cpu-arguments-slope":812,"subtractInteger-memory-arguments-intercept":1,"subtractInteger-memory-arguments-slope":1,"tailList-cpu-arguments":41182,"tailList-memory-arguments":32,"trace-cpu-arguments":212342,"trace-memory-arguments":32,"unBData-cpu-arguments":31220,"unBData-memory-arguments":32,"unConstrData-cpu-arguments":32696,"unConstrData-memory-arguments":32,"unIData-cpu-arguments":43357,"unIData-memory-arguments":32,"unListData-cpu-arguments":32247,"unListData-memory-arguments":32,"unMapData-cpu-arguments":38314,"unMapData-memory-arguments":32,"verifyEd25519Signature-cpu-arguments-intercept":9462713,"verifyEd25519Signature-cpu-arguments-slope":1021,"verifyEd25519Signature-memory-arguments":10},"PlutusV2":{"addInteger-cpu-arguments-intercept":205665,"addInteger-cpu-arguments-slope":812,"addInteger-memory-arguments-intercept":1,"addInteger-memory-arguments-slope":1,"appendByteString-cpu-arguments-intercept":1000,"appendByteString-cpu-arguments-slope":571,"appendByteString-memory-arguments-intercept":0,"appendByteString-memory-arguments-slope":1,"appendString-cpu-arguments-intercept":1000,"appendString-cpu-arguments-slope":24177,"appendString-memory-arguments-intercept":4,"appendString-memory-arguments-slope":1,"bData-cpu-arguments":1000,"bData-memory-arguments":32,"blake2b_256-cpu-arguments-intercept":117366,"blake2b_256-cpu-arguments-slope":10475,"blake2b_256-memory-arguments":4,"cekApplyCost-exBudgetCPU":23000,"cekApplyCost-exBudgetMemory":100,"cekBuiltinCost-exBudgetCPU":23000,"cekBuiltinCost-exBudgetMemory":100,"cekConstCost-exBudgetCPU":23000,"cekConstCost-exBudgetMemory":100,"cekDelayCost-exBudgetCPU":23000,"cekDelayCost-exBudgetMemory":100,"cekForceCost-exBudgetCPU":23000,"cekForceCost-exBudgetMemory":100,"cekLamCost-exBudgetCPU":23000,"cekLamCost-exBudgetMemory":100,"cekStartupCost-exBudgetCPU":100,"cekStartupCost-exBudgetMemory":100,"cekVarCost-exBudgetCPU":23000,"cekVarCost-exBudgetMemory":100,"chooseData-cpu-arguments":19537,"chooseData-memory-arguments":32,"chooseList-cpu-arguments":175354,"chooseList-memory-arguments":32,"chooseUnit-cpu-arguments":46417,"chooseUnit-memory-arguments":4,"consByteString-cpu-arguments-intercept":221973,"consByteString-cpu-arguments-slope":511,"consByteString-memory-arguments-intercept":0,"consByteString-memory-arguments-slope":1,"constrData-cpu-arguments":89141,"constrData-memory-arguments":32,"decodeUtf8-cpu-arguments-intercept":497525,"decodeUtf8-cpu-arguments-slope":14068,"decodeUtf8-memory-arguments-intercept":4,"decodeUtf8-memory-arguments-slope":2,"divideInteger-cpu-arguments-constant":196500,"divideInteger-cpu-arguments-model-arguments-intercept":453240,"divideInteger-cpu-arguments-model-arguments-slope":220,"divideInteger-memory-arguments-intercept":0,"divideInteger-memory-arguments-minimum":1,"divideInteger-memory-arguments-slope":1,"encodeUtf8-cpu-arguments-intercept":1000,"encodeUtf8-cpu-arguments-slope":28662,"encodeUtf8-memory-arguments-intercept":4,"encodeUtf8-memory-arguments-slope":2,"equalsByteString-cpu-arguments-constant":245000,"equalsByteString-cpu-arguments-intercept":216773,"equalsByteString-cpu-arguments-slope":62,"equalsByteString-memory-arguments":1,"equalsData-cpu-arguments-intercept":1060367,"equalsData-cpu-arguments-slope":12586,"equalsData-memory-arguments":1,"equalsInteger-cpu-arguments-intercept":208512,"equalsInteger-cpu-arguments-slope":421,"equalsInteger-memory-arguments":1,"equalsString-cpu-arguments-constant":187000,"equalsString-cpu-arguments-intercept":1000,"equalsString-cpu-arguments-slope":52998,"equalsString-memory-arguments":1,"fstPair-cpu-arguments":80436,"fstPair-memory-arguments":32,"headList-cpu-arguments":43249,"headList-memory-arguments":32,"iData-cpu-arguments":1000,"iData-memory-arguments":32,"ifThenElse-cpu-arguments":80556,"ifThenElse-memory-arguments":1,"indexByteString-cpu-arguments":57667,"indexByteString-memory-arguments":4,"lengthOfByteString-cpu-arguments":1000,"lengthOfByteString-memory-arguments":10,"lessThanByteString-cpu-arguments-intercept":197145,"lessThanByteString-cpu-arguments-slope":156,"lessThanByteString-memory-arguments":1,"lessThanEqualsByteString-cpu-arguments-intercept":197145,"lessThanEqualsByteString-cpu-arguments-slope":156,"lessThanEqualsByteString-memory-arguments":1,"lessThanEqualsInteger-cpu-arguments-intercept":204924,"lessThanEqualsInteger-cpu-arguments-slope":473,"lessThanEqualsInteger-memory-arguments":1,"lessThanInteger-cpu-arguments-intercept":208896,"lessThanInteger-cpu-arguments-slope":511,"lessThanInteger-memory-arguments":1,"listData-cpu-arguments":52467,"listData-memory-arguments":32,"mapData-cpu-arguments":64832,"mapData-memory-arguments":32,"mkCons-cpu-arguments":65493,"mkCons-memory-arguments":32,"mkNilData-cpu-arguments":22558,"mkNilData-memory-arguments":32,"mkNilPairData-cpu-arguments":16563,"mkNilPairData-memory-arguments":32,"mkPairData-cpu-arguments":76511,"mkPairData-memory-arguments":32,"modInteger-cpu-arguments-constant":196500,"modInteger-cpu-arguments-model-arguments-intercept":453240,"modInteger-cpu-arguments-model-arguments-slope":220,"modInteger-memory-arguments-intercept":0,"modInteger-memory-arguments-minimum":1,"modInteger-memory-arguments-slope":1,"multiplyInteger-cpu-arguments-intercept":69522,"multiplyInteger-cpu-arguments-slope":11687,"multiplyInteger-memory-arguments-intercept":0,"multiplyInteger-memory-arguments-slope":1,"nullList-cpu-arguments":60091,"nullList-memory-arguments":32,"quotientInteger-cpu-arguments-constant":196500,"quotientInteger-cpu-arguments-model-arguments-intercept":453240,"quotientInteger-cpu-arguments-model-arguments-slope":220,"quotientInteger-memory-arguments-intercept":0,"quotientInteger-memory-arguments-minimum":1,"quotientInteger-memory-arguments-slope":1,"remainderInteger-cpu-arguments-constant":196500,"remainderInteger-cpu-arguments-model-arguments-intercept":453240,"remainderInteger-cpu-arguments-model-arguments-slope":220,"remainderInteger-memory-arguments-intercept":0,"remainderInteger-memory-arguments-minimum":1,"remainderInteger-memory-arguments-slope":1,"serialiseData-cpu-arguments-intercept":1159724,"serialiseData-cpu-arguments-slope":392670,"serialiseData-memory-arguments-intercept":0,"serialiseData-memory-arguments-slope":2,"sha2_256-cpu-arguments-intercept":806990,"sha2_256-cpu-arguments-slope":30482,"sha2_256-memory-arguments":4,"sha3_256-cpu-arguments-intercept":1927926,"sha3_256-cpu-arguments-slope":82523,"sha3_256-memory-arguments":4,"sliceByteString-cpu-arguments-intercept":265318,"sliceByteString-cpu-arguments-slope":0,"sliceByteString-memory-arguments-intercept":4,"sliceByteString-memory-arguments-slope":0,"sndPair-cpu-arguments":85931,"sndPair-memory-arguments":32,"subtractInteger-cpu-arguments-intercept":205665,"subtractInteger-cpu-arguments-slope":812,"subtractInteger-memory-arguments-intercept":1,"subtractInteger-memory-arguments-slope":1,"tailList-cpu-arguments":41182,"tailList-memory-arguments":32,"trace-cpu-arguments":212342,"trace-memory-arguments":32,"unBData-cpu-arguments":31220,"unBData-memory-arguments":32,"unConstrData-cpu-arguments":32696,"unConstrData-memory-arguments":32,"unIData-cpu-arguments":43357,"unIData-memory-arguments":32,"unListData-cpu-arguments":32247,"unListData-memory-arguments":32,"unMapData-cpu-arguments":38314,"unMapData-memory-arguments":32,"verifyEcdsaSecp256k1Signature-cpu-arguments":35892428,"verifyEcdsaSecp256k1Signature-memory-arguments":10,"verifyEd25519Signature-cpu-arguments-intercept":9462713,"verifyEd25519Signature-cpu-arguments-slope":1021,"verifyEd25519Signature-memory-arguments":10,"verifySchnorrSecp256k1Signature-cpu-arguments-intercept":38887044,"verifySchnorrSecp256k1Signature-cpu-arguments-slope":32947,"verifySchnorrSecp256k1Signature-memory-arguments":10}},"price_mem":0.0577,"price_step":0.0000721,"max_tx_ex_mem":"14000000","max_tx_ex_steps":"10000000000","max_block_ex_mem":"62000000","max_block_ex_steps":"40000000000","max_val_size":"5000","collateral_percent":150,"max_collateral_inputs":3,"coins_per_utxo_size":"4310","coins_per_utxo_word":"4310"} \ No newline at end of file diff --git a/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-980c21227fdfd9bad3d3a40ab41fde7a.json b/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-980c21227fdfd9bad3d3a40ab41fde7a.json new file mode 100644 index 000000000..2f81200a8 --- /dev/null +++ b/fixtures/test/blockfrost/getProtocolParameters/getProtocolParameters-980c21227fdfd9bad3d3a40ab41fde7a.json @@ -0,0 +1 @@ +{"epoch":369,"min_fee_a":44,"min_fee_b":155381,"max_block_size":90112,"max_tx_size":16384,"max_block_header_size":1100,"key_deposit":"2000000","pool_deposit":"500000000","e_max":18,"n_opt":500,"a0":0.3,"rho":0.003,"tau":0.2,"decentralisation_param":0,"extra_entropy":null,"protocol_major_ver":10,"protocol_minor_ver":0,"min_utxo":"4310","min_pool_cost":"340000000","nonce":"0fe2c964e5238d978619d2f3bf1da6ba37303cbfad99d54b3ef0c7f9297b72d7","cost_models":{"PlutusV1":{"addInteger-cpu-arguments-intercept":205665,"addInteger-cpu-arguments-slope":812,"addInteger-memory-arguments-intercept":1,"addInteger-memory-arguments-slope":1,"appendByteString-cpu-arguments-intercept":1000,"appendByteString-cpu-arguments-slope":571,"appendByteString-memory-arguments-intercept":0,"appendByteString-memory-arguments-slope":1,"appendString-cpu-arguments-intercept":1000,"appendString-cpu-arguments-slope":24177,"appendString-memory-arguments-intercept":4,"appendString-memory-arguments-slope":1,"bData-cpu-arguments":1000,"bData-memory-arguments":32,"blake2b_256-cpu-arguments-intercept":117366,"blake2b_256-cpu-arguments-slope":10475,"blake2b_256-memory-arguments":4,"cekApplyCost-exBudgetCPU":23000,"cekApplyCost-exBudgetMemory":100,"cekBuiltinCost-exBudgetCPU":23000,"cekBuiltinCost-exBudgetMemory":100,"cekConstCost-exBudgetCPU":23000,"cekConstCost-exBudgetMemory":100,"cekDelayCost-exBudgetCPU":23000,"cekDelayCost-exBudgetMemory":100,"cekForceCost-exBudgetCPU":23000,"cekForceCost-exBudgetMemory":100,"cekLamCost-exBudgetCPU":23000,"cekLamCost-exBudgetMemory":100,"cekStartupCost-exBudgetCPU":100,"cekStartupCost-exBudgetMemory":100,"cekVarCost-exBudgetCPU":23000,"cekVarCost-exBudgetMemory":100,"chooseData-cpu-arguments":19537,"chooseData-memory-arguments":32,"chooseList-cpu-arguments":175354,"chooseList-memory-arguments":32,"chooseUnit-cpu-arguments":46417,"chooseUnit-memory-arguments":4,"consByteString-cpu-arguments-intercept":221973,"consByteString-cpu-arguments-slope":511,"consByteString-memory-arguments-intercept":0,"consByteString-memory-arguments-slope":1,"constrData-cpu-arguments":89141,"constrData-memory-arguments":32,"decodeUtf8-cpu-arguments-intercept":497525,"decodeUtf8-cpu-arguments-slope":14068,"decodeUtf8-memory-arguments-intercept":4,"decodeUtf8-memory-arguments-slope":2,"divideInteger-cpu-arguments-constant":196500,"divideInteger-cpu-arguments-model-arguments-intercept":453240,"divideInteger-cpu-arguments-model-arguments-slope":220,"divideInteger-memory-arguments-intercept":0,"divideInteger-memory-arguments-minimum":1,"divideInteger-memory-arguments-slope":1,"encodeUtf8-cpu-arguments-intercept":1000,"encodeUtf8-cpu-arguments-slope":28662,"encodeUtf8-memory-arguments-intercept":4,"encodeUtf8-memory-arguments-slope":2,"equalsByteString-cpu-arguments-constant":245000,"equalsByteString-cpu-arguments-intercept":216773,"equalsByteString-cpu-arguments-slope":62,"equalsByteString-memory-arguments":1,"equalsData-cpu-arguments-intercept":1060367,"equalsData-cpu-arguments-slope":12586,"equalsData-memory-arguments":1,"equalsInteger-cpu-arguments-intercept":208512,"equalsInteger-cpu-arguments-slope":421,"equalsInteger-memory-arguments":1,"equalsString-cpu-arguments-constant":187000,"equalsString-cpu-arguments-intercept":1000,"equalsString-cpu-arguments-slope":52998,"equalsString-memory-arguments":1,"fstPair-cpu-arguments":80436,"fstPair-memory-arguments":32,"headList-cpu-arguments":43249,"headList-memory-arguments":32,"iData-cpu-arguments":1000,"iData-memory-arguments":32,"ifThenElse-cpu-arguments":80556,"ifThenElse-memory-arguments":1,"indexByteString-cpu-arguments":57667,"indexByteString-memory-arguments":4,"lengthOfByteString-cpu-arguments":1000,"lengthOfByteString-memory-arguments":10,"lessThanByteString-cpu-arguments-intercept":197145,"lessThanByteString-cpu-arguments-slope":156,"lessThanByteString-memory-arguments":1,"lessThanEqualsByteString-cpu-arguments-intercept":197145,"lessThanEqualsByteString-cpu-arguments-slope":156,"lessThanEqualsByteString-memory-arguments":1,"lessThanEqualsInteger-cpu-arguments-intercept":204924,"lessThanEqualsInteger-cpu-arguments-slope":473,"lessThanEqualsInteger-memory-arguments":1,"lessThanInteger-cpu-arguments-intercept":208896,"lessThanInteger-cpu-arguments-slope":511,"lessThanInteger-memory-arguments":1,"listData-cpu-arguments":52467,"listData-memory-arguments":32,"mapData-cpu-arguments":64832,"mapData-memory-arguments":32,"mkCons-cpu-arguments":65493,"mkCons-memory-arguments":32,"mkNilData-cpu-arguments":22558,"mkNilData-memory-arguments":32,"mkNilPairData-cpu-arguments":16563,"mkNilPairData-memory-arguments":32,"mkPairData-cpu-arguments":76511,"mkPairData-memory-arguments":32,"modInteger-cpu-arguments-constant":196500,"modInteger-cpu-arguments-model-arguments-intercept":453240,"modInteger-cpu-arguments-model-arguments-slope":220,"modInteger-memory-arguments-intercept":0,"modInteger-memory-arguments-minimum":1,"modInteger-memory-arguments-slope":1,"multiplyInteger-cpu-arguments-intercept":69522,"multiplyInteger-cpu-arguments-slope":11687,"multiplyInteger-memory-arguments-intercept":0,"multiplyInteger-memory-arguments-slope":1,"nullList-cpu-arguments":60091,"nullList-memory-arguments":32,"quotientInteger-cpu-arguments-constant":196500,"quotientInteger-cpu-arguments-model-arguments-intercept":453240,"quotientInteger-cpu-arguments-model-arguments-slope":220,"quotientInteger-memory-arguments-intercept":0,"quotientInteger-memory-arguments-minimum":1,"quotientInteger-memory-arguments-slope":1,"remainderInteger-cpu-arguments-constant":196500,"remainderInteger-cpu-arguments-model-arguments-intercept":453240,"remainderInteger-cpu-arguments-model-arguments-slope":220,"remainderInteger-memory-arguments-intercept":0,"remainderInteger-memory-arguments-minimum":1,"remainderInteger-memory-arguments-slope":1,"sha2_256-cpu-arguments-intercept":806990,"sha2_256-cpu-arguments-slope":30482,"sha2_256-memory-arguments":4,"sha3_256-cpu-arguments-intercept":1927926,"sha3_256-cpu-arguments-slope":82523,"sha3_256-memory-arguments":4,"sliceByteString-cpu-arguments-intercept":265318,"sliceByteString-cpu-arguments-slope":0,"sliceByteString-memory-arguments-intercept":4,"sliceByteString-memory-arguments-slope":0,"sndPair-cpu-arguments":85931,"sndPair-memory-arguments":32,"subtractInteger-cpu-arguments-intercept":205665,"subtractInteger-cpu-arguments-slope":812,"subtractInteger-memory-arguments-intercept":1,"subtractInteger-memory-arguments-slope":1,"tailList-cpu-arguments":41182,"tailList-memory-arguments":32,"trace-cpu-arguments":212342,"trace-memory-arguments":32,"unBData-cpu-arguments":31220,"unBData-memory-arguments":32,"unConstrData-cpu-arguments":32696,"unConstrData-memory-arguments":32,"unIData-cpu-arguments":43357,"unIData-memory-arguments":32,"unListData-cpu-arguments":32247,"unListData-memory-arguments":32,"unMapData-cpu-arguments":38314,"unMapData-memory-arguments":32,"verifyEd25519Signature-cpu-arguments-intercept":57996947,"verifyEd25519Signature-cpu-arguments-slope":18975,"verifyEd25519Signature-memory-arguments":10},"PlutusV2":{"addInteger-cpu-arguments-intercept":205665,"addInteger-cpu-arguments-slope":812,"addInteger-memory-arguments-intercept":1,"addInteger-memory-arguments-slope":1,"appendByteString-cpu-arguments-intercept":1000,"appendByteString-cpu-arguments-slope":571,"appendByteString-memory-arguments-intercept":0,"appendByteString-memory-arguments-slope":1,"appendString-cpu-arguments-intercept":1000,"appendString-cpu-arguments-slope":24177,"appendString-memory-arguments-intercept":4,"appendString-memory-arguments-slope":1,"bData-cpu-arguments":1000,"bData-memory-arguments":32,"blake2b_256-cpu-arguments-intercept":117366,"blake2b_256-cpu-arguments-slope":10475,"blake2b_256-memory-arguments":4,"cekApplyCost-exBudgetCPU":23000,"cekApplyCost-exBudgetMemory":100,"cekBuiltinCost-exBudgetCPU":23000,"cekBuiltinCost-exBudgetMemory":100,"cekConstCost-exBudgetCPU":23000,"cekConstCost-exBudgetMemory":100,"cekDelayCost-exBudgetCPU":23000,"cekDelayCost-exBudgetMemory":100,"cekForceCost-exBudgetCPU":23000,"cekForceCost-exBudgetMemory":100,"cekLamCost-exBudgetCPU":23000,"cekLamCost-exBudgetMemory":100,"cekStartupCost-exBudgetCPU":100,"cekStartupCost-exBudgetMemory":100,"cekVarCost-exBudgetCPU":23000,"cekVarCost-exBudgetMemory":100,"chooseData-cpu-arguments":19537,"chooseData-memory-arguments":32,"chooseList-cpu-arguments":175354,"chooseList-memory-arguments":32,"chooseUnit-cpu-arguments":46417,"chooseUnit-memory-arguments":4,"consByteString-cpu-arguments-intercept":221973,"consByteString-cpu-arguments-slope":511,"consByteString-memory-arguments-intercept":0,"consByteString-memory-arguments-slope":1,"constrData-cpu-arguments":89141,"constrData-memory-arguments":32,"decodeUtf8-cpu-arguments-intercept":497525,"decodeUtf8-cpu-arguments-slope":14068,"decodeUtf8-memory-arguments-intercept":4,"decodeUtf8-memory-arguments-slope":2,"divideInteger-cpu-arguments-constant":196500,"divideInteger-cpu-arguments-model-arguments-intercept":453240,"divideInteger-cpu-arguments-model-arguments-slope":220,"divideInteger-memory-arguments-intercept":0,"divideInteger-memory-arguments-minimum":1,"divideInteger-memory-arguments-slope":1,"encodeUtf8-cpu-arguments-intercept":1000,"encodeUtf8-cpu-arguments-slope":28662,"encodeUtf8-memory-arguments-intercept":4,"encodeUtf8-memory-arguments-slope":2,"equalsByteString-cpu-arguments-constant":245000,"equalsByteString-cpu-arguments-intercept":216773,"equalsByteString-cpu-arguments-slope":62,"equalsByteString-memory-arguments":1,"equalsData-cpu-arguments-intercept":1060367,"equalsData-cpu-arguments-slope":12586,"equalsData-memory-arguments":1,"equalsInteger-cpu-arguments-intercept":208512,"equalsInteger-cpu-arguments-slope":421,"equalsInteger-memory-arguments":1,"equalsString-cpu-arguments-constant":187000,"equalsString-cpu-arguments-intercept":1000,"equalsString-cpu-arguments-slope":52998,"equalsString-memory-arguments":1,"fstPair-cpu-arguments":80436,"fstPair-memory-arguments":32,"headList-cpu-arguments":43249,"headList-memory-arguments":32,"iData-cpu-arguments":1000,"iData-memory-arguments":32,"ifThenElse-cpu-arguments":80556,"ifThenElse-memory-arguments":1,"indexByteString-cpu-arguments":57667,"indexByteString-memory-arguments":4,"lengthOfByteString-cpu-arguments":1000,"lengthOfByteString-memory-arguments":10,"lessThanByteString-cpu-arguments-intercept":197145,"lessThanByteString-cpu-arguments-slope":156,"lessThanByteString-memory-arguments":1,"lessThanEqualsByteString-cpu-arguments-intercept":197145,"lessThanEqualsByteString-cpu-arguments-slope":156,"lessThanEqualsByteString-memory-arguments":1,"lessThanEqualsInteger-cpu-arguments-intercept":204924,"lessThanEqualsInteger-cpu-arguments-slope":473,"lessThanEqualsInteger-memory-arguments":1,"lessThanInteger-cpu-arguments-intercept":208896,"lessThanInteger-cpu-arguments-slope":511,"lessThanInteger-memory-arguments":1,"listData-cpu-arguments":52467,"listData-memory-arguments":32,"mapData-cpu-arguments":64832,"mapData-memory-arguments":32,"mkCons-cpu-arguments":65493,"mkCons-memory-arguments":32,"mkNilData-cpu-arguments":22558,"mkNilData-memory-arguments":32,"mkNilPairData-cpu-arguments":16563,"mkNilPairData-memory-arguments":32,"mkPairData-cpu-arguments":76511,"mkPairData-memory-arguments":32,"modInteger-cpu-arguments-constant":196500,"modInteger-cpu-arguments-model-arguments-intercept":453240,"modInteger-cpu-arguments-model-arguments-slope":220,"modInteger-memory-arguments-intercept":0,"modInteger-memory-arguments-minimum":1,"modInteger-memory-arguments-slope":1,"multiplyInteger-cpu-arguments-intercept":69522,"multiplyInteger-cpu-arguments-slope":11687,"multiplyInteger-memory-arguments-intercept":0,"multiplyInteger-memory-arguments-slope":1,"nullList-cpu-arguments":60091,"nullList-memory-arguments":32,"quotientInteger-cpu-arguments-constant":196500,"quotientInteger-cpu-arguments-model-arguments-intercept":453240,"quotientInteger-cpu-arguments-model-arguments-slope":220,"quotientInteger-memory-arguments-intercept":0,"quotientInteger-memory-arguments-minimum":1,"quotientInteger-memory-arguments-slope":1,"remainderInteger-cpu-arguments-constant":196500,"remainderInteger-cpu-arguments-model-arguments-intercept":453240,"remainderInteger-cpu-arguments-model-arguments-slope":220,"remainderInteger-memory-arguments-intercept":0,"remainderInteger-memory-arguments-minimum":1,"remainderInteger-memory-arguments-slope":1,"serialiseData-cpu-arguments-intercept":1159724,"serialiseData-cpu-arguments-slope":392670,"serialiseData-memory-arguments-intercept":0,"serialiseData-memory-arguments-slope":2,"sha2_256-cpu-arguments-intercept":806990,"sha2_256-cpu-arguments-slope":30482,"sha2_256-memory-arguments":4,"sha3_256-cpu-arguments-intercept":1927926,"sha3_256-cpu-arguments-slope":82523,"sha3_256-memory-arguments":4,"sliceByteString-cpu-arguments-intercept":265318,"sliceByteString-cpu-arguments-slope":0,"sliceByteString-memory-arguments-intercept":4,"sliceByteString-memory-arguments-slope":0,"sndPair-cpu-arguments":85931,"sndPair-memory-arguments":32,"subtractInteger-cpu-arguments-intercept":205665,"subtractInteger-cpu-arguments-slope":812,"subtractInteger-memory-arguments-intercept":1,"subtractInteger-memory-arguments-slope":1,"tailList-cpu-arguments":41182,"tailList-memory-arguments":32,"trace-cpu-arguments":212342,"trace-memory-arguments":32,"unBData-cpu-arguments":31220,"unBData-memory-arguments":32,"unConstrData-cpu-arguments":32696,"unConstrData-memory-arguments":32,"unIData-cpu-arguments":43357,"unIData-memory-arguments":32,"unListData-cpu-arguments":32247,"unListData-memory-arguments":32,"unMapData-cpu-arguments":38314,"unMapData-memory-arguments":32,"verifyEcdsaSecp256k1Signature-cpu-arguments":35892428,"verifyEcdsaSecp256k1Signature-memory-arguments":10,"verifyEd25519Signature-cpu-arguments-intercept":57996947,"verifyEd25519Signature-cpu-arguments-slope":18975,"verifyEd25519Signature-memory-arguments":10,"verifySchnorrSecp256k1Signature-cpu-arguments-intercept":38887044,"verifySchnorrSecp256k1Signature-cpu-arguments-slope":32947,"verifySchnorrSecp256k1Signature-memory-arguments":10},"PlutusV3":{"0":205665,"1":812,"2":1,"3":1,"4":1000,"5":571,"6":0,"7":1,"8":1000,"9":24177,"10":4,"11":1,"12":1000,"13":32,"14":117366,"15":10475,"16":4,"17":23000,"18":100,"19":23000,"20":100,"21":23000,"22":100,"23":23000,"24":100,"25":23000,"26":100,"27":23000,"28":100,"29":100,"30":100,"31":23000,"32":100,"33":19537,"34":32,"35":175354,"36":32,"37":46417,"38":4,"39":221973,"40":511,"41":0,"42":1,"43":89141,"44":32,"45":497525,"46":14068,"47":4,"48":2,"49":196500,"50":453240,"51":220,"52":0,"53":1,"54":1,"55":1000,"56":28662,"57":4,"58":2,"59":245000,"60":216773,"61":62,"62":1,"63":1060367,"64":12586,"65":1,"66":208512,"67":421,"68":1,"69":187000,"70":1000,"71":52998,"72":1,"73":80436,"74":32,"75":43249,"76":32,"77":1000,"78":32,"79":80556,"80":1,"81":57667,"82":4,"83":1000,"84":10,"85":197145,"86":156,"87":1,"88":197145,"89":156,"90":1,"91":204924,"92":473,"93":1,"94":208896,"95":511,"96":1,"97":52467,"98":32,"99":64832,"100":32,"101":65493,"102":32,"103":22558,"104":32,"105":16563,"106":32,"107":76511,"108":32,"109":196500,"110":453240,"111":220,"112":0,"113":1,"114":1,"115":69522,"116":11687,"117":0,"118":1,"119":60091,"120":32,"121":196500,"122":453240,"123":220,"124":0,"125":1,"126":1,"127":196500,"128":453240,"129":220,"130":0,"131":1,"132":1,"133":1159724,"134":392670,"135":0,"136":2,"137":806990,"138":30482,"139":4,"140":1927926,"141":82523,"142":4,"143":265318,"144":0,"145":4,"146":0,"147":85931,"148":32,"149":205665,"150":812,"151":1,"152":1,"153":41182,"154":32,"155":212342,"156":32,"157":31220,"158":32,"159":32696,"160":32,"161":43357,"162":32,"163":32247,"164":32,"165":38314,"166":32,"167":35190005,"168":10,"169":57996947,"170":18975,"171":10,"172":39121781,"173":32260,"174":10,"175":23000,"176":100,"177":23000,"178":100,"179":832808,"180":18,"181":3209094,"182":6,"183":331451,"184":1,"185":65990684,"186":23097,"187":18,"188":114242,"189":18,"190":94393407,"191":87060,"192":18,"193":16420089,"194":18,"195":2145798,"196":36,"197":3795345,"198":12,"199":889023,"200":1,"201":204237282,"202":23271,"203":36,"204":129165,"205":36,"206":189977790,"207":85902,"208":36,"209":33012864,"210":36,"211":388443360,"212":1,"213":401885761,"214":72,"215":2331379,"216":72,"217":1927926,"218":82523,"219":4,"220":117366,"221":10475,"222":4,"223":1292075,"224":24469,"225":74,"226":0,"227":1,"228":936157,"229":49601,"230":237,"231":0,"232":1}},"price_mem":0.0577,"price_step":0.0000721,"max_tx_ex_mem":"14000000","max_tx_ex_steps":"10000000000","max_block_ex_mem":"62000000","max_block_ex_steps":"20000000000","max_val_size":"5000","collateral_percent":150,"max_collateral_inputs":3,"coins_per_utxo_size":"4310","coins_per_utxo_word":"4310","pvt_motion_no_confidence":0.6,"pvt_committee_normal":0.6,"pvt_committee_no_confidence":0.51,"pvt_hard_fork_initiation":0.51,"dvt_motion_no_confidence":0.67,"dvt_committee_normal":0.67,"dvt_committee_no_confidence":0.6,"dvt_update_to_constitution":0.75,"dvt_hard_fork_initiation":0.6,"dvt_p_p_network_group":0.67,"dvt_p_p_economic_group":0.67,"dvt_p_p_technical_group":0.67,"dvt_p_p_gov_group":0.75,"dvt_treasury_withdrawal":0.67,"committee_min_size":"3","committee_max_term_length":"73","gov_action_lifetime":"8","gov_action_deposit":"50000000000","drep_deposit":"500000000","drep_activity":"20"} diff --git a/fixtures/test/ogmios/queryLedgerState-epoch-549aea404aff3926f2fce0325e9cd8d4.json b/fixtures/test/ogmios/queryLedgerState-epoch-549aea404aff3926f2fce0325e9cd8d4.json new file mode 100644 index 000000000..667523d64 --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-epoch-549aea404aff3926f2fce0325e9cd8d4.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/epoch","result":369,"id":"queryLedgerState/epoch-hfkgvfollxkiih0n"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-epoch-8d7a461f70d4d44d0d8cdd64c5fba15c.json b/fixtures/test/ogmios/queryLedgerState-epoch-8d7a461f70d4d44d0d8cdd64c5fba15c.json deleted file mode 100644 index 093568ebd..000000000 --- a/fixtures/test/ogmios/queryLedgerState-epoch-8d7a461f70d4d44d0d8cdd64c5fba15c.json +++ /dev/null @@ -1 +0,0 @@ -{"result":374,"method":"queryLedgerState/epoch","jsonrpc":"2.0","id":"queryLedgerState/epoch-3rvj1ml27d5loixoww7","error":null} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-epoch-f91be14635fa026f2a990508f3379064.json b/fixtures/test/ogmios/queryLedgerState-epoch-f91be14635fa026f2a990508f3379064.json new file mode 100644 index 000000000..5ef38782b --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-epoch-f91be14635fa026f2a990508f3379064.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/epoch","result":122,"id":"queryLedgerState/epoch-hfkg8z8vlxlxx1jb"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-eraSummaries-8073a8f378e969384ec52010ec6c290c.json b/fixtures/test/ogmios/queryLedgerState-eraSummaries-8073a8f378e969384ec52010ec6c290c.json new file mode 100644 index 000000000..d222d802c --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-eraSummaries-8073a8f378e969384ec52010ec6c290c.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/eraSummaries","result":[{"start":{"time":{"seconds":0},"slot":0,"epoch":0},"end":{"time":{"seconds":0},"slot":0,"epoch":0},"parameters":{"epochLength":4320,"slotLength":{"milliseconds":20000},"safeZone":864}},{"start":{"time":{"seconds":0},"slot":0,"epoch":0},"end":{"time":{"seconds":0},"slot":0,"epoch":0},"parameters":{"epochLength":86400,"slotLength":{"milliseconds":1000},"safeZone":25920}},{"start":{"time":{"seconds":0},"slot":0,"epoch":0},"end":{"time":{"seconds":0},"slot":0,"epoch":0},"parameters":{"epochLength":86400,"slotLength":{"milliseconds":1000},"safeZone":25920}},{"start":{"time":{"seconds":0},"slot":0,"epoch":0},"end":{"time":{"seconds":0},"slot":0,"epoch":0},"parameters":{"epochLength":86400,"slotLength":{"milliseconds":1000},"safeZone":25920}},{"start":{"time":{"seconds":0},"slot":0,"epoch":0},"end":{"time":{"seconds":172800},"slot":172800,"epoch":2},"parameters":{"epochLength":86400,"slotLength":{"milliseconds":1000},"safeZone":25920}},{"start":{"time":{"seconds":172800},"slot":172800,"epoch":2},"end":{"time":{"seconds":28944000},"slot":28944000,"epoch":335},"parameters":{"epochLength":86400,"slotLength":{"milliseconds":1000},"safeZone":25920}},{"start":{"time":{"seconds":28944000},"slot":28944000,"epoch":335},"end":{"time":{"seconds":31968000},"slot":31968000,"epoch":370},"parameters":{"epochLength":86400,"slotLength":{"milliseconds":1000},"safeZone":25920}}],"id":"queryLedgerState/eraSummaries-hfkgvfollxkiih0o"} diff --git a/fixtures/test/ogmios/queryLedgerState-eraSummaries-d8b19110b9580cddfa3895eea34c2139.json b/fixtures/test/ogmios/queryLedgerState-eraSummaries-d8b19110b9580cddfa3895eea34c2139.json deleted file mode 100644 index 6a2ce7478..000000000 --- a/fixtures/test/ogmios/queryLedgerState-eraSummaries-d8b19110b9580cddfa3895eea34c2139.json +++ /dev/null @@ -1 +0,0 @@ -{"result":[{"start":{"time":0,"slot":0,"epoch":0},"end":{"time":0,"slot":0,"epoch":0},"parameters":{"epochLength":4320,"slotLength":{"seconds":20},"safeZone":864}},{"start":{"time":0,"slot":0,"epoch":0},"end":{"time":0,"slot":0,"epoch":0},"parameters":{"epochLength":86400,"slotLength":{"seconds":1},"safeZone":25920}},{"start":{"time":0,"slot":0,"epoch":0},"end":{"time":0,"slot":0,"epoch":0},"parameters":{"epochLength":86400,"slotLength":{"seconds":1},"safeZone":25920}},{"start":{"time":0,"slot":0,"epoch":0},"end":{"time":0,"slot":0,"epoch":0},"parameters":{"epochLength":86400,"slotLength":{"seconds":1},"safeZone":25920}},{"start":{"time":0,"slot":0,"epoch":0},"end":{"time":259200,"slot":259200,"epoch":3},"parameters":{"epochLength":86400,"slotLength":{"seconds":1},"safeZone":25920}},{"start":{"time":259200,"slot":259200,"epoch":3},"end":{"time":32486400,"slot":32486400,"epoch":376},"parameters":{"epochLength":86400,"slotLength":{"seconds":1},"safeZone":25920}}],"method":"queryLedgerState/eraSummaries","jsonrpc":"2.0","id":"queryLedgerState/eraSummaries-3rvj1ml27d5loixoww8","error":null} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-protocolParameters-44aa6959a9fdb9d5e92b85678918374e.json b/fixtures/test/ogmios/queryLedgerState-protocolParameters-44aa6959a9fdb9d5e92b85678918374e.json new file mode 100644 index 000000000..46aa46ae2 --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-protocolParameters-44aa6959a9fdb9d5e92b85678918374e.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/protocolParameters","result":{"minFeeCoefficient":44,"minFeeConstant":{"ada":{"lovelace":155381}},"maxBlockBodySize":{"bytes":90112},"maxBlockHeaderSize":{"bytes":1100},"maxTransactionSize":{"bytes":16384},"stakeCredentialDeposit":{"ada":{"lovelace":2000000}},"stakePoolDeposit":{"ada":{"lovelace":500000000}},"stakePoolRetirementEpochBound":18,"desiredNumberOfStakePools":500,"stakePoolPledgeInfluence":"3/10","monetaryExpansion":"3/1000","treasuryExpansion":"1/5","minStakePoolCost":{"ada":{"lovelace":340000000}},"minUtxoDepositConstant":{"ada":{"lovelace":0}},"minUtxoDepositCoefficient":4310,"plutusCostModels":{"plutus:v1":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,57996947,18975,10],"plutus:v2":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,1159724,392670,0,2,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,35892428,10,57996947,18975,10,38887044,32947,10],"plutus:v3":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,1159724,392670,0,2,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,35190005,10,57996947,18975,10,39121781,32260,10,23000,100,23000,100,832808,18,3209094,6,331451,1,65990684,23097,18,114242,18,94393407,87060,18,16420089,18,2145798,36,3795345,12,889023,1,204237282,23271,36,129165,36,189977790,85902,36,33012864,36,388443360,1,401885761,72,2331379,72,1927926,82523,4,117366,10475,4,1292075,24469,74,0,1,936157,49601,237,0,1]},"scriptExecutionPrices":{"memory":"577/10000","cpu":"721/10000000"},"maxExecutionUnitsPerTransaction":{"memory":14000000,"cpu":10000000000},"maxExecutionUnitsPerBlock":{"memory":62000000,"cpu":20000000000},"maxValueSize":{"bytes":5000},"collateralPercentage":150,"maxCollateralInputs":3,"version":{"major":10,"minor":0},"stakePoolVotingThresholds":{"noConfidence":"3/5","constitutionalCommittee":{"default":"3/5","stateOfNoConfidence":"51/100"},"hardForkInitiation":"51/100"},"delegateRepresentativeVotingThresholds":{"noConfidence":"67/100","constitutionalCommittee":{"default":"67/100","stateOfNoConfidence":"3/5"},"constitution":"3/4","hardForkInitiation":"3/5","protocolParametersUpdate":{"network":"67/100","economic":"67/100","technical":"67/100","governance":"3/4"},"treasuryWithdrawals":"67/100"},"constitutionalCommitteeMinSize":3,"constitutionalCommitteeMaxTermLength":73,"governanceActionLifetime":8,"governanceActionDeposit":{"ada":{"lovelace":50000000000}},"delegateRepresentativeDeposit":{"ada":{"lovelace":500000000}},"delegateRepresentativeMaxIdleTime":20},"id":"queryLedgerState/protocolParameters-hfkgvfollxkiih0p"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-protocolParameters-68ba1141d17af9326cad70407ea3d7fb.json b/fixtures/test/ogmios/queryLedgerState-protocolParameters-68ba1141d17af9326cad70407ea3d7fb.json deleted file mode 100644 index 154c4a496..000000000 --- a/fixtures/test/ogmios/queryLedgerState-protocolParameters-68ba1141d17af9326cad70407ea3d7fb.json +++ /dev/null @@ -1 +0,0 @@ -{"result":{"minFeeCoefficient":44,"minFeeConstant":{"lovelace":155381},"maxBlockBodySize":{"bytes":90112},"maxBlockHeaderSize":{"bytes":1100},"maxTransactionSize":{"bytes":16384},"stakeCredentialDeposit":{"lovelace":2000000},"stakePoolDeposit":{"lovelace":500000000},"stakePoolRetirementEpochBound":18,"desiredNumberOfStakePools":500,"stakePoolPledgeInfluence":"3/10","monetaryExpansion":"3/1000","treasuryExpansion":"1/5","minStakePoolCost":{"lovelace":170000000},"minUtxoDepositConstant":0,"minUtxoDepositCoefficient":4310,"plutusCostModels":{"plutus:v1":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,57996947,18975,10],"plutus:v2":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,1159724,392670,0,2,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,35892428,10,57996947,18975,10,38887044,32947,10]},"scriptExecutionPrices":{"memory":"577/10000","cpu":"721/10000000"},"maxExecutionUnitsPerTransaction":{"memory":14000000,"cpu":10000000000},"maxExecutionUnitsPerBlock":{"memory":62000000,"cpu":20000000000},"maxValueSize":{"bytes":5000},"collateralPercentage":150,"maxCollateralInputs":3,"version":{"major":8,"minor":0}},"method":"queryLedgerState/protocolParameters","jsonrpc":"2.0","id":"queryLedgerState/protocolParameters-3rvj1ml27d5loixoww9","error":null} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-protocolParameters-f39db65d5d9dc11e511f061b37349173.json b/fixtures/test/ogmios/queryLedgerState-protocolParameters-f39db65d5d9dc11e511f061b37349173.json new file mode 100644 index 000000000..dba57f04f --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-protocolParameters-f39db65d5d9dc11e511f061b37349173.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/protocolParameters","result":{"minFeeCoefficient":44,"minFeeConstant":{"ada":{"lovelace":155381}},"maxBlockBodySize":{"bytes":90112},"maxBlockHeaderSize":{"bytes":1100},"maxTransactionSize":{"bytes":16384},"stakeCredentialDeposit":{"ada":{"lovelace":2000000}},"stakePoolDeposit":{"ada":{"lovelace":500000000}},"stakePoolRetirementEpochBound":18,"desiredNumberOfStakePools":500,"stakePoolPledgeInfluence":"3/10","monetaryExpansion":"3/1000","treasuryExpansion":"1/5","minStakePoolCost":{"ada":{"lovelace":170000000}},"minUtxoDepositConstant":{"ada":{"lovelace":0}},"minUtxoDepositCoefficient":4310,"plutusCostModels":{"plutus:v1":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,57996947,18975,10],"plutus:v2":[205665,812,1,1,1000,571,0,1,1000,24177,4,1,1000,32,117366,10475,4,23000,100,23000,100,23000,100,23000,100,23000,100,23000,100,100,100,23000,100,19537,32,175354,32,46417,4,221973,511,0,1,89141,32,497525,14068,4,2,196500,453240,220,0,1,1,1000,28662,4,2,245000,216773,62,1,1060367,12586,1,208512,421,1,187000,1000,52998,1,80436,32,43249,32,1000,32,80556,1,57667,4,1000,10,197145,156,1,197145,156,1,204924,473,1,208896,511,1,52467,32,64832,32,65493,32,22558,32,16563,32,76511,32,196500,453240,220,0,1,1,69522,11687,0,1,60091,32,196500,453240,220,0,1,1,196500,453240,220,0,1,1,1159724,392670,0,2,806990,30482,4,1927926,82523,4,265318,0,4,0,85931,32,205665,812,1,1,41182,32,212342,32,31220,32,32696,32,43357,32,32247,32,38314,32,35892428,10,57996947,18975,10,38887044,32947,10]},"scriptExecutionPrices":{"memory":"577/10000","cpu":"721/10000000"},"maxExecutionUnitsPerTransaction":{"memory":14000000,"cpu":10000000000},"maxExecutionUnitsPerBlock":{"memory":62000000,"cpu":20000000000},"maxValueSize":{"bytes":5000},"collateralPercentage":150,"maxCollateralInputs":3,"version":{"major":8,"minor":0}},"id":"queryLedgerState/protocolParameters-hfkg1hk4lxm0pfyy"} diff --git a/fixtures/test/ogmios/queryLedgerState-stakePools-0147fed3c201c7769462ebd9f2e0aa8d.json b/fixtures/test/ogmios/queryLedgerState-stakePools-0147fed3c201c7769462ebd9f2e0aa8d.json new file mode 100644 index 000000000..fe3504a59 --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-stakePools-0147fed3c201c7769462ebd9f2e0aa8d.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/stakePools","result":{"pool1qfjpgpy83v9hal8z3hjnt3namnc8xcrqstgp504sr2p2krfu7dd":{"id":"pool1qfjpgpy83v9hal8z3hjnt3namnc8xcrqstgp504sr2p2krfu7dd","vrfVerificationKeyHash":"39af5d6fcd342985e6c3bd7159b8f74eb8a2181a9eae524fecf02b58fa3ef95d","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"21/500","rewardAccount":"stake_test1uqzah3n6wfgxw78kmha95vnpnq35yqlnqq8e0q9vf79pfjq30m0al","owners":["05dbc67a72506778f6ddfa5a326198234203f3000f9780ac4f8a14c8"],"relays":[{"type":"hostname","hostname":"test.smaug.pool.pm","port":3004}],"metadata":{"url":"https://smaug.pool.pm/meta-b4391f2c.json","hash":"b4391f2c278c8b34fd73a1b33ea20da50383e1a906d11ba27c644975cba97412"}},"pool1rdaxrw3722f0x3nx4uam9u9c6dh9qqd2g83r2uyllf53qmmj5uu":{"id":"pool1rdaxrw3722f0x3nx4uam9u9c6dh9qqd2g83r2uyllf53qmmj5uu","vrfVerificationKeyHash":"fdb9ec5d3e9774458dbdb7b337190fc9a2fbc585f28060fd0158ee8f9a96b8a2","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":10000000000}},"margin":"1/10","rewardAccount":"stake_test1urqntq4wexjylnrdnp97qq79qkxxvrsa9lcnwr7ckjd6w0cr04y4p","owners":["c13582aec9a44fcc6d984be003c5058c660e1d2ff1370fd8b49ba73f"],"relays":[{"type":"hostname","hostname":"test.stakepool.at","port":3001}],"metadata":{"url":"https://my-ip.at/test/sanchopool.metadata.json","hash":"69059846a028ab1161218d3b683502abcc0513a88567de78cc18b43d506e3f3c"}},"pool1xrr9pc5wrh6p30mgsx5f87lcwgzrk53dylt6mr4dgs7gyy7vrl8":{"id":"pool1xrr9pc5wrh6p30mgsx5f87lcwgzrk53dylt6mr4dgs7gyy7vrl8","vrfVerificationKeyHash":"006bf4607575e637cc001309fb9ee1a7d298c1854ee680004586989080affd6f","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":420000000}},"margin":"1/10","rewardAccount":"stake_test1uqucy2kt9hvqatv66um3n9k250txwk75fdk5nderred0v0q8tc0ex","owners":["39822acb2dd80ead9ad7371996caa3d6675bd44b6d49b7231e5af63c"],"relays":[{"type":"hostname","hostname":"sn-relay1.apexpool.info","port":3001}],"metadata":{"url":"https://apexpool.info/testnet/poolmetadata.json","hash":"a207f23a6255eeb0b508945e5170b169eb5c3220109d7fa17a7d88d462c8a199"}},"pool1xxym8esp42n98d5xa9mg96hp8x3lflfzdde3k9jvwgqsqmpc7k0":{"id":"pool1xxym8esp42n98d5xa9mg96hp8x3lflfzdde3k9jvwgqsqmpc7k0","vrfVerificationKeyHash":"2cf4c32db8b90524046b2970e9839d9ff50234a0b701514531b629ad4064d64f","pledge":{"ada":{"lovelace":90000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uqgpckl60xvctfhfdtdmtpv7jr97fg8yah977sy2xc39tzcqq85ws","owners":["101c5bfa799985a6e96adbb5859e90cbe4a0e4edcbef408a3622558b"],"relays":[{"type":"hostname","hostname":"node1.cardano.gratis","port":6401},{"type":"hostname","hostname":"node2.cardano.gratis","port":6402}],"metadata":{"url":"https://cardano.gratis/poolmetadatasanchonet.json","hash":"42bccfe66e06bdfaac74c361c5f8d9f6fa899c82f1f72815fd6e48deead38ccc"}},"pool1x2zyeurdn6p0vfus5hye5hcjdu2pk9lp43wkpp7g0hasxjxu0r6":{"id":"pool1x2zyeurdn6p0vfus5hye5hcjdu2pk9lp43wkpp7g0hasxjxu0r6","vrfVerificationKeyHash":"5889f906dd051543f7bfbc8d0c95110260ccdfa26a905d247a8f7499bb87d283","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uzkfmfgarpr7ghgz7w7cunv06r8tqncrh6xsynee2gxj5ks3r8g2w","owners":["ac9da51d1847e45d02f3bd8e4d8fd0ceb04f03be8d024f39520d2a5a"],"relays":[{"type":"hostname","hostname":"c-sn-rn01.liv.io","port":30004},{"type":"hostname","hostname":"c-sn-rn02.liv.io","port":30004}],"metadata":{"url":"https://liv.io/metadata.json","hash":"78409be753a669ae5eb8c81ee7f3f1a48e8a265ebc6814e6247af4440d50b515"}},"pool180jwa8p7zyjke2g8q8gccfl0fhqm5e3guqeh03vjlmfx2jdn6h6":{"id":"pool180jwa8p7zyjke2g8q8gccfl0fhqm5e3guqeh03vjlmfx2jdn6h6","vrfVerificationKeyHash":"e8b0fb834d5574273d44979b1a4a44a8f829cce2b32aa09d34827ac06995236a","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urceznh2v6kel2rxlyqmay9caqff0fgtettjwnkhz59fnlghle5jn","owners":["f1914eea66ad9fa866f901be90b8e81297a50bcad7274ed7150a99fd"],"relays":[{"type":"hostname","hostname":"sanchorelay.junglestakepool.com","port":3003}],"metadata":{"url":"https://junglestakepool.com/jp-sanchonet.json","hash":"ed8428ea6ab07e94f8af44a0ddec8df1ccf63401b5592f88831fed0da9dda860"}},"pool1fhr6s9xqqu7cenr662paxcyyhcxvdwga0355v22h9z50zrcxljs":{"id":"pool1fhr6s9xqqu7cenr662paxcyyhcxvdwga0355v22h9z50zrcxljs","vrfVerificationKeyHash":"5c047db583e2d79ed308bde394664b3675465b2ec350388f957ba96dfecb8d9d","pledge":{"ada":{"lovelace":50000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uqj3zvljhu695w0yzqvtp3w5lra6vzgxd0lz50rh4s38yssxfmvqf","owners":["251133f2bf345a39e41018b0c5d4f8fba609066bfe2a3c77ac227242"],"relays":[{"type":"ipAddress","ipv4":"73.23.36.140","port":5000}],"metadata":{"url":"https://petloverstake.com/PET_Sancho.json","hash":"bf6ee843301bdabbddc4e18f920b1da6e91a5a7a3057381a04c6cfe9b165dcf3"}},"pool1v7ek9g8xnm9gud47x209vzsypcaxmcsqrth7zwcs4c6k506ffnq":{"id":"pool1v7ek9g8xnm9gud47x209vzsypcaxmcsqrth7zwcs4c6k506ffnq","vrfVerificationKeyHash":"b41ffe1f1b752cdb7fddad90137e07a655c2673007af5daac18d7827fc4394ae","pledge":{"ada":{"lovelace":90000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1upxen45d9t467l76pvxlue99635hleqcmvtrcnghmf6v7lgjengrp","owners":["4d99d68d2aebaf7fda0b0dfe64a5d4697fe418db163c4d17da74cf7d"],"relays":[{"type":"hostname","hostname":"sancho.junostakepool.com","port":18441}],"metadata":{"url":"https://junostakepool.com/juno-sancho.metadata.json","hash":"098b2ced4cf44471bb7737e07f600bab426fe485ef71343b7f4b2a4b067e325f"}},"pool104flte3y29dprxcntacsuyznhduvlaza38gvp8yyhy2vvmfenxa":{"id":"pool104flte3y29dprxcntacsuyznhduvlaza38gvp8yyhy2vvmfenxa","vrfVerificationKeyHash":"47bc02cc376e3a44d4c77b821e13993d30d02bdb97933a061fbda74f15132f09","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1urw2jna5t23pj24jdmlcgz02qy8694rkrmafysm7p4dkkcqx6m2u0","owners":["dca94fb45aa2192ab26eff8409ea010fa2d4761efa92437e0d5b6b60"],"relays":[{"type":"hostname","hostname":"firewall.adamantium.online","port":3002}],"metadata":{"url":"https://testforge.adamantium.online/otg-sancho.metadata.json","hash":"cbe49b4a77211ce5641a8958914b33f239d65787b67165958e94f12f1c64022b"}},"pool1spv6ts5262ze925mhdasxdcrc50n0eq5ktp7764h6kc97r7dd7z":{"id":"pool1spv6ts5262ze925mhdasxdcrc50n0eq5ktp7764h6kc97r7dd7z","vrfVerificationKeyHash":"719f4a7b25aeded42e3729a1bd29b47c8389fe664f1f8c90039d644361c3d991","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1up7e0lctmgctqjksm0s3sqzqa0pu2ndmg704j0lmuz4q47gr57fwr","owners":["7d97ff0bda30b04ad0dbe1180040ebc3c54dbb479f593ffbe0aa0af9"],"relays":[{"type":"ipAddress","ipv4":"192.168.1.158","port":7001}]},"pool1s49txezsz73m09jvdv5deu7fwa9atln0dg60ze6xqjx5sj4l3fn":{"id":"pool1s49txezsz73m09jvdv5deu7fwa9atln0dg60ze6xqjx5sj4l3fn","vrfVerificationKeyHash":"eb9938878f68c63f0c0d2b9a96e7679ec5ab3c37bb9746bf8b6ae9cb206bc8d3","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"7/100","rewardAccount":"stake_test1up22k6t7wlmlwc4888nr8r020te8ezhthpatpv56006j03s7f38nn","owners":["54ab697e77f7f762a739e6338dea7af27c8aebb87ab0b29a7bf527c6"],"relays":[{"type":"hostname","hostname":"adar-monitor.freeddns.org","port":3012}],"metadata":{"url":"http://tinyurl.com/snet-adar","hash":"12174285d72804e73c883b01d2f645ba37467c2a5fbb133a355da88b067a2474"}},"pool13lr6wv9m55el9ahscn8qmutc80gq9m5ajgawjstj3v5rqm7fpd9":{"id":"pool13lr6wv9m55el9ahscn8qmutc80gq9m5ajgawjstj3v5rqm7fpd9","vrfVerificationKeyHash":"48f8762dd20e68830b05aa9320ee9f0f5dd0173a8a3c73b0a7ad725e039ea4ca","pledge":{"ada":{"lovelace":1000000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1","rewardAccount":"stake_test1uzpaylcrkxth2rhyrd7u5qkgqeccze9exjc0h7n5wdy73usd0pxpl","owners":["b2f1e813fb3108fe6926717ec6409bc369ae81b485aa2120dc1fa1d7"],"relays":[{"type":"hostname","hostname":"sanchonet3-node.play.dev.cardano.org","port":3001}]},"pool14hwlqytt0kcxz57edu78k5qhqvd0v9m0ae4h9annux2eg8ayq5p":{"id":"pool14hwlqytt0kcxz57edu78k5qhqvd0v9m0ae4h9annux2eg8ayq5p","vrfVerificationKeyHash":"11c83eee77c51c9a60d2ea01ee70611910c2ad4a89e16cee6eaa783adc5b15b4","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uzt80vhpew2f5qkaa5pga5x7r7eps0kpkc758s0ay68aursp0hk4r","owners":["9677b2e1cb949a02dded028ed0de1fb2183ec1b63d43c1fd268fde0e"],"relays":[]},"pool1k3nuy86a7g077j7njdtsr54rxv3355ca3fnx239675nju4898er":{"id":"pool1k3nuy86a7g077j7njdtsr54rxv3355ca3fnx239675nju4898er","vrfVerificationKeyHash":"749e83b1d436209ab75d583ed8773f1afdebdf35f1152fda43545e1c5ef551c4","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/25","rewardAccount":"stake_test1up42qf6yrz0jkgfn0dhvev7ap4ulygt92t36wsvp7km983s30hke6","owners":["6aa02744189f2b21337b6eccb3dd0d79f2216552e3a74181f5b653c6"],"relays":[{"type":"hostname","hostname":"relay1.sanchonet.pool.cardanofoundation.org","port":30004},{"type":"hostname","hostname":"relay2.sanchonet.pool.cardanofoundation.org","port":30004}],"metadata":{"url":"https://sanchonet.pool.cardanofoundation.org/metadata.json","hash":"32930af3be03dea4488f66718fb2f62cddda26c914b9940b94fb9f585a61598f"}},"pool1h722gdd6kx782me0v9zresnds4ajugneq0vl9a0ju7mgvemezdf":{"id":"pool1h722gdd6kx782me0v9zresnds4ajugneq0vl9a0ju7mgvemezdf","vrfVerificationKeyHash":"24e3099f2fdf533c6148c33737c54e908795e13979573bf999df8bc74727fbbe","pledge":{"ada":{"lovelace":1000000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1","rewardAccount":"stake_test1uzpaylcrkxth2rhyrd7u5qkgqeccze9exjc0h7n5wdy73usd0pxpl","owners":["2f5fde105530993a262d744e534847794d477d2cc5a457312b2014b1"],"relays":[{"type":"hostname","hostname":"sanchonet2-node.play.dev.cardano.org","port":3001}]},"pool1cpxhrrewpu0ltk8fulczrqsj0mgaj8mx8yujzqmmkwp05393ln2":{"id":"pool1cpxhrrewpu0ltk8fulczrqsj0mgaj8mx8yujzqmmkwp05393ln2","vrfVerificationKeyHash":"a612a9fbbf33a50bf64719444423564a567b8cf8da530a6fd53e4469cdc892dc","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1ur0qtgl8rj9jwsmtjvs90dstpprdzvscuxd7z04y57g548gy7q30j","owners":["de05a3e71c8b27436b932057b60b0846d13218e19be13ea4a7914a9d"],"relays":[{"type":"hostname","hostname":"sanchonet.happystaking.io","port":3004}],"metadata":{"url":"https://happystaking.io/poolMetadataSanchonet.json","hash":"88f21480bcd6a5709c1fcd3c8604a18d1e0c40b17966043bf4339184bbcd24de"}},"pool1c6xrqt8nq6zasfmvpk0067je69r2eljh5xa08hsvf0lgzgaw4lr":{"id":"pool1c6xrqt8nq6zasfmvpk0067je69r2eljh5xa08hsvf0lgzgaw4lr","vrfVerificationKeyHash":"e82231789278477533459b806e845ffc7719abfc11a29f486604c65f7ff3668f","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uq3qf285n6qg8wqu34etec69g0al0y60a7gckntjsyp6mhgawzd20","owners":["2204a8f49e8083b81c8d72bce34543fbf7934fef918b4d728103addd"],"relays":[{"type":"hostname","hostname":"relay.hephy.io","port":9000}],"metadata":{"url":"https://raw.githubusercontent.com/hephy-io/sancho/main/snet.json","hash":"1cffc29ea55b7864fca5854e0ce4d3bae8456de0a6458b2cf6be2d9b22581a78"}},"pool1e8ud28v893mq2nmre2x09ex07ek3seljh4w7a2zphcy5z4sek9v":{"id":"pool1e8ud28v893mq2nmre2x09ex07ek3seljh4w7a2zphcy5z4sek9v","vrfVerificationKeyHash":"36af8b2a8521adf754f98042817887d691066bc40eba545527e8d7a773766143","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1ur94h9va6rmc9lg9gye8686sv6cfyvqaka2w8drf8qlekxqgzxnd2","owners":["cb5b959dd0f782fd0541327d1f5066b092301db754e3b469383f9b18"],"relays":[{"type":"hostname","hostname":"sancho.adanorthpool.com","port":8013}],"metadata":{"url":"https://adanorthpool.com/anpsanchopool.metadata.json","hash":"dbb6db6197a9c9512e65f18b533a91a0db495ea157fcb3e34b480205572d803b"}},"pool1m8glad404zhwsa6k2lalm6qu95ptfffj9uk5drphmu0rsj3mnaz":{"id":"pool1m8glad404zhwsa6k2lalm6qu95ptfffj9uk5drphmu0rsj3mnaz","vrfVerificationKeyHash":"0faf9e2d07c9909291d51e5776fd2715cc1b5e3cf0aa79866cd41f305171d135","pledge":{"ada":{"lovelace":100000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1urqntq4wexjylnrdnp97qq79qkxxvrsa9lcnwr7ckjd6w0cr04y4p","owners":["c13582aec9a44fcc6d984be003c5058c660e1d2ff1370fd8b49ba73f"],"relays":[{"type":"ipAddress","ipv4":"127.0.0.1","port":3001}],"metadata":{"url":"https://my-ip.at/test/testpool.metadata.json","hash":"93a6d4a028620f31b4315cf96a53eb05fa5f1364c4fad75bec43a9cf95b9ee96"}},"pool1m840r7thpj9mxhw33hud3g9jkvjvm00wkw89ul8t06nngjewl6m":{"id":"pool1m840r7thpj9mxhw33hud3g9jkvjvm00wkw89ul8t06nngjewl6m","vrfVerificationKeyHash":"668902c613a1875f7b1b3323fc995cc2c94dace33203d6c7cb042c6da0a9d103","pledge":{"ada":{"lovelace":1000000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1","rewardAccount":"stake_test1uzpaylcrkxth2rhyrd7u5qkgqeccze9exjc0h7n5wdy73usd0pxpl","owners":["f535d2bfc700116bb07ad9f9a1159d45577e85fc3c472d692780d996"],"relays":[{"type":"hostname","hostname":"sanchonet1-node.play.dev.cardano.org","port":3001}]},"pool1m6prw8mg3ttu45s45e6dyqfsxjzkfk7ln07pktksujsr29ghtxm":{"id":"pool1m6prw8mg3ttu45s45e6dyqfsxjzkfk7ln07pktksujsr29ghtxm","vrfVerificationKeyHash":"452f30d0f5141104287bd3c3a0e2c1b82f8a1be2593c9e1e41b4e94925b928e4","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1urvdtlnh4axqa8heuwtnm699zp4lk3hjqcjh5xrjm68wqdsvfcqzv","owners":["d8d5fe77af4c0e9ef9e3973de8a5106bfb46f206257a1872de8ee036"],"relays":[{"type":"hostname","hostname":"mithril-signer-1.testing-sanchonet.api.mithril.network","port":9091}],"metadata":{"url":"https://tinyurl.com/2xrncehj","hash":"12225f1ea91b643eae68730e5a01e97bd229228b0f52f8374d15b3ef3e050105"}},"pool1as9wfr5422grct7cxnctjvwja0urauwazapjw7y9xl66vz78ae4":{"id":"pool1as9wfr5422grct7cxnctjvwja0urauwazapjw7y9xl66vz78ae4","vrfVerificationKeyHash":"2bfb08731a0945d5c68498a8959deb3b7052ca0d2d3ccfebe9ac3be95eab0389","pledge":{"ada":{"lovelace":500000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1up254pxpxzmrqn7mmsrxyrk2ga3qlsargrhm98c0qyh3zccs58zch","owners":["554a84c130b6304fdbdc06620eca47620fc3a340efb29f0f012f1163"],"relays":[{"type":"ipAddress","ipv4":"64.176.50.202","port":4002}]},"pool17ckkqnsxhvj467ey03jqxjrtgq8reuq6zz7gpnrdv4p52ds25sa":{"id":"pool17ckkqnsxhvj467ey03jqxjrtgq8reuq6zz7gpnrdv4p52ds25sa","vrfVerificationKeyHash":"f2144066d9c5545aec573b6cac041742f7bceed2a9ea23085db2d00d290e6d3f","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"99/100","rewardAccount":"stake_test1ur0407lhwpgq0cdje5ldpmrwgxfxehgz0ztq5efdy9nej6g4dxxdy","owners":["df57fbf7705007e1b2cd3ed0ec6e41926cdd0278960a652d21679969"],"relays":[{"type":"hostname","hostname":"sancho-testnet.able-pool.io","port":6002}],"metadata":{"url":"https://hornan7.github.io/sanchometadata.json","hash":"4e544cca134322ef1fbf5dce57524cc06be1cfe07c545bd49e240b3df536c7d7"}},"pool1lj20psmnkjau2ywmuzlhp44jnfku3w3l0pdyqkn0p08k7e32cx3":{"id":"pool1lj20psmnkjau2ywmuzlhp44jnfku3w3l0pdyqkn0p08k7e32cx3","vrfVerificationKeyHash":"5062b97786383eace8f8364274b531e50dc4cc5d7e5afc8e6ad563da112f4071","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"9999/10000","rewardAccount":"stake_test1uzywv7fwzvaaurpkct7yqg9ayxvdr06rlkldaerw7jmd9rchpy3ut","owners":["e94c611b70b247e748b07f8553e5cce2193f8bdf86f80d0b0b8f5221"],"relays":[{"type":"hostname","hostname":"relay.sancho.cardanostakehouse.com","port":8000}],"metadata":{"url":"https://cardanostakehouse.com/523bc64b-d2ad-42c3-81e7-eb0.json","hash":"b65998c78972998aa13b0e2ae8f032b58583f2d6df9b42ea6272f16bfff23b0b"}}},"id":"queryLedgerState/stakePools-hfkgvfollxkiih0q"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-stakePools-b83473f5b74f365f842c3ba6968d4e3e.json b/fixtures/test/ogmios/queryLedgerState-stakePools-b83473f5b74f365f842c3ba6968d4e3e.json new file mode 100644 index 000000000..8a1e2286f --- /dev/null +++ b/fixtures/test/ogmios/queryLedgerState-stakePools-b83473f5b74f365f842c3ba6968d4e3e.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryLedgerState/stakePools","result":{"pool1q95luz38nhsw6h7mxud8tptc6mxvnsczhanw4j5htk8h2ltlf3k":{"id":"pool1q95luz38nhsw6h7mxud8tptc6mxvnsczhanw4j5htk8h2ltlf3k","vrfVerificationKeyHash":"00e024fbc63daf0af69eebc5741e7ff183b890ef2628e9bfd4e2bc4d6d1b16b8","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":345000000}},"margin":"3/20","rewardAccount":"stake_test1uztsmrxurfw7v3gjz04n8m45kngf4fwhfzxez9wa24rmdxclut9y5","owners":["970d8cdc1a5de6451213eb33eeb4b4d09aa5d7488d9115dd5547b69b"],"relays":[{"type":"ipAddress","ipv4":"83.58.170.227","port":6000}],"metadata":{"url":"https://not.me","hash":"e3568b0190e59d344e0a9803d31ac9fe4ca11c5861b6e3b06527343adbdefae9"}},"pool1qncwwllw9nwtu7sl7zqw3fpyh4t3q6nhludryfwv0jyqjygd46d":{"id":"pool1qncwwllw9nwtu7sl7zqw3fpyh4t3q6nhludryfwv0jyqjygd46d","vrfVerificationKeyHash":"9b960c725b707c79a4aade62a362be9f35b5b0d7615b8bdd3bfd72a77b0a32a4","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":345000000}},"margin":"1/20","rewardAccount":"stake_test1ur4n0pv3cagnah7atw58qr8an8vm8f75tq5u2q9h925nwasuxt25m","owners":["eb378591c7513edfdd5ba8700cfd99d9b3a7d45829c500b72aa93776"],"relays":[{"type":"hostname","hostname":"beadapool.ddns.net","port":6001}],"metadata":{"url":"https://beadapool.com/media/poolMetaDatapreview.json","hash":"c760f6e23539c052bff72bbc0d921a0663a0fea445b401871d5f65eb3debfc55"}},"pool1qal80uhlj949mgv0ecvdkmgqjdn5q27wmpaj4crnr5e9v6qmsv7":{"id":"pool1qal80uhlj949mgv0ecvdkmgqjdn5q27wmpaj4crnr5e9v6qmsv7","vrfVerificationKeyHash":"d498ef12879315f2b3b9bf3d944a42ae4062203db8ebc78236d63f3697f1804c","pledge":{"ada":{"lovelace":420000000}},"cost":{"ada":{"lovelace":420000000}},"margin":"69/1000","rewardAccount":"stake_test1uzpafaxd4q5p7adccdefpnv69dkwlpm7dpkpm3yefxzeluc4z24ec","owners":["83d4f4cda8281f75b8c37290cd9a2b6cef877e686c1dc49949859ff3"],"relays":[{"type":"hostname","hostname":"preview.world.bbhmm.net","port":6200}],"metadata":{"url":"https://pool.bbhmm.net/poolmeta-preview.json","hash":"885cbb02d004f75fad5716c878a6074a9c1bd62b3003d1896b1d27831d67239a"}},"pool1p9xu88dzmpp5l8wmjd6f5xfs9z89mky6up86ty2wz4aavmm8f3m":{"id":"pool1p9xu88dzmpp5l8wmjd6f5xfs9z89mky6up86ty2wz4aavmm8f3m","vrfVerificationKeyHash":"2dd02fc85a8ded714d3d56a684f85d741cef553756d760c8c4d5ae325ab6a1a1","pledge":{"ada":{"lovelace":1111000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uzsf4dc8l9r2uxgwk7vpladqf09vvduw43z6cd0p96ru0gcpg49cx","owners":["a09ab707f946ae190eb7981ff5a04bcac6378eac45ac35e12e87c7a3"],"relays":[{"type":"hostname","hostname":"relay-m.fluxpool.cc","port":5001}],"metadata":{"url":"https://cylonyx.github.io/testnet.json","hash":"99e451a46f89b17502196457698bde37d604fe74ef19a8c0cb8518da72b1ecf1"}},"pool1p90428kec03mjdya3k4gv5d20w7lmed7ca0snknef5j977l3y8l":{"id":"pool1p90428kec03mjdya3k4gv5d20w7lmed7ca0snknef5j977l3y8l","vrfVerificationKeyHash":"af790879fc1dc4a8c00147aebc13e95585d641b76986d9a449a1ba4652ba77ad","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/2","rewardAccount":"stake_test1uruf9dc3kf35aqnng5wz38kt03h9jk6y5gdszy69nppkylqdk8agr","owners":["f892b711b2634e8273451c289ecb7c6e595b44a21b0113459843627c"],"relays":[{"type":"hostname","hostname":"water.lbcrypt.com","port":9600}],"metadata":{"url":"https://www.lbcrypt.com/json/LBCPP.json","hash":"6074e009fcb59f6ef28337412168e1b5391b42e6cec8dc01f7291babf6d2771d"}},"pool1p835jxsj8py5n34lrgk6fvpgpxxvh585qm8dzvp7ups37vdet5a":{"id":"pool1p835jxsj8py5n34lrgk6fvpgpxxvh585qm8dzvp7ups37vdet5a","vrfVerificationKeyHash":"e67d6ccc4b3b0ca3e61ad09ccf2094b4fbf4eee929e8995c52fa0f32a43a707c","pledge":{"ada":{"lovelace":100000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1upn7ehn9g6e9cqp7jcmuv5a79avzxavxe6g6fmfwttsm6lqa9kp7c","owners":["67ecde6546b25c003e9637c653be2f58237586ce91a4ed2e5ae1bd7c"],"relays":[{"type":"hostname","hostname":"firewall.adamantium.online","port":3000}],"metadata":{"url":"https://testforge.adamantium.online/otg-preview.metadata.json","hash":"0b15c664cf2883a8d68140f852963f8c7f8adac538ddf1f6cfab60444465ee5e"}},"pool1pt39c4va0aljcgn4jqru0jhtws9q5wj8u0xnajtkgk9g7lxlk2t":{"id":"pool1pt39c4va0aljcgn4jqru0jhtws9q5wj8u0xnajtkgk9g7lxlk2t","vrfVerificationKeyHash":"d9f1792aeb20bf814c367e6b3dd5e2c3f4c7f91f45247da2d0de451a2a2c1f85","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uzftx5dwygs4k88svkh4gp6hz4l628ydvskx5yzff55wlmskas3cr","owners":["92b351ae22215b1cf065af540757157fa51c8d642c6a10494d28efee"],"relays":[{"type":"hostname","hostname":"preview.bladepool.com","port":3001}],"metadata":{"url":"https://public.bladepool.com/metadata.json","hash":"2738e2233800ab7f82bd2212a9a55f52d4851f9147f161684c63e6655bedb562"}},"pool1pn9sffcqqzkx70m0gujks4h3wf8p4y706t2f0cjcyreekg83wtf":{"id":"pool1pn9sffcqqzkx70m0gujks4h3wf8p4y706t2f0cjcyreekg83wtf","vrfVerificationKeyHash":"3cfeffec7d5b5dbbc4f0494271fad41952fdb82937189fb3f2581d9de3fad81b","pledge":{"ada":{"lovelace":250000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1up8dnh6ywzs96upw6ycmeafzmkvrv096njjkphgqzuts0wgnxsaqg","owners":["4ed9df4470a05d702ed131bcf522dd98363cba9ca560dd00171707b9"],"relays":[{"type":"hostname","hostname":"preview-r1.panl.org","port":3015}],"metadata":{"url":"https://preview-metadata.panl.org","hash":"a2d8a47fc4d3a6e707487b65b3ab790e6fff71c2afd72f0fe17bc5e523024019"}},"pool1phj3kpraf3vgn0zzlugpts8k6eps8d3fgp9ddceu4s43cq00nzr":{"id":"pool1phj3kpraf3vgn0zzlugpts8k6eps8d3fgp9ddceu4s43cq00nzr","vrfVerificationKeyHash":"d4d04f919daf4e89a556f5555a2a68ba89ccf03f022ee77954b1bf1c37a7c8ff","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1up046thgsc2fg0wcwfzvmpmy6r6c0psanu9wyxg8vcknt9sumrgc7","owners":["5f5d2ee88614943dd87244cd8764d0f587861d9f0ae21907662d3596"],"relays":[{"type":"hostname","hostname":"https://aggregator.dev-preview.api.mithril.network/"}],"metadata":{"url":"https://mithril.network/tbd.json","hash":"5e96bfc37d05582545c91727d73e11a26fa0ebcd4e482a9714d02ab96e83ed19"}},"pool1p73yrd7vzwkkjd2rff4g683smhlm3jkg45f2hwm79cke6uxxwq9":{"id":"pool1p73yrd7vzwkkjd2rff4g683smhlm3jkg45f2hwm79cke6uxxwq9","vrfVerificationKeyHash":"da1d45782040dd4862a9f97ac9fa706ca14f8f2f2823a0e2a466932cf530da6e","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1urnuwkjxcf0erfm53fx9tnkvs6ye0shcwk3lt0wzzy500tcu0xf8f","owners":["e7c75a46c25f91a7748a4c55cecc868997c2f875a3f5bdc21128f7af"],"relays":[{"type":"hostname","hostname":"api.monrma.ml","port":6020}],"metadata":{"url":"https://api.monrma.ml/meta/JOSEP.json","hash":"6c133a6ba49006eee1fdd1525662d64de10f4a54566e715246525b3b386f0c02"}},"pool1zyvx690fps6a9m3m89q6fwcfgd8jyupzgv8wrfpvd0fm5cyzxd0":{"id":"pool1zyvx690fps6a9m3m89q6fwcfgd8jyupzgv8wrfpvd0fm5cyzxd0","vrfVerificationKeyHash":"e0c09cfd7e6b1766efe46f4297d5ada1a5f8b006c1ed72535e16c6fd2f384174","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/100","rewardAccount":"stake_test1uzzx65ylw8yrkeusmfwa6exesgpzlw74630cxusgq3jn9jqrgsrjc","owners":["846d509f71c83b6790da5ddd64d982022fbbd5d45f837208046532c8"],"relays":[{"type":"ipAddress","ipv4":"129.152.11.126","port":3002}],"metadata":{"url":"https://raw.githubusercontent.com/stefanosu-code/stpz/a/s2.j","hash":"0bf71440af0a351555045ae2a59e65c8661748a2781476f9bd560871afb2069f"}},"pool1z9nsz7wyyxc5r8zf8pf774p9gry09yxtrlqlg5tsnjndv5xupu3":{"id":"pool1z9nsz7wyyxc5r8zf8pf774p9gry09yxtrlqlg5tsnjndv5xupu3","vrfVerificationKeyHash":"b5971d1f29a9938574aa98cf5a8437a8245239644fe6dcaa8b22b92ed2b00e90","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/9a065d69-ef59-4aff-983d-e34.json","hash":"92bab22abc33ea5fa2be2f515639bec213e782b5f417b3cc0441fd115172d171"}},"pool1rzgvf9rytug9p3hz6a9q8zeu3mp6trl70qdyw0g9c7ywzy984yr":{"id":"pool1rzgvf9rytug9p3hz6a9q8zeu3mp6trl70qdyw0g9c7ywzy984yr","vrfVerificationKeyHash":"0e0c0f257842b44b19dda1a20d8e406401f7696725f1c00a5b2768a4c684a089","pledge":{"ada":{"lovelace":70000000000}},"cost":{"ada":{"lovelace":345000000}},"margin":"3/25","rewardAccount":"stake_test1upxxj9un9j6xyaxkxnw0n2hajye3ux6qxn53ex7g4xwdh2cq3xsrd","owners":["4c6917932cb46274d634dcf9aafd91331e1b4034e91c9bc8a99cdbab"],"relays":[{"type":"hostname","hostname":"adarelay-t2-1.nanyka.com","port":1856}],"metadata":{"url":"https://nanyka.com/cardanospo/poolmeta_preview.json","hash":"a14630b7010397fc9bf309f59618b613698851bc1ac5772fd43717405b426bf5"}},"pool1rwwmnhgsnyzhzpg89lgq4k6uc38qadsdnet9l2xgv34hsjxzj2d":{"id":"pool1rwwmnhgsnyzhzpg89lgq4k6uc38qadsdnet9l2xgv34hsjxzj2d","vrfVerificationKeyHash":"a4057bb1feefee1f968888a3596a6ff463b443ef9d9919398c1b4dbe9a493597","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"99/100","rewardAccount":"stake_test1urarrlsypaptr9lrx8c65qr5qjfd4a6j893caw33mwpxsjgqfxdem","owners":["fa31fe040f42b197e331f1aa00740492daf75239638eba31db826849"],"relays":[{"type":"hostname","hostname":"spec1-staging.spirestaking2.com","port":3005}],"metadata":{"url":"https://data.spireblockchain.com/ADA-PREVIEW/SPF/pool_0.json","hash":"e11362ceaa7817a979a1f703268a0d63a9e65d48e35e5879e4a7e693f47253ed"}},"pool1r0tln8nct3mpyvehgy6uu3cdlmjnmtr2fxjcqnfl6v0qg0we42e":{"id":"pool1r0tln8nct3mpyvehgy6uu3cdlmjnmtr2fxjcqnfl6v0qg0we42e","vrfVerificationKeyHash":"0bf04a518f6e9a49fbc3ca8b98bec244874fa9939427156ec2af28fa2bfdab11","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uraat6a6egphv996jz7ncmzncp8689fzum4up72c8xfaf4s04shmw","owners":["fbd5ebbaca037614ba90bd3c6c53c04fa39522e6ebc0f9583993d4d6"],"relays":[{"type":"hostname","hostname":"mithril-signer-2.testing-preview.api.mithril.network","port":9092}],"metadata":{"url":"https://tinyurl.com/2nx2ty2d","hash":"8cc5e635ed38182d9c4680129dc8815f7c2af1d0d7c34e36781139a26a47d650"}},"pool1rk2y9gx6vll8lawzdqlky5p2a3ypzsxg07arg8gmhkjj2905035":{"id":"pool1rk2y9gx6vll8lawzdqlky5p2a3ypzsxg07arg8gmhkjj2905035","vrfVerificationKeyHash":"a86606621866917a797374a33b0dbb73afdb27b82abfe1facdf99f527cc7b434","pledge":{"ada":{"lovelace":100000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/20","rewardAccount":"stake_test1uz6yw4xj9lfkv8dweq3m64vwnmm8c3hpleufjzqf866ar8qjxc6cs","owners":["b44754d22fd3661daec823bd558e9ef67c46e1fe789908093eb5d19c"],"relays":[{"type":"hostname","hostname":"sully.crabdance.com","port":6004}],"metadata":{"url":"tinyurl.com/4uszu5zt","hash":"62710fed07d182806c647d4a2034eccb14035e57f9bb4899aff9ec1c461ee4ae"}},"pool1yq5q3unkyr764243l4v3gca6m42jlg04df9k7f5hv00lsjhyj4d":{"id":"pool1yq5q3unkyr764243l4v3gca6m42jlg04df9k7f5hv00lsjhyj4d","vrfVerificationKeyHash":"d6d05e32b4c2eb2e62cb5659d118061473360c2db23a213c377edb2ead2cf591","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/40","rewardAccount":"stake_test1urty9s8ufz8kydh8wfz6k9cqsj4v2q2k5wdu8wtetvlz4fs7adk6p","owners":["d642c0fc488f6236e77245ab170084aac50156a39bc3b9795b3e2aa6"],"relays":[{"type":"hostname","hostname":"pool.sudosu.cyou","port":30443},{"type":"hostname","hostname":"pool.sudosu.cyou","port":30444}],"metadata":{"url":"https://ado-pool.web.app/poolMetadata.json","hash":"aeaaf5c46c1466f65ff731fc3cc82f006acfd0aaedb4d4f6ff665f04224a1bd1"}},"pool1yphncqvpc4n49c4ya3mys7uwpwa25892r70gzkpqglenv093qge":{"id":"pool1yphncqvpc4n49c4ya3mys7uwpwa25892r70gzkpqglenv093qge","vrfVerificationKeyHash":"83602a44cf3b951a3ef83a4d868852ccfa50cc841e93212b302a67c8d1cd9144","pledge":{"ada":{"lovelace":8000000000}},"cost":{"ada":{"lovelace":345000000}},"margin":"1/10","rewardAccount":"stake_test1urt0mxys755epyacjdacm4e0wyyr7kd603tzxrqzstj7auc5l9456","owners":["d6fd9890f5299093b8937b8dd72f71083f59ba7c56230c0282e5eef3"],"relays":[{"type":"hostname","hostname":"129.213.55.211","port":6000}],"metadata":{"url":"https://cardano-blockhouse.de/preview/poolMetaData.json","hash":"5561fb2b9a8b234a4ae4aee30b87916d5b4dd8b028dcda21a70dfee465d3de8f"}},"pool1ynfnjspgckgxjf2zeye8s33jz3e3ndk9pcwp0qzaupzvvd8ukwt":{"id":"pool1ynfnjspgckgxjf2zeye8s33jz3e3ndk9pcwp0qzaupzvvd8ukwt","vrfVerificationKeyHash":"dbdd412069ed405b8efe1f30d4e7a8ea551a8cbfc949b1a462936e0b55ec632a","pledge":{"ada":{"lovelace":400000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1urn5vcltkemnl8nnx3xt4ucsej3v45y0r5s4xgkl9v24jpsxs8v3h","owners":["e74663ebb6773f9e73344cbaf310cca2cad08f1d215322df2b155906"],"relays":[{"type":"hostname","hostname":"node1.cardano.gratis","port":6501},{"type":"hostname","hostname":"node2.cardano.gratis","port":6502}],"metadata":{"url":"https://cardano.gratis/poolMetaDataPreView.json","hash":"8bcb8efe6973b8b6bd0918cd356735ff3ce0ca41276fac6fb4b50b900fbcebce"}},"pool1yu60zjc6ykj22ns69e8w5me469r4k4805706vz2mvrnz5qvvfz7":{"id":"pool1yu60zjc6ykj22ns69e8w5me469r4k4805706vz2mvrnz5qvvfz7","vrfVerificationKeyHash":"e84a8a24359b57aec037671ec8597f73ca6d231f06174e7b58c1536ad0f28c9e","pledge":{"ada":{"lovelace":1000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1000","rewardAccount":"stake_test1uzp3y24gpe5zjw0nzsc04tteyuhr6yxqpcvl4cg9x6227gcr4s4cs","owners":["83122aa80e682939f31430faad79272e3d10c00e19fae1053694af23"],"relays":[]},"pool19p0rndwuhsyzwjt3v3s946yrq3je8usgcqwn32xjfkd52f3znjf":{"id":"pool19p0rndwuhsyzwjt3v3s946yrq3je8usgcqwn32xjfkd52f3znjf","vrfVerificationKeyHash":"18a7b9fa81478d76b1797a5935f1ba4564c06390ecffb208a02283993f179ceb","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1up829zqr979f4svv7daykuk000nwmvtkas8qpy8rld4t7wqyu059y","owners":["4ea288032f8a9ac18cf37a4b72cf7be6edb176ec0e0090e3fb6abf38"],"relays":[{"type":"hostname","hostname":"mithril-signer-1.dev-preview.api.mithril.network","port":9091}],"metadata":{"url":"https://tinyurl.com/2xn8c23m","hash":"d907a12c9750aa8536fe24bf2e904cef6acc9801d952e851b76530e743244491"}},"pool190ce9qhpzwzveasvngas7kmwqrn54mfvhk9unqmuesykvtadu8l":{"id":"pool190ce9qhpzwzveasvngas7kmwqrn54mfvhk9unqmuesykvtadu8l","vrfVerificationKeyHash":"ecaaf8a89ead238b71ae9054487c229c1c6bc327062c5211dea2ae78c7cb0280","pledge":{"ada":{"lovelace":1000000}},"cost":{"ada":{"lovelace":1130000000}},"margin":"1/100","rewardAccount":"stake_test1uz5qfpx4786s0n847grlqcfrg5ja2g980jtnkfal2jxnaccg69qk0","owners":["a80484d5f1f507ccf5f207f061234525d520a77c973b27bf548d3ee3","c9dc49a676087ba0fb1ab1f28b209e647b4139626d732455bb7d5582","f4cceaa5fff7b592e39519942ea8c3b823f3fee622bb3c81a5f5150f"],"relays":[{"type":"hostname","hostname":"us.netspectrum.com","port":13001}],"metadata":{"url":"http://us.netspectrum.com:13002/pool-meta-data.json","hash":"6e31d534b0d8bdde4ce9bd04ac8d7a6906b680304a3150400304c46f0f393af5"}},"pool1xe7ey753aw0v79tysaumamkgcugpw9txahxwrrltqjpx25adrkr":{"id":"pool1xe7ey753aw0v79tysaumamkgcugpw9txahxwrrltqjpx25adrkr","vrfVerificationKeyHash":"5837fb2c83c6c2808deb5269be449a4c16cd337a7a27d379e77587f5fce73ce9","pledge":{"ada":{"lovelace":65000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/200","rewardAccount":"stake_test1ur7a6w4l2tkz3p7krp8y6807lnqd6e03awrstq644wfaksczmnpth","owners":["fddd3abf52ec2887d6184e4d1dfefcc0dd65f1eb87058355ab93db43"],"relays":[{"type":"ipAddress","ipv4":"45.32.18.201","ipv6":"2001:19f0:7001:24a6:5400:4ff:fe31:9996","port":4002}],"metadata":{"url":"https://git.io/JI2Zk","hash":"d50f5e2e137f291889af50e054025af04bdc487e747c6cfa2521810157a5dfe6"}},"pool18pn6p9ef58u4ga3wagp44qhzm8f6zncl57g6qgh0pk3yytwz54h":{"id":"pool18pn6p9ef58u4ga3wagp44qhzm8f6zncl57g6qgh0pk3yytwz54h","vrfVerificationKeyHash":"82419eaa78194ea40711dea37ab068e6ee101dd7785fe9e41e9acd4b98290d49","pledge":{"ada":{"lovelace":1659000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1urpl4kvj3jfn3zxzxud9px6she3suks5fdyygyke7nnpkcslky9um","owners":["c3fad9928c933888c2371a509b50be630e5a144b484412d9f4e61b62"],"relays":[{"type":"ipAddress","ipv4":"51.104.251.142","port":3001}],"metadata":{"url":"https://adacapital.io/adact_preview.json","hash":"e345a478726731a08900d2cbad4b8455815d41b562fe2b862a3d8fd2c3e36d78"}},"pool18r62tz408lkgfu6pq5svwzkh2vslkeg6mf72qf3h8njgvzhx9ce":{"id":"pool18r62tz408lkgfu6pq5svwzkh2vslkeg6mf72qf3h8njgvzhx9ce","vrfVerificationKeyHash":"a1b272e77f8d5cebc04ba482dacba825e8f7f59251d95746e8ff23864e0c89ee","pledge":{"ada":{"lovelace":100000000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1","rewardAccount":"stake_test1uzuklnhnhy634a5rf0v9pcaf0pva002mw2wjf0ekg6h2encat3ykr","owners":["788cf0519348fefaf3c721c5f5bd60b195b444fa0d8fb4512dc259be"],"relays":[{"type":"hostname","hostname":"preview-node.world.dev.cardano.org","port":30002}]},"pool18xr0tmqrqffd7yu5jh4pq7hs4eezkremxmgzkq8ua4y82dmmrxp":{"id":"pool18xr0tmqrqffd7yu5jh4pq7hs4eezkremxmgzkq8ua4y82dmmrxp","vrfVerificationKeyHash":"d9df3f4eee37db91a204ef07d8240e4822d8a1d0c0009d2384e7057dcd9cd7c8","pledge":{"ada":{"lovelace":210000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"69/10000","rewardAccount":"stake_test1ur9pv4652sv524d5qdy9q5h354er45jc3s562jp6vjykwwqyz0kzj","owners":["ca16575454194555b403485052f1a5723ad2588c29a5483a64896738"],"relays":[{"type":"ipAddress","ipv4":"130.162.231.122","port":6001}],"metadata":{"url":"https://tinyurl.com/2ku8unuf","hash":"f5d13701d87a7a6d2642c194c7517a411ac662bfe63fa1d1c63f7558ed83e7ea"}},"pool18x5zg95n59xvysu3rq7ygqn6f842ud29dlcc5jmw97xkv2renhy":{"id":"pool18x5zg95n59xvysu3rq7ygqn6f842ud29dlcc5jmw97xkv2renhy","vrfVerificationKeyHash":"eb7084adcbbe7c2f29e4ad162969dfc80ec4d53a1598d2b4277340c29fd99b35","pledge":{"ada":{"lovelace":9400000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"99/100","rewardAccount":"stake_test1upa7k9ag7zpst5h63lpxa9syq5l4wqk2p2qjvfc04j4ncygq73sxl","owners":["7beb17a8f08305d2fa8fc26e9604053f5702ca0a8126270facab3c11"],"relays":[{"type":"ipAddress","ipv4":"139.218.11.14","port":6005},{"type":"ipAddress","ipv4":"14.201.4.90","port":6005},{"type":"ipAddress","ipv4":"14.201.4.90","port":6006}],"metadata":{"url":"https://dpadapools.com/preview1meta.json","hash":"fafe0366055360d905a2f12da33af561518ae141151fadc9a8a61de850c45664"}},"pool18cq0sr4ryw4t63hvgmdp00z7f8h3hgxef0gjldsgk6j75ajza6y":{"id":"pool18cq0sr4ryw4t63hvgmdp00z7f8h3hgxef0gjldsgk6j75ajza6y","vrfVerificationKeyHash":"18c331fcf6535b1d597c8c661c54eedc36029982c3a3b9779e1525ce73b8d884","pledge":{"ada":{"lovelace":10000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"9999/10000","rewardAccount":"stake_test1uza6lr2dqs8skq7wut7rp77xvn42w67gsqslpca3r6v6kwqxmcuup","owners":["9ca82a28ceafb9b3bbd77faf6ac500519e6fcbd54f49ef387ca507ab"],"relays":[{"type":"hostname","hostname":"relay.preview.cardanostakehouse.com","port":11000}],"metadata":{"url":"https://cardanostakehouse.com/459b8a9e-b96a-43cc-9981-970.json","hash":"e5e31422e1e2bc34d9ddc87aa974ffc841079a0773dc6972b6efbdb17c8d0ffe"}},"pool18u47gq2ps4hqawl2sfr8uu8rn4yvkue7c68mw45v2ra4wj7pdx0":{"id":"pool18u47gq2ps4hqawl2sfr8uu8rn4yvkue7c68mw45v2ra4wj7pdx0","vrfVerificationKeyHash":"63de13cac6902f7b63a6530ab41297734554bc7932a68496dce10aa187da8bfc","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uzmxaaxxnrk7qcmx7mr3dtshc6e4xgfh5t5w8e690msqtyqgnzx08","owners":["b0348c669fe3cb7446b5084a669e304dd1cff63762352e8355e14482","b66ef4c698ede06366f6c716ae17c6b3532137a2e8e3e7457ee00590"],"relays":[{"type":"hostname","hostname":"4728f95d.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://4728f95d.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1grvqd4eu354qervmr62uew0nsrjqedx5kglldeqr4c29vv59rku":{"id":"pool1grvqd4eu354qervmr62uew0nsrjqedx5kglldeqr4c29vv59rku","vrfVerificationKeyHash":"5ad90f4be69faac1c7e216cd50631240db41842b5a43f2ce344670fa7219a6c6","pledge":{"ada":{"lovelace":100000000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1","rewardAccount":"stake_test1uzuklnhnhy634a5rf0v9pcaf0pva002mw2wjf0ekg6h2encat3ykr","owners":["f631370cc87882bf5e14ab72534caf2655d0a2a50a9a8a3820bb6f4a"],"relays":[{"type":"hostname","hostname":"preview-node.world.dev.cardano.org","port":30002}]},"pool1gslhruyd8pk4f6am9zjjzgwuvetge6tztswwfrjqpnvdsex3455":{"id":"pool1gslhruyd8pk4f6am9zjjzgwuvetge6tztswwfrjqpnvdsex3455","vrfVerificationKeyHash":"4173aad927f4be2a67adf068fcb45871ecac8614864d7af2e079502109e81644","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/2","rewardAccount":"stake_test1ur5p8rcnye82hu4ukkt8xru2hqxa3f9z58pe53qkl9wzz0sn83hhf","owners":["e8138f13264eabf2bcb596730f8ab80dd8a4a2a1c39a4416f95c213e"],"relays":[{"type":"hostname","hostname":"spec2-staging.spirestaking2.com","port":3006}],"metadata":{"url":"https://data.spireblockchain.com/ADA-PREVIEW/SPF/pool_1.json","hash":"9f4e03dd87a814ef9407212ca61355edd9ff266d29a14eb43ad8ad312851b2bc"}},"pool1fr8hdmcl5vadqdxrtdks6vzc44ddqmxpzfuxeuezjt965z8hr04":{"id":"pool1fr8hdmcl5vadqdxrtdks6vzc44ddqmxpzfuxeuezjt965z8hr04","vrfVerificationKeyHash":"4b4e8c37e61a53313028a84eef9bcd1d0ddc77c5da6570be8d23ab77e0088318","pledge":{"ada":{"lovelace":100}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/10","rewardAccount":"stake_test1uzp3y24gpe5zjw0nzsc04tteyuhr6yxqpcvl4cg9x6227gcr4s4cs","owners":["83122aa80e682939f31430faad79272e3d10c00e19fae1053694af23"],"relays":[]},"pool1fv5dyzcaydlj3gvkxqdjsxvey29cvk5zz8jjxncqhch4xxj3lgr":{"id":"pool1fv5dyzcaydlj3gvkxqdjsxvey29cvk5zz8jjxncqhch4xxj3lgr","vrfVerificationKeyHash":"4ab5835f2302ea9d183e1d56143ee82e224657f46403ffc2bc0c4a557f1afeb6","pledge":{"ada":{"lovelace":1104000000}},"cost":{"ada":{"lovelace":411000000}},"margin":"1/100","rewardAccount":"stake_test1ur9h9qtr739mhuypqmhfxvzux3g9h0tksew8w6ravaj3t8qacq6d9","owners":["c9dc49a676087ba0fb1ab1f28b209e647b4139626d732455bb7d5582","cb728163f44bbbf08106ee93305c34505bbd76865c77687d6765159c","f4cceaa5fff7b592e39519942ea8c3b823f3fee622bb3c81a5f5150f"],"relays":[{"type":"hostname","hostname":"us.netspectrum.com","port":13001}],"metadata":{"url":"http://us.netspectrum.com:13002/pool-meta-data.json","hash":"41bbeb6b2f37c5c9195c4c816fb9b641723b92ba14ecf5f4adf210155b08d0e3"}},"pool1fw9mq9eyrp5yydl3njau2568jal62rx5f8anp2llt0e5s3pl3py":{"id":"pool1fw9mq9eyrp5yydl3njau2568jal62rx5f8anp2llt0e5s3pl3py","vrfVerificationKeyHash":"171fdc0c6430bddfdc725553a2d84d01042cfb586f1e4b546853da5d96a604db","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uq27femrn9wj07uad23waxfnc29f7wk86s9mddtp7qhlepcnk0r4r","owners":["15e4e763995d27fb9d6aa2ee9933c28a9f3ac7d40bb6b561f02ffc87"],"relays":[{"type":"hostname","hostname":"d8bdbfbe.cardano-relay.bison.run","port":1338}],"metadata":{"url":"https://d8bdbfbe.cardano-metadata.bison.run/metadata.json","hash":"64c1813d814e5c2abb5f65864ec26f0b060d49f3d206a31f34aa6428d7b682e3"}},"pool1fw7yf4mehfuszpdf2g0u72gu8d948qamwut5c6jm3d3lkj3e4an":{"id":"pool1fw7yf4mehfuszpdf2g0u72gu8d948qamwut5c6jm3d3lkj3e4an","vrfVerificationKeyHash":"838ca6096cff572b788d840445bf2167345f3d87485133ebcbfc729af016ee14","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uzulxfzccykl6xl659glxnfrvkr9jr3dled8g50m4gfe2lg6a5wde","owners":["b9f32458c12dfd1bfaa151f34d236586590e2dfe5a7451fbaa13957d","fcdeb3cb17a93f01b50d1265438fdd18de6b8d6066aebaa8e40d48ea"],"relays":[{"type":"ipAddress","ipv4":"162.55.3.29","port":3003}],"metadata":{"url":"https://foo.bat/poolmeta.json","hash":"cd1585d8931ff5f3b9397ee7e1b7fe4747209c5cd1a3afbd22600b167eef0b0c"}},"pool1fsxwamyfh5aqwg707m69zpfvwyrj5fz5ep7a8yk92wnavck4pdf":{"id":"pool1fsxwamyfh5aqwg707m69zpfvwyrj5fz5ep7a8yk92wnavck4pdf","vrfVerificationKeyHash":"e091185050f16c36c140ff83df893a6ee90abc4e4b6c9e6f61feec71fb2af439","pledge":{"ada":{"lovelace":1000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/50","rewardAccount":"stake_test1up50rxfvpmvh2k0e9ku7vypfk5w8280j3w6nm4nkk76qkfcqpc9wn","owners":["68f1992c0ed97559f92db9e61029b51c751df28bb53dd676b7b40b27"],"relays":[{"type":"ipAddress","ipv4":"154.12.248.114","port":6001}],"metadata":{"url":"https://raw.githubusercontent.com/hodlonaut/a/master/t1.json","hash":"81986b8f246cb39979af55fc01215f193df2dc07107989b886e131633e880e43"}},"pool12q7fskmv767qv8yn7mvcxj5azam9cdg0lpm3cajjqr2rqxc7y6a":{"id":"pool12q7fskmv767qv8yn7mvcxj5azam9cdg0lpm3cajjqr2rqxc7y6a","vrfVerificationKeyHash":"d1dc9125cf57397889b155799e3e6e89ce70c41b6b3b94d3e6e08a48bc4ea5e3","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"19/1000","rewardAccount":"stake_test1urfrzvw6yyunusyx4creuzysuyly3tqkj353v7fv58jl6hcfyzy5d","owners":["d23131da21393e4086ae079e0890e13e48ac16946916792ca1e5fd5f"],"relays":[{"type":"hostname","hostname":"pv.blockchainlens.org","port":6306}],"metadata":{"url":"https://raw.githubusercontent.com/bclens/cardano/main/pv.json","hash":"82dc82447da80029382fb904948c09431e0848260a504bcf4a75c575a040b05e"}},"pool12645cty3fsa7a79vx2nsd8yupl3quyhr6h3vqk6duqn0yy7vkv0":{"id":"pool12645cty3fsa7a79vx2nsd8yupl3quyhr6h3vqk6duqn0yy7vkv0","vrfVerificationKeyHash":"c1b125e070bea224be6663ebf5cf748194a70cf6aa8c16885b56e684d12450d5","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/bf2f257f-2776-4c14-aae4-1c1.json","hash":"98db945cdff93d149a30e0d9010927f1417fb1b9796c63a2bcbb85cd551b2fb6"}},"pool1tycl9a9cqgffccgsh0867u65qpk0qlm43kjqggepmflajsmcds6":{"id":"pool1tycl9a9cqgffccgsh0867u65qpk0qlm43kjqggepmflajsmcds6","vrfVerificationKeyHash":"e89c87e0d1527f047cdb4254d8139987124e9a06d07538bfb4ceda29f43ee098","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uzd5msh6y083l597yacq5pcgs82pzfrm50j3nemmynmqfcsg2m4r0","owners":["9b4dc2fa23cf1fd0be27700a070881d411247ba3e519e77b24f604e2"],"relays":[{"type":"hostname","hostname":"e566964e.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://e566964e.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1t9uuagsat8hlr0n0ga4wzge0jxlyjuhl6mugrm8atc285vzkf2e":{"id":"pool1t9uuagsat8hlr0n0ga4wzge0jxlyjuhl6mugrm8atc285vzkf2e","vrfVerificationKeyHash":"957d1696507a9f88c641db39cc2e34274456efeee9538a2bb4f332f44fb1d25c","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uq9yp8wqvgpnucpe6s6yavnrvqnuykadx8y40sv0c5ur93gapzeka","owners":["0a409dc062033e6039d4344eb2636027c25bad31c957c18fc53832c5"],"relays":[{"type":"hostname","hostname":"mithril-signer-3.testing-preview.api.mithril.network","port":9092}],"metadata":{"url":"https://tinyurl.com/2qvmy5xy","hash":"adaff9f5327ad0a3b9a47ba88a14100235915c80da2806f9bf8d271dbc0a6e13"}},"pool1t3pl903zsy3wqgl4392hmuwx8a3f259f3yzhl2ns4xlhskxkr43":{"id":"pool1t3pl903zsy3wqgl4392hmuwx8a3f259f3yzhl2ns4xlhskxkr43","vrfVerificationKeyHash":"dd6686e356e2bec35ee51b17356d801e69917e3b472e2e59d3371e48207fd990","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1urp9rkuj73fqcuc47u3r92huffdmfgnxszkk8nl3dpdmwvqjwpjgz","owners":["c251db92f4520c7315f72232aafc4a5bb4a26680ad63cff1685bb730"],"relays":[{"type":"hostname","hostname":"sator89.ddns.net","port":25369}],"metadata":{"url":"https://capitalstakepool.info/CSP.json","hash":"04028c72c74f04d605fc0d1a04c99357c8563bcf5cc408a6b6e8c7e72176c9d9"}},"pool1vzqtn3mtfvvuy8ghksy34gs9g97tszj5f8mr3sn7asy5vk577ec":{"id":"pool1vzqtn3mtfvvuy8ghksy34gs9g97tszj5f8mr3sn7asy5vk577ec","vrfVerificationKeyHash":"cc688f3f4c8152bbc71cd7b2e8da059856ea06e1520cda4a0724c4cd2632acd3","pledge":{"ada":{"lovelace":250000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uzyzlml7sqd9kpdq5xv6y6dzme78xtgllpt3yv62mjmj9cg082gaa","owners":["882feffe801a5b05a0a199a269a2de7c732d1ff85712334adcb722e1"],"relays":[{"type":"hostname","hostname":"tn-preview.psilobyte.io","port":4201},{"type":"hostname","hostname":"tn-preview2.psilobyte.io","port":4202}],"metadata":{"url":"https://psilobyte.io/adatest/psb-meta.json","hash":"18c2dcb8d69024dbe95beebcef4a49a2bdc3f0b1c60e5e669007e5e39edd4a7f"}},"pool1vc577hmjzpgz6mlccdv8ddwplfgvjtp639ykqd05anu6jcja69a":{"id":"pool1vc577hmjzpgz6mlccdv8ddwplfgvjtp639ykqd05anu6jcja69a","vrfVerificationKeyHash":"42d1ab64b06293ddcbf63dcf8466939bbfc470cf858b87be468abf46dca407ce","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":345000000}},"margin":"3/20","rewardAccount":"stake_test1uq2ktannndxkd639acvkf3hnllh04ddvmh8ctu9e6u2mstsu6fv2l","owners":["1565f6739b4d66ea25ee1964c6f3ffeefab5acddcf85f0b9d715b82e"],"relays":[{"type":"hostname","hostname":"0.0.0.0","port":6000}],"metadata":{"url":"shorturl.at/itHOW","hash":"d37a27a9a28ece2c898936eaf431287b5cd7b4cd09247a941289273ca70a06a4"}},"pool1vevw38yxlyaxke29d40ace7jzz7d38qtcmd5kk36chf3shh02ek":{"id":"pool1vevw38yxlyaxke29d40ace7jzz7d38qtcmd5kk36chf3shh02ek","vrfVerificationKeyHash":"9b49ae80c094db2bb49ae40e21deb1d7921fde3c8b469e90667c58859836d16c","pledge":{"ada":{"lovelace":30000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1ur5jhdf8a7lput2qhsa2hndls4h5yh5ukxr7yc7qkdm96jgnrtjmj","owners":["e92bb527efbe1e2d40bc3aabcdbf856f425e9cb187e263c0b3765d49"],"relays":[{"type":"ipAddress","ipv4":"153.127.67.171","port":3001},{"type":"hostname","hostname":"3rd.vps.deroris.net","port":3001}],"metadata":{"url":"https://git.io/Jo7m7","hash":"a40c9206f1ccb3e6ccfe71a7eaf7f6d4a0d15770d7b097829089468ed9be21ac"}},"pool1ve7vhcyde2d342wmqcwcudd906jk749t37y7fmz5e6mvgghrwh3":{"id":"pool1ve7vhcyde2d342wmqcwcudd906jk749t37y7fmz5e6mvgghrwh3","vrfVerificationKeyHash":"612e0b5b84ff4e48a924b51e511485a4884a31e9f8094d7ff9f1e190bc1af30d","pledge":{"ada":{"lovelace":9147456725}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/25","rewardAccount":"stake_test1urwy6fkeyl4e38mws7f8k34pyltq6qy5gpn86ws3l67cthccls3hd","owners":["dc4d26d927eb989f6e87927b46a127d60d009440667d3a11febd85df"],"relays":[{"type":"ipAddress","ipv4":"192.168.200.132","port":3001}],"metadata":{"url":"https://raw.githubusercontent.com/mj83263/test/main/tPl.json","hash":"dc4bd67f3b9b6138fcd11b6222a1550d402d367e303cce3e07a683e9c6af8f41"}},"pool1vapqexnsx6hvc588yyysxpjecf3k43hcr5mvhmstutuvy085xpa":{"id":"pool1vapqexnsx6hvc588yyysxpjecf3k43hcr5mvhmstutuvy085xpa","vrfVerificationKeyHash":"9f6e5d16ea05c1905907e8aee60b426c7680c32870c2ebe0be50281d889d5cf0","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uzkxke5d0tjj0utd8tf2v75vytt6wjkx0tp4lr0885slcnqtq2ryf","owners":["ac6b668d7ae527f16d3ad2a67a8c22d7a74ac67ac35f8de73d21fc4c"],"relays":[{"type":"hostname","hostname":"mithril-signer-1.testing-preview.api.mithril.network","port":9091}],"metadata":{"url":"https://tinyurl.com/263p356z","hash":"276f035319f342a84f7e8abf8ec0befde2434bcb29f20f41afd09132fb083fd1"}},"pool1drrylt73ln8jcv0sthcenlkhuan2lfyhthkrrv3vhs9vv4eywdy":{"id":"pool1drrylt73ln8jcv0sthcenlkhuan2lfyhthkrrv3vhs9vv4eywdy","vrfVerificationKeyHash":"c2d3aa0b9ddf84ad6680c8d4dac3375664290b95a290ab7f27c2ebd52bd537cd","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1up2ldekqxmad8gu89l4dw9r9nde58xvfsh00uhs98x33w4qxeeugs","owners":["55f6e6c036fad3a3872fead714659b7343998985defe5e0539a31754"],"relays":[{"type":"hostname","hostname":"api.monrma.ml","port":6006}],"metadata":{"url":"https://api.monrma.ml/meta/GATOR.json","hash":"66bcc65cac5cb109e0bd4c89696d2dc010902cef15d29f0b73250fc8855af5d3"}},"pool1d4nsv4wa0h3cvdkzuj7trx9d3gz93cj4hkslhekhq0wmcdpwmps":{"id":"pool1d4nsv4wa0h3cvdkzuj7trx9d3gz93cj4hkslhekhq0wmcdpwmps","vrfVerificationKeyHash":"ca839c83356effe8d232fa8dd1335afcf923bf8d151cda561a6e94e0b9f38ac7","pledge":{"ada":{"lovelace":1000000}},"cost":{"ada":{"lovelace":429000000}},"margin":"2/25","rewardAccount":"stake_test1ur8csttjsny8t783dnfeylwangqh94zrahnps3qaw6rphcsswzsft","owners":["cf882d7284c875f8f16cd3927ddd9a0172d443ede618441d76861be2"],"relays":[{"type":"hostname","hostname":"relay.preview.crimsonpool.com","port":3000}],"metadata":{"url":"https://crimsonpool.com/red.metadata.json","hash":"e3db302e127a7929cd741de7df7744448906110f76fb6d7d793716937b7a49a6"}},"pool1w83ux7vrwafrsuz044knxl9xxtr38q5jj2l3p28fl3g26faqqwg":{"id":"pool1w83ux7vrwafrsuz044knxl9xxtr38q5jj2l3p28fl3g26faqqwg","vrfVerificationKeyHash":"5c44de7dcbbf485040edf760fe91855693ea7e2290a6a9f4b25efdc42a37b025","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":10000000000}},"margin":"1/2","rewardAccount":"stake_test1urqntq4wexjylnrdnp97qq79qkxxvrsa9lcnwr7ckjd6w0cr04y4p","owners":["c13582aec9a44fcc6d984be003c5058c660e1d2ff1370fd8b49ba73f"],"relays":[{"type":"ipAddress","ipv4":"185.164.6.221","port":54326}],"metadata":{"url":"https://my-ip.at/test/previewpool.metadata.json","hash":"069457ca9fdc1bbeac1f7b4602b9d8fe8ee4255f8af724de2f79702c464402fc"}},"pool1wwh3k3ldzujdvgxllfwlnnkxyheafkacqlufnvpr77n5q72f9hw":{"id":"pool1wwh3k3ldzujdvgxllfwlnnkxyheafkacqlufnvpr77n5q72f9hw","vrfVerificationKeyHash":"81fd203455043724337724f64e67ebbb208d3885ac0063c8b14c4b2bea0bec5e","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uz3s7gd3rhe9ptechqj7z2r7l6l2gr42rv3lvu4grsdnapg88utxm","owners":["a30f21b11df250af38b825e1287efebea40eaa1b23f672a81c1b3e85"],"relays":[{"type":"ipAddress","ipv4":"51.77.24.220","port":4003}],"metadata":{"url":"https://www.stakecool.io/pools/pvcool-001.metadata.json","hash":"aade4d000f39df2f9ebfc4e23c9a3c49850236fcb924edc1f4da9be844d9691f"}},"pool1wjz475nwhq3fnhfvrjesf4pw70k27fnc5mzvsrzqlxfhy60rmu3":{"id":"pool1wjz475nwhq3fnhfvrjesf4pw70k27fnc5mzvsrzqlxfhy60rmu3","vrfVerificationKeyHash":"663f0b5d8bebb6622de18c0121d3d5bbcb1824b749fe4cbd41a0b232ff4b982e","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uq3n393q95qu7nswzvnx688ukq69e4p3r78euf2kfwsxg2sygp0rv","owners":["233896202d01cf4e0e13266d1cfcb0345cd4311f8f9e25564ba0642a"],"relays":[{"type":"hostname","hostname":"preview-relays.onyxstakepool.com","port":3001}],"metadata":{"url":"https://onyxstakepool.com/PV-ONYX1.json","hash":"c9e5e56c46dd015c183978583e6f9bc71f7abfc4dc4f949ca12a6f5aff8778fa"}},"pool1w75ukvh77hhz8c2u6rhfjvqlxyptwg37yrkddzatu99qxwwlqhd":{"id":"pool1w75ukvh77hhz8c2u6rhfjvqlxyptwg37yrkddzatu99qxwwlqhd","vrfVerificationKeyHash":"dedb7862c992b2fddfc5fe012e573aead78a0b844ca73748c9feb45a0d68666a","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urelmc7gcf4ukdf0lakusaunerkm8h6hqzvfgx8z4sflpjc4xeg7h","owners":["f3fde3c8c26bcb352fff6dc87793c8edb3df5700989418e2ac13f0cb"],"relays":[],"metadata":{"url":"https://your_pool_website.com","hash":"6bf124f217d0e5a0a8adb1dbd8540e1334280d49ab861127868339f43b3948bf"}},"pool1w757a30j8cd6nlf5dn9q52lm5ee0fn5permvtlr7mycucpkn6c5":{"id":"pool1w757a30j8cd6nlf5dn9q52lm5ee0fn5permvtlr7mycucpkn6c5","vrfVerificationKeyHash":"6ee546ad0102c3576526fc600b4ab806d5ae3f2cd037110d4cd2505c31c05a18","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"9/500","rewardAccount":"stake_test1uzu2wh3mwjg0pua454hskmehvvte4ut9nn22tqxzuycdclq5kuf7g","owners":["b8a75e3b7490f0f3b5a56f0b6f3763179af1659cd4a580c2e130dc7c"],"relays":[{"type":"ipAddress","ipv4":"139.180.205.134","port":6000}],"metadata":{"url":"https://stakinghouse.com/poolMetaData.json","hash":"021ca91a9f24147bd20c4b7f9a4a1a329998e5fa2ac2a362b40850749ff54b1d"}},"pool10gqm62xy7caj6jhhefsl7h59kse3rv2esuh9rvx55eze2n8dlrj":{"id":"pool10gqm62xy7caj6jhhefsl7h59kse3rv2esuh9rvx55eze2n8dlrj","vrfVerificationKeyHash":"8a9f2e79f70743bdc43b20da993c90b9512849f939fb5b6c3bdad80b5ff3261e","pledge":{"ada":{"lovelace":25000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uqj0hyhn72p495gntxzt4g9au76ycpcvku693mpexqxdk5s7cwqed","owners":["24fb92f3f28352d1135984baa0bde7b44c070cb73458ec39300cdb52"],"relays":[{"type":"hostname","hostname":"preview.relay.beerpool.io","port":6000}],"metadata":{"url":"https://beerpool.io/poolmeta.json","hash":"3f2d006aa149ac16689d6dd5d0dbbe46d87b41d4b8a282e7621996b6a64cd819"}},"pool105wx68zqse6v4wyx09nkqhxhmf7e0zj349pclyqsjqch7953j0x":{"id":"pool105wx68zqse6v4wyx09nkqhxhmf7e0zj349pclyqsjqch7953j0x","vrfVerificationKeyHash":"7b0cb25a2a5abf1a97523355002a173cd9ff4b2108b7ace2b4693ee406b06eef","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uz575pc99c8tr8n09u9ek3vhuys7202naetcj83l6fuzrxqpd3ml9","owners":["a9ea07052e0eb19e6f2f0b9b4597e121e53d53ee57891e3fd2782198"],"relays":[{"type":"hostname","hostname":"relay1.doctorstake.network","port":6061}],"metadata":{"url":"https://doctorstake.network/pvpoolmetadata.json","hash":"8ad1a438122bcbab46ab21bb077e818948b2d53d8c9798d0598cad713214663b"}},"pool10c40pnzz3e00kuej05xfcs2ptkekhys48q7qc4jjcsysypj46qv":{"id":"pool10c40pnzz3e00kuej05xfcs2ptkekhys48q7qc4jjcsysypj46qv","vrfVerificationKeyHash":"904c35106259f1c80add13381d730f8bf6291499b9df48dd19a930d0ab865093","pledge":{"ada":{"lovelace":8000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/20","rewardAccount":"stake_test1uqk6t7lajwssrzer6xjarc0n78y26d7p3lswnzrnnegng5ggr5lhm","owners":["2da5fbfd93a1018b23d1a5d1e1f3f1c8ad37c18fe0e988739e513451"],"relays":[{"type":"hostname","hostname":"preview.seaside-staking.best","port":18000}],"metadata":{"url":"https://raw.githubusercontent.com/Seaside-Staking/m/main/m.json","hash":"d843ac7c8ab3a17fe28d5a68c975dc846fe87479364bcff7dd3b30e5c442ca07"}},"pool1s337lucxxrhl8tz8c3r6c4crk784xtga225w3uh2tm0w2kqf0l9":{"id":"pool1s337lucxxrhl8tz8c3r6c4crk784xtga225w3uh2tm0w2kqf0l9","vrfVerificationKeyHash":"a34e2815232397c8680656eda7bb0a7f47531715a083e68432fd18c9a03049e8","pledge":{"ada":{"lovelace":50000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/40","rewardAccount":"stake_test1urp5muju83v5853rwpe7g7yt7u8la35uqpa08ym07ht7jqqymvhfn","owners":["c34df25c3c5943d2237073e4788bf70ffec69c007af3936ff5d7e900"],"relays":[{"type":"ipAddress","ipv4":"69.244.216.147","port":6000}],"metadata":{"url":"https://arcadiastakepool.com/INDGO.metadata.json","hash":"874b5cffdb3cb0720d82802bfc9b68446d858d852dd7694be43a291000fdadbe"}},"pool1s5c2wws3s0trn7agdrwfgz3knq37pule65knyxh0s0dhkdvhn3h":{"id":"pool1s5c2wws3s0trn7agdrwfgz3knq37pule65knyxh0s0dhkdvhn3h","vrfVerificationKeyHash":"e57ecb6a02223c6e8ee503c94929947462fdd2acdad2190360478274a95d6bb1","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/25","rewardAccount":"stake_test1urj7dmqqqfd6qsl8638ezh3zu7lh0cjsfc92q2uf2d2calg458h8e","owners":["e5e6ec00025ba043e7d44f915e22e7bf77e2504e0aa02b8953558efd"],"relays":[{"type":"hostname","hostname":"0c563fdf.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://0c563fdf.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1sk8n2v844jgpwzvpd4eze374pfvygzcrqlld2mfzx484yrtq74l":{"id":"pool1sk8n2v844jgpwzvpd4eze374pfvygzcrqlld2mfzx484yrtq74l","vrfVerificationKeyHash":"1cbfd07a6145d0d2859c4d114f7e71cb5b9fc7e29cbfa37a393db2637241ce92","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":400000000}},"margin":"0/1","rewardAccount":"stake_test1uqza4tpx4698h0w793fjhtnqh4amhyfcftyx78h54q2wh0qgq074z","owners":["05daac26ae8a7bbdde2c532bae60bd7bbb91384ac86f1ef4a814ebbc"],"relays":[{"type":"hostname","hostname":"relay1.dynip.org","port":28000}],"metadata":{"url":"http://panyvino.com","hash":"9ac046260b09e2befc7addb05b469f90279338821285da90f5cc6e8cb4c5ab15"}},"pool13zafxlpfgymf474uv52qt557z5k5frn9p83yr55zp267wj5mpu4":{"id":"pool13zafxlpfgymf474uv52qt557z5k5frn9p83yr55zp267wj5mpu4","vrfVerificationKeyHash":"628980b886a274e43a09810a91f8a1e1d8241a8c67ddf51e78c8efff1236698a","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1ur0vznanca5kzcwmjyscudf6f38wal8qxcr4nkefdh089mg2kg7lh","owners":["dec14fb3c7696161db91218e353a4c4eeefce0360759db296dde72ed"],"relays":[{"type":"hostname","hostname":"mithril-signer-2.pre-release-preview.api.mithril.network","port":9092}],"metadata":{"url":"https://tinyurl.com/2fej7w5a","hash":"85212d92b197fa7402e0047ed2f2411cabfab4ad1ee54201f5043c0a0fcbaeca"}},"pool1397kpa7ylzg4lqrmj3xr28xzq2548c8lafw90qyxvucsslap03v":{"id":"pool1397kpa7ylzg4lqrmj3xr28xzq2548c8lafw90qyxvucsslap03v","vrfVerificationKeyHash":"9381a0f5511d5f033eb8b707ae620e038e6c8abca7f6d0200331cbe2c7b3cb7e","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/50","rewardAccount":"stake_test1ur2wt3rv5sty3eh6ge9fcxapn0v4ytne06tvdvg8vlv7y8cqvs5eh","owners":["d4e5c46ca41648e6fa464a9c1ba19bd9522e797e96c6b10767d9e21f"],"relays":[{"type":"ipAddress","ipv4":"144.217.73.208","port":8000}],"metadata":{"url":"https://qcpol.stakepool.quebec/poolMetaData.json","hash":"ab249c551e01ea72a5483a45c9f31b2b60bd30c15c865fedf03332ede23439fc"}},"pool13vuxg9gw3fftvfg56xwl5rq82nqtjhhkeacxtg0jgqlfup9qz66":{"id":"pool13vuxg9gw3fftvfg56xwl5rq82nqtjhhkeacxtg0jgqlfup9qz66","vrfVerificationKeyHash":"96fd4b5bbeedf7fb46010d970875c434fc59ceecf566d240dd88489421ae3161","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/1","rewardAccount":"stake_test1up6hq4rnpfmykas4p3f6kytpuqzn0s2p3xwcegng9ysn0egzcqrr9","owners":["757054730a764b76150c53ab1161e00537c141899d8ca268292137e5"],"relays":[{"type":"hostname","hostname":"cardano-relay.int.t-dx.com","port":3000}],"metadata":{"url":"https://adastakepool.t-dx.com/test.json","hash":"20c5dfe0fc1aa2190ec6e344523adbbce96a03edd47f0009a40dca1fe4f260cd"}},"pool1jx2uun9v45gtnlkq83xj6w4chy8rl5g78qqd026e0w89wt4vq9s":{"id":"pool1jx2uun9v45gtnlkq83xj6w4chy8rl5g78qqd026e0w89wt4vq9s","vrfVerificationKeyHash":"d9d2fae43a1c6b3efa0ee48142292e4b2a864150e8030f1fedf2115a60bd0442","pledge":{"ada":{"lovelace":15000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/40","rewardAccount":"stake_test1up4l9hjwtqjwgx3n25q76tw757lagm20f6zk3dc9wmmrjeq0c0s3k","owners":["6bf2de4e5824e41a335501ed2ddea7bfd46d4f4e8568b70576f63964"],"relays":[{"type":"hostname","hostname":"koios-preview.themorphium.io","port":6969}],"metadata":{"url":"https://bit.ly/310ytob","hash":"1f71674f2483c9cdc3c65c77a910dd432d0ae9026157584e34380fdad3a6f44b"}},"pool1jsa3rv0dqtkv2dv2rcx349yfx6rxqyvrnvdye4ps3wxyws6q95m":{"id":"pool1jsa3rv0dqtkv2dv2rcx349yfx6rxqyvrnvdye4ps3wxyws6q95m","vrfVerificationKeyHash":"4c75e85016f939ff51b56b9e676ac7b164f36bc09f68782991c000ad54ef55e5","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1upq49hkcwpayt9dfwe3sfz94t32zqypytdp4lux7fh0uhwclxwzmm","owners":["4152ded8707a4595a976630488b55c542010245b435ff0de4ddfcbbb"],"relays":[{"type":"hostname","hostname":"cardano-preview-relay-1.syn.pizza","port":30800},{"type":"hostname","hostname":"cardano-preview-relay-2.syn.pizza","port":30800},{"type":"hostname","hostname":"cardano-preview-relay-3.syn.pizza","port":30800}],"metadata":{"url":"shorturl.at/acKO0","hash":"acba1a147fbce589cf1d556097b19e441fd2506f86417db03e5cdc06395c06ab"}},"pool1j3x329u0uxh9s9vjvsad9kx37tzal8gndz6ttxumcz4nw947djw":{"id":"pool1j3x329u0uxh9s9vjvsad9kx37tzal8gndz6ttxumcz4nw947djw","vrfVerificationKeyHash":"dccaf70188440911259f798f29caec271cb561d250fcdbe56b9eb0e3a73a12f9","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/40","rewardAccount":"stake_test1upvzzxmzr02kw529cna76e9aga4udj7x45crxx83z2zgvqgu754de","owners":["58211b621bd5675145c4fbed64bd476bc6cbc6ad303318f112848601"],"relays":[{"type":"hostname","hostname":"relay01.preview.junglestakepool.com","port":3001}],"metadata":{"url":"https://csouza.me/jp-p.json","hash":"7fdeea9ed970f2e5eb06a7a8c272c84ce2ca2f6a48ab5912b75f25346a0acbf6"}},"pool1n5aacu3chuvxkm7p2mwcpdvnmkkkvpsje6mclnwj59c6x3wpghh":{"id":"pool1n5aacu3chuvxkm7p2mwcpdvnmkkkvpsje6mclnwj59c6x3wpghh","vrfVerificationKeyHash":"bad28ede267da0d5dc61af65cfa17285257d81ac106b74bd77f507a5b161498f","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/1","rewardAccount":"stake_test1upx0n32j5cne3p0n4pervdjy43j7222h656vgl2uksrxe6gxujj3l","owners":["4cf9c552a6279885f3a872363644ac65e52957d534c47d5cb4066ce9"],"relays":[{"type":"hostname","hostname":"cardano-relay.int.t-dx.com","port":3000}],"metadata":{"url":"https://bit.ly/3O7yle2","hash":"2ad5e7a64a28105e386ec12ad29c3bb6b8a28d07d69da93f11a0c99cc2f737e2"}},"pool1nk3uj4fdd6d42tx26y537xaejd76u6xyrn0ql8sr4r9tullk84y":{"id":"pool1nk3uj4fdd6d42tx26y537xaejd76u6xyrn0ql8sr4r9tullk84y","vrfVerificationKeyHash":"590be0c42cae1fa7e93ab166343a29c83237f297f6c10ea35e5c5e6cd2eb32fa","pledge":{"ada":{"lovelace":1112000000}},"cost":{"ada":{"lovelace":413000000}},"margin":"1/50","rewardAccount":"stake_test1ur9h9qtr739mhuypqmhfxvzux3g9h0tksew8w6ravaj3t8qacq6d9","owners":["c9dc49a676087ba0fb1ab1f28b209e647b4139626d732455bb7d5582","cb728163f44bbbf08106ee93305c34505bbd76865c77687d6765159c","f4cceaa5fff7b592e39519942ea8c3b823f3fee622bb3c81a5f5150f"],"relays":[{"type":"hostname","hostname":"us.netspectrum.com","port":13001}],"metadata":{"url":"http://us.netspectrum.com:13002/pool-meta-data.json","hash":"6e31d534b0d8bdde4ce9bd04ac8d7a6906b680304a3150400304c46f0f393af5"}},"pool1n6tcrkjjn7dr70e4vjmtayswl2rne947fue7w2htthaq6men4yp":{"id":"pool1n6tcrkjjn7dr70e4vjmtayswl2rne947fue7w2htthaq6men4yp","vrfVerificationKeyHash":"9792680b674d04b392cb637a223d327d7af568ef358080cea4d2e10790040f08","pledge":{"ada":{"lovelace":14000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uq9f3jgmfywhgcmhtd0mv7m3qwp22ah08sd3x8s4ljylpxghkf2yx","owners":["0a98c91b491d7463775b5fb67b710382a576ef3c1b131e15fc89f099"],"relays":[{"type":"hostname","hostname":"preview.blockchainbill.lol","port":3003}],"metadata":{"url":"https://preview.blockchainbill.lol/SNSOB.metadata.json","hash":"4792d9a653baab097047724e97896697c4d1f04accd9e9d126f1786102f1e2d4"}},"pool15qlyejqxu99n2p3980wtwmne4ykzd9vn4mz7ldtncepnuh6rqeh":{"id":"pool15qlyejqxu99n2p3980wtwmne4ykzd9vn4mz7ldtncepnuh6rqeh","vrfVerificationKeyHash":"94ac627b9db9da8d083bd83a6e1e902788566b4db5ba691f5c7f12ef717ed1bf","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/be39feb0-5cba-4552-a044-68f.json","hash":"54920331d130d8949bff1fd6b3f01bc693de7d36de32fc9a29ea2ef60a65da71"}},"pool15zu40d05gy43gyyxy7svumkxyac9qy6shlpdrgyz5gh8g48qaaj":{"id":"pool15zu40d05gy43gyyxy7svumkxyac9qy6shlpdrgyz5gh8g48qaaj","vrfVerificationKeyHash":"3b18c66658a5d9dd1a2bd876f1e0b076451641c41017017ccc6b448bcf38c529","pledge":{"ada":{"lovelace":70000000000}},"cost":{"ada":{"lovelace":4321000000}},"margin":"1/25","rewardAccount":"stake_test1uqz0vs8vnxqpdcuey0qcvufn95gydj6x5g37wgy975wlfwgdhyuk4","owners":["04f640ec998016e39923c18671332d1046cb46a223e72085f51df4b9"],"relays":[{"type":"ipAddress","ipv4":"184.73.135.122","port":3002}],"metadata":{"url":"bit.ly/3Eh3p7A","hash":"9b9d00fcec79d306e3dffcc6865d4088f35b13c268e32c7a2fabb1845947f9c7"}},"pool15rneqfpzde87huszzstymzxu6f5u2jqelsaczr99e3z62dywau7":{"id":"pool15rneqfpzde87huszzstymzxu6f5u2jqelsaczr99e3z62dywau7","vrfVerificationKeyHash":"74838ee89acb2caf072cd50705f0dd0a958af9cb20ec70500ee3c2c2e800b316","pledge":{"ada":{"lovelace":500000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/40","rewardAccount":"stake_test1urx0fs8j3lqfkjtmuzd64futqtucqkmlj32ufgza2xhhutgmx79n2","owners":["ccf4c0f28fc09b497be09baaa78b02f9805b7f9455c4a05d51af7e2d"],"relays":[{"type":"hostname","hostname":"gateway.adavault.com","port":4061}],"metadata":{"url":"https://adavault.com/advpreview.json","hash":"336a78f742447c0af780583059167eff24a4268dad3947373397f5ccfe6a883e"}},"pool1580a362kwnqt7v2lgun5t02u0r7dyl70x9nsy37zj46xkq8mp22":{"id":"pool1580a362kwnqt7v2lgun5t02u0r7dyl70x9nsy37zj46xkq8mp22","vrfVerificationKeyHash":"69f0a026835764345061abdd6d566ae509c1cdfa630999cdc57b5e43a6d6c6f7","pledge":{"ada":{"lovelace":2000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uqnxa67e6jc4dr89kdkr0e6ucvvzucd772p9vnalrr7h0xskjsgeg","owners":["266eebd9d4b1568ce5b36c37e75cc3182e61bef282564fbf18fd779a"],"relays":[{"type":"hostname","hostname":"s2.lost-in.tech","port":3001}],"metadata":{"url":"https://cardano.lost-in.tech/LIT-Pool.metadata.json","hash":"5e30e12a869cf6f5b8c8fd2d74cccd7e0825b37719a978914877b56e50e82bf9"}},"pool152x6q0ly050yr7cnatwq0087jzwyxxlkyuch6s4xex8ljaeu0ng":{"id":"pool152x6q0ly050yr7cnatwq0087jzwyxxlkyuch6s4xex8ljaeu0ng","vrfVerificationKeyHash":"c4b14fc6e1e4a632f51e245990b0d9a75096f26ad22930df52ac06ad2dc06149","pledge":{"ada":{"lovelace":3000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urc970azyxew8lf0s0wdw8z5pckjxcdn63v7575v4upprks6h5yys","owners":["f05f3fa221b2e3fd2f83dcd71c540e2d2361b3d459ea7a8caf0211da"],"relays":[{"type":"hostname","hostname":"testnet-relay.xstakepool.com","port":3001},{"type":"hostname","hostname":"testnet-relay2.xstakepool.com","port":3001}],"metadata":{"url":"https://xstakepool.com/testnet-xstakepool.json","hash":"25d14c92cd852bbe666858ba040db7d5dd0767838e604e16c12b8fb842cf89ec"}},"pool14rn9dq87dgj2z8g3lp4n0a78fewxff3gkgjkmz72ew44ym79xpp":{"id":"pool14rn9dq87dgj2z8g3lp4n0a78fewxff3gkgjkmz72ew44ym79xpp","vrfVerificationKeyHash":"3e583b72203f1659bb73653baf0e2d7850d238d4c96435eff4331060bf926801","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uz7xx6hy2xnnrmz0av0xl7qn9vdkhage7myf0nd49e7mvcg6z0smn","owners":["bc636ae451a731ec4feb1e6ff8132b1b6bf519f6c897cdb52e7db661"],"relays":[{"type":"hostname","hostname":"f7ca89d1.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://f7ca89d1.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool14gzp9699juxeku56qc5dsk00vv9kngrz4art5v04fh77wmd37hq":{"id":"pool14gzp9699juxeku56qc5dsk00vv9kngrz4art5v04fh77wmd37hq","vrfVerificationKeyHash":"bb0670c4efe93e9bafc85323da00fef702997d64a0894b6398d8fb72d97eb7c1","pledge":{"ada":{"lovelace":678000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1up6ckzx75pw6h5wdx5gx384anmak5jf3dt9npm4dw58za8sxw5223","owners":["758b08dea05dabd1cd3510689ebd9efb6a49316acb30eead750e2e9e"],"relays":[{"type":"hostname","hostname":"test.everestada.com","port":7002}],"metadata":{"url":"https://raw.githubusercontent.com/everestada/esp/main/Meta.json","hash":"fe93bf08749b0aabb73d7a22c4af69ae15e89a52105df2ebd9a28b03a89a2353"}},"pool14fdr8cpz0qpgzkrucu2q7hst2pa3u5ssfej7kuepdq4v7lkyxg3":{"id":"pool14fdr8cpz0qpgzkrucu2q7hst2pa3u5ssfej7kuepdq4v7lkyxg3","vrfVerificationKeyHash":"896bac573601caf048566f3562e99be9c742832ad7e4527b5b1cdc330e9384c1","pledge":{"ada":{"lovelace":20000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uqr9uznkqeuv6e7ez79yf8us678xus3y6ac0su9d253r0eg5l4clt","owners":["065e0a760678cd67d9178a449f90d78e6e4224d770f870ad552237e5"],"relays":[{"type":"ipAddress","ipv4":"81.169.140.47","port":6000}],"metadata":{"url":"https://hamster-stake-pool.de/preview_poolmeta.json","hash":"81813b6eb7904fb8533aa51f9aebc16f14e6ade80576078b83a8b307ace6b987"}},"pool14u22dyym8k2g2twvgct86njg3m9cc7j2fc74yamy6672s6up7a0":{"id":"pool14u22dyym8k2g2twvgct86njg3m9cc7j2fc74yamy6672s6up7a0","vrfVerificationKeyHash":"600f54b88675a354a87bea473ac776fb2684254d55431585904b89b71ef74620","pledge":{"ada":{"lovelace":50000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"99/100","rewardAccount":"stake_test1uruen30w3mydukztulc8z5xqp2zpezctum9x4j6kctp3csclazf3y","owners":["f999c5ee8ec8de584be7f07150c00a841c8b0be6ca6acb56c2c31c43"],"relays":[{"type":"hostname","hostname":"preview.leadstakepool.com","port":3001},{"type":"hostname","hostname":"preview.leadstakepool.com","port":3002}],"metadata":{"url":"https://raw.githubusercontent.com/lead-pool/l/master/p.json","hash":"91a080cf2aa797c24efe5b26330a634209ec152a0f079ffc0b31157a6f4a6993"}},"pool1krjtqew2jg203nvnec39vt77leqyfsc8e42u4ywx534t62h9fth":{"id":"pool1krjtqew2jg203nvnec39vt77leqyfsc8e42u4ywx534t62h9fth","vrfVerificationKeyHash":"3a238800d748179b955445d9c2488125785f1e271e8d43449e292d5a7c4b7b71","pledge":{"ada":{"lovelace":100}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/2","rewardAccount":"stake_test1upxs40dqlfrh4gkd7djhwr5qlq225c3etv66f8m0mgsahxgk45c6j","owners":["4d0abda0fa477aa2cdf365770e80f814aa62395b35a49f6fda21db99"],"relays":[{"type":"ipAddress","ipv4":"212.24.98.109","port":5002}],"metadata":{"url":"https://adawallet.io/public_files/MDS_ST_meta_v2.json","hash":"ef3aca5a37d0bc4d81c4f85da513e3565be372e9bc3ecdf6fe5cb1a5bb55bff2"}},"pool1k4rdvvuhy7h927psyew9syupwddy77t4j8lc74hpgzpvv7yklwg":{"id":"pool1k4rdvvuhy7h927psyew9syupwddy77t4j8lc74hpgzpvv7yklwg","vrfVerificationKeyHash":"ff8d88fd6b39985c9ddbef0363f87ec0ae32016c62a305e2497e4b54cb161d52","pledge":{"ada":{"lovelace":6000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/40","rewardAccount":"stake_test1uqw2h3092ka5mctav6d07cwumxagvcm9zs2aj9g2m4n74cgcf5r9x","owners":["1cabc5e555bb4de17d669aff61dcd9ba8663651415d9150add67eae1"],"relays":[{"type":"hostname","hostname":"preview-test.ahlnet.nu","port":2102}],"metadata":{"url":"https://ahlnet.nu/pool/preview-meta.json","hash":"8f52b4840726c157c50c1b972fadb21b2f0c852e99004a48e649319218960c55"}},"pool1kkhr6m0syfgqamr3klzhj2trjd3q4vyg8trzdjxdp64nqzshwea":{"id":"pool1kkhr6m0syfgqamr3klzhj2trjd3q4vyg8trzdjxdp64nqzshwea","vrfVerificationKeyHash":"b4ea03eb58cbfa9059e0b8478f09762f002e4cebc9aae7bf6de04b9ccebb9d94","pledge":{"ada":{"lovelace":100000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uzx366cdgqv9lg69y7ufw59af3y7yh9jxflnym8z8qz3pfgmef2r8","owners":["8d1d6b0d40185fa34527b89750bd4c49e25cb2327f326ce2380510a5"],"relays":[{"type":"hostname","hostname":"preview.adanorthpool.com","port":9613}],"metadata":{"url":"https://www.adanorthpool.com/ANPPREVIEW.metadata.json","hash":"e4f9a2cf26e72b93955893bbcae4a37c27c061b04ab2a8d79856350e6dc3fb26"}},"pool1kewhspt8fsxk9kx6pw2nukcrs940dkwcwh89llj233ahghexeum":{"id":"pool1kewhspt8fsxk9kx6pw2nukcrs940dkwcwh89llj233ahghexeum","vrfVerificationKeyHash":"9d009cac22c72b8200e473c71330cc5907832880a2098c1fea0affb68df5f52f","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uptdhvz442mcem2lqd3y23nlypudpdm7d32aeyn3y72d8tcs7scmy","owners":["56dbb055aab78ced5f036245467f2078d0b77e6c55dc92712794d3af","b0348c669fe3cb7446b5084a669e304dd1cff63762352e8355e14482"],"relays":[{"type":"hostname","hostname":"605691fa.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://605691fa.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1hykgd0kw0n6vx08j8vcyu7q0q6rqkwxr7cql03vf2at9kdmlxpy":{"id":"pool1hykgd0kw0n6vx08j8vcyu7q0q6rqkwxr7cql03vf2at9kdmlxpy","vrfVerificationKeyHash":"c636a7c8aa43ee105919d24a62f0d80bdc3981de0951672e7a316cc9a0f57b74","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uz5sce2cv9kkykjqhakrvma65xhlyzt3p7n4aamexkg0jtcf54jnu","owners":["a90c6558616d625a40bf6c366fbaa1aff209710fa75ef7793590f92f"],"relays":[{"type":"hostname","hostname":"node.armadacardano.io","port":6000},{"type":"hostname","hostname":"node2.armadacardano.io","port":6000}],"metadata":{"url":"https://armadacardano.io/metadata.json","hash":"45ce75ec2304fce3afb1a8c11316cedc5a20aea417b58ca59f6ad97ea4518112"}},"pool1h2wx7wnf079jfz6vyzs9jnjczme2nlufryyw68e2fhe2x0swk3e":{"id":"pool1h2wx7wnf079jfz6vyzs9jnjczme2nlufryyw68e2fhe2x0swk3e","vrfVerificationKeyHash":"d9a1ba9598e9613974ce89526c30d70bc9763af61b86d5e28638ecfc88e837ce","pledge":{"ada":{"lovelace":45000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/500","rewardAccount":"stake_test1upam5e8xunaktc2qwwq3aa6wumkya75x68ce32a0dkfh60qyxhst8","owners":["7bba64e6e4fb65e14073811ef74ee6ec4efa86d1f198abaf6d937d3c"],"relays":[{"type":"ipAddress","ipv4":"159.138.55.134","port":3001},{"type":"ipAddress","ipv4":"192.168.0.105","port":3001}],"metadata":{"url":"https://raw.githubusercontent.com/mj83263/test/main/tp2.json","hash":"5ff4cd6df6afda00a70f9480b72acaa0e2271371c2e6daf89e7c53ef6192ec90"}},"pool1htdmnme5s6d824trqq33czlm82f473w04h4xghprzaj3cff53mp":{"id":"pool1htdmnme5s6d824trqq33czlm82f473w04h4xghprzaj3cff53mp","vrfVerificationKeyHash":"98a662ae890d7c2d48b8bf5fb55602c20a04d59e499d0446586189680d039a9f","pledge":{"ada":{"lovelace":8000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/200","rewardAccount":"stake_test1uzsapk9c9x5frdk99wqktd6udusxhe6u0qnaryxmg4cqe9clhncf4","owners":["a1d0d8b829a891b6c52b8165b75c6f206be75c7827d190db45700c97"],"relays":[{"type":"hostname","hostname":"relaynode25t.irfada.co","port":6000},{"type":"hostname","hostname":"relaynode26t.irfada.co","port":6000}],"metadata":{"url":"https://tinyurl.com/munhhxv9","hash":"dfe61ced98cfa2fd81658686ea824910f3e6a5306c89bf1bc362f54e2000927c"}},"pool1h7c2jq3pmvn3f8jht4ulhgha3h60k6syu3rw6pmkfrhqs9j7m0l":{"id":"pool1h7c2jq3pmvn3f8jht4ulhgha3h60k6syu3rw6pmkfrhqs9j7m0l","vrfVerificationKeyHash":"941c6ac6afb53de451e95ec203d6093ce6c8ef0fd58e8a78e406ac3bb668c796","pledge":{"ada":{"lovelace":1000000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/25","rewardAccount":"stake_test1uqkn6dhxl7mg542afm858jxudl7cwd9f0gys3qkuh3al5eq5zzhss","owners":["2d3d36e6ffb68a555d4ecf43c8dc6ffd8734a97a090882dcbc7bfa64"],"relays":[{"type":"hostname","hostname":"relay.test.lidonation.com","port":3010}],"metadata":{"url":"https://test.lidonation.com/metadata.json","hash":"edc82ecfb1cabeb15cb122bd6a65b6de6006e2201617e3c8dfdf8cc652baacfe"}},"pool1hlgaznlja8jau6wg3u4curvs7ng6yhxaxa2urp7qylxkc2e4pjk":{"id":"pool1hlgaznlja8jau6wg3u4curvs7ng6yhxaxa2urp7qylxkc2e4pjk","vrfVerificationKeyHash":"f727fdc0e656c1faea14c812b9cf7648795f5b606f6428f6e8dd68d0f729514d","pledge":{"ada":{"lovelace":4000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/200","rewardAccount":"stake_test1uzpp6e09x70k4wu4ccwujgwfdjwluf4nzyekkaa2l0dlgjq07ax2w","owners":["821d65e5379f6abb95c61dc921c96c9dfe26b311336b77aafbdbf448"],"relays":[{"type":"ipAddress","ipv4":"51.255.82.47","port":6000}],"metadata":{"url":"http://config.ada-staking.fr/metadatas_preview.json","hash":"86fd4e3118fe835008a699f339ec111ac35682de1d449b15255544b1570b601f"}},"pool1cv9fr477zeznqrk8uxa5hh72tsjukkuqtnet7wgyxx3rq700kl5":{"id":"pool1cv9fr477zeznqrk8uxa5hh72tsjukkuqtnet7wgyxx3rq700kl5","vrfVerificationKeyHash":"b1ab6692d0af93c5e61e99f4ba39a5a10352b729fe370145e35e5eb39bc53b13","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/50","rewardAccount":"stake_test1upv2favfz6vqs782yg9kc8sxdely9g3dqd4w4v492jw6hvcypj9hu","owners":["58a4f58916980878ea220b6c1e066e7e42a22d036aeab2a5549dabb3"],"relays":[{"type":"hostname","hostname":"previewrelay.stakepoolcentral.com","port":15654}],"metadata":{"url":"https://bi-preview.stakepoolcentral.com/CENT.preview.json","hash":"fb6a7bdf6c6827d16c33b1173cb436897cdad7a3fe399c01813797180fe97db3"}},"pool1ceact5c2pt4ynn5nwv2rqm04krzsm4jd26r468mdqannv5crxd6":{"id":"pool1ceact5c2pt4ynn5nwv2rqm04krzsm4jd26r468mdqannv5crxd6","vrfVerificationKeyHash":"c2075042ece1ad9b41000c53598349ec2735c649f456f3836901ade5b31eca10","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uq0r8cvtjnz8y0kw4x09rv3fk8gev98gp5fg28u0zk0kaqgwxl5eq","owners":["1e33e18b94c4723ecea99e51b229b1d19614e80d12851f8f159f6e81"],"relays":[{"type":"hostname","hostname":"9caee114.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://9caee114.cardano-metadata.stagebison.net/metadata.json","hash":"985e4efc3b6a10c375968c1de0a138fc75bd357d3e1ffa581aafbd96a43d37a5"}},"pool1epeq86e8vuuar86kk9hgtn6ty3yzcjun5nrm2xyysfl07fsrwc4":{"id":"pool1epeq86e8vuuar86kk9hgtn6ty3yzcjun5nrm2xyysfl07fsrwc4","vrfVerificationKeyHash":"09f8f0bcd8dba98f8d0d5cf76624610eda099fcfd813df66b43ce23a3be7e35f","pledge":{"ada":{"lovelace":9000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"9/100","rewardAccount":"stake_test1uza6wgdaec5kulpd5ft2xtchcfhgry6te8az8h5r2xzp7kgxc3hvp","owners":["bba721bdce296e7c2da256a32f17c26e81934bc9fa23de8351841f59"],"relays":[{"type":"ipAddress","ipv4":"127.0.0.1","port":80}],"metadata":{"url":"https://foo.bat/poolmeta.json","hash":"47fa1c955765325622a3d1bcff79d78ce719a8823ee3169998348cf585edc469"}},"pool1ez9khv2gx82mqrnj0qenr47dy8grecm8qkkrtnn69wzzwkvc9l6":{"id":"pool1ez9khv2gx82mqrnj0qenr47dy8grecm8qkkrtnn69wzzwkvc9l6","vrfVerificationKeyHash":"30ff40541e2c155acfcdfa844069e705dee1ae8eef9bdcde22de465de6fa8fdd","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/20","rewardAccount":"stake_test1up3pxcv3etz7d8h5e6csly3yggnmnwrgqrvhhjsqak7828ck4ytys","owners":["62136191cac5e69ef4ceb10f92244227b9b86800d97bca00edbc751f"],"relays":[{"type":"hostname","hostname":"c-pv-rn01.liv.io","port":30002},{"type":"hostname","hostname":"c-pv-rn02.liv.io","port":30002}],"metadata":{"url":"https://liv.io/poolMetaData.json","hash":"66309fa9a6726eaf1ede2bd73b1ffe02dcbc0f966730221b0cbc71702bb1742a"}},"pool1erufgazt3scqvjvsqv7ehayfscj93llzu3e6lknh2m6d5xcfjdr":{"id":"pool1erufgazt3scqvjvsqv7ehayfscj93llzu3e6lknh2m6d5xcfjdr","vrfVerificationKeyHash":"ee04d2c090ad7cfb572b32776eb694f336b2e26048a0423de1d66241deadeac8","pledge":{"ada":{"lovelace":19000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uqevz4f8d5z9pv7jx8rtlvxascwqx7v6ygrmf4kj2vta43q7kjpzk","owners":["32c155276d0450b3d231c6bfb0dd861c03799a2207b4d6d25317dac4"],"relays":[{"type":"hostname","hostname":"preview-testnet-relay.cardanistas.io","port":3001}],"metadata":{"url":"https://stakepool.page.link/cards-preview-testnet-metadata","hash":"ce0eb65620e544b8614517f495fd0bd371a6a5ee70c3ddc6b210c3dff0a3f8b3"}},"pool1erajsxw8ejry8flz6gwsd885dmx9uv6k9wd8dl5vme7cxrzv9hl":{"id":"pool1erajsxw8ejry8flz6gwsd885dmx9uv6k9wd8dl5vme7cxrzv9hl","vrfVerificationKeyHash":"b327686ee38df980c15a5c9f9eeefeb5a03f5079531805cfead05a33739d23b4","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/20","rewardAccount":"stake_test1upnsszyt4g7wtl4s729kqysjph9mpv9f8hy5tk2srxr5swqnl38cl","owners":["6708088baa3ce5feb0f28b6012120dcbb0b0a93dc945d95019874838"],"relays":[{"type":"hostname","hostname":"g5.datadyne.earth","port":3005}],"metadata":{"url":"http://datadyne.earth/cardano/dataDyneCardanoPool.json","hash":"23f3b6da129943598cc39d57de2569810e5564558f1db8ab0bb80bd85194b3c4"}},"pool1ewxvkzqnvfzaf48092n4t2crdventhxhtmpvydxnsnj322qc47c":{"id":"pool1ewxvkzqnvfzaf48092n4t2crdventhxhtmpvydxnsnj322qc47c","vrfVerificationKeyHash":"9842080c08dfce55e9d6758b9c57c51a83003c29920cbb94a828399f2472bc64","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"392699/12500000","rewardAccount":"stake_test1upp6fr9evvqcprgr57vq0u9mdwxck2whdlyjhve750xl29gu5zexv","owners":["43a48cb96301808d03a79807f0bb6b8d8b29d76fc92bb33ea3cdf515"],"relays":[{"type":"hostname","hostname":"preview.canadastakes.ca","port":5002}],"metadata":{"url":"https://www.canadastakes.ca/metadata/can1-preview-metadata.json","hash":"756e0c7c2640e526c055d0fe4eb453c0c2e2c3af85138a99a8e0d74ef9c0eeb3"}},"pool1ewed82f7tdluggkj2qsrajyjakzqewj3e37p25cddurtwejl6tz":{"id":"pool1ewed82f7tdluggkj2qsrajyjakzqewj3e37p25cddurtwejl6tz","vrfVerificationKeyHash":"dca941225e309e0aa7a4ca3a2f49280fa860098a17ab231a5e9b4347a0f2d241","pledge":{"ada":{"lovelace":9369000000}},"cost":{"ada":{"lovelace":369000000}},"margin":"9369/10000","rewardAccount":"stake_test1uzn99jy8eud3f4jp7pg6natdt3mn76mn33fx5na0a9utk7q03ttkv","owners":["a652c887cf1b14d641f051a9f56d5c773f6b738c526a4fafe978bb78"],"relays":[{"type":"hostname","hostname":"testicles.kiwipool.org","port":9720}],"metadata":{"url":"https://bit.ly/3R870ZK","hash":"19dcf5a17af5475da21aae1046a1bdae92ebac5e06e93e8c9a41b7a844fc6af8"}},"pool1ecc3gej4jsaskjfq6phxkcklx8l0qtvalyzeefp9shmvj86hchr":{"id":"pool1ecc3gej4jsaskjfq6phxkcklx8l0qtvalyzeefp9shmvj86hchr","vrfVerificationKeyHash":"dc0c2cf51a1033db6cdae7a856d78989ea373d41567b4bd30e850021d84b8843","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uq6pyvmjrxem8gftst2v23adw5trzvxanhz9vv3p4ng9qkqgwyflc","owners":["3412337219b3b3a12b82d4c547ad75163130dd9dc4563221acd05058"],"relays":[{"type":"hostname","hostname":"relay1.cardano.teamplay.studio","port":6000}],"metadata":{"url":"https://tinyurl.com/2p93ec5b","hash":"6bfbe784117723dbd72811f1ac85acfe49d5ca913102320ae012f39533a97a96"}},"pool16y556gh885fw5nky8f8qmfwjeer7l8d2wjr8cl7f5vd8x7zgh0d":{"id":"pool16y556gh885fw5nky8f8qmfwjeer7l8d2wjr8cl7f5vd8x7zgh0d","vrfVerificationKeyHash":"968a613baf8ec8e434b663e0a1fdf1c710a7b760a67dfb15e8ede88b818236e9","pledge":{"ada":{"lovelace":5000000000}},"cost":{"ada":{"lovelace":4321000000}},"margin":"1/25","rewardAccount":"stake_test1uppyxzrrhyfh5ja2tgfm87u8h36xgr3a6d6p2ljztpfew8snugder","owners":["42430863b9137a4baa5a13b3fb87bc74640e3dd374157e425853971e"],"relays":[{"type":"ipAddress","ipv4":"123.121.123.121","port":3000}],"metadata":{"url":"https://git.io/JJWdJ","hash":"c5c38833176e2d575bd8693e206e3af2e1088e556def86cae9f6c2fc45579f36"}},"pool16dy6cwrdthfmhn85h56se7dmhp2m8vhg928lvg073r7dwkjvtpg":{"id":"pool16dy6cwrdthfmhn85h56se7dmhp2m8vhg928lvg073r7dwkjvtpg","vrfVerificationKeyHash":"a377abb415ee8e8ae9a15a2a68aa9800261c7ffc77ac9380d416703e7fed9ac8","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/b44bf76a-f93d-491d-bffe-ebf.json","hash":"e0f5672cbb37d0564f5ba3f68fad2ea15484b65ece509500b27213a597a7df03"}},"pool16hphjcfga9jhk5j3rsgmys83kza983utn3zv9jwhjgpe2ah4j8x":{"id":"pool16hphjcfga9jhk5j3rsgmys83kza983utn3zv9jwhjgpe2ah4j8x","vrfVerificationKeyHash":"42b2725232523538f75c49436958209eeec9b0bd081b847816996c3faf1a3ed1","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/20","rewardAccount":"stake_test1uzxp3ahlzepch6r7vk43cwjsmyjvp7zvqy6973nw2ejktksa5yrqu","owners":["8c18f6ff16438be87e65ab1c3a50d924c0f84c01345f466e566565da"],"relays":[{"type":"ipAddress","ipv4":"168.138.37.117","port":6000}],"metadata":{"url":"https://tinyurl.com/yc3brjd5","hash":"13538c6980dd25aef3cad66fe9534145168e94e88bdb2db73f469b7b3e2faaeb"}},"pool16h8ugt8k0a4kxa5g6x062zjrgfjc7cehpw0ze8374axlul76932":{"id":"pool16h8ugt8k0a4kxa5g6x062zjrgfjc7cehpw0ze8374axlul76932","vrfVerificationKeyHash":"4331f2905796fd9a028c17896ce5305dc1daf710ad448a3872df75722f2cc41d","pledge":{"ada":{"lovelace":100000000000000}},"cost":{"ada":{"lovelace":500000000}},"margin":"1/1","rewardAccount":"stake_test1uzuklnhnhy634a5rf0v9pcaf0pva002mw2wjf0ekg6h2encat3ykr","owners":["ba149e2e2379097e65f0c03f2733d3103151e7f100d36dfdb01a0b22"],"relays":[{"type":"hostname","hostname":"preview-node.world.dev.cardano.org","port":30002}]},"pool1mfc42za8tj74zc66ez3slwtq4mumdl7yrylaxajd5xugujmhd0c":{"id":"pool1mfc42za8tj74zc66ez3slwtq4mumdl7yrylaxajd5xugujmhd0c","vrfVerificationKeyHash":"5261e39dc3a6a2c1107bded7a5cce9f9e5ba273d92b3832d028c24a23b83db48","pledge":{"ada":{"lovelace":4567000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"117/5000","rewardAccount":"stake_test1uzckcmv9m39sx0jdvjn5snd8pkhtzwjed50tr9ayjcjdvfctmyegm","owners":["b16c6d85dc4b033e4d64a7484da70daeb13a596d1eb197a49624d627"],"relays":[{"type":"ipAddress","ipv4":"95.216.173.194","port":16000}],"metadata":{"url":"https://raw.githubusercontent.com/hodlonaut/a/master/t1.json","hash":"81986b8f246cb39979af55fc01215f193df2dc07107989b886e131633e880e43"}},"pool1m3d2flwq8kt6ys0e973xwawd042dnn6vfu82p8efyqsvu4wttaq":{"id":"pool1m3d2flwq8kt6ys0e973xwawd042dnn6vfu82p8efyqsvu4wttaq","vrfVerificationKeyHash":"e40dfd70145e63f2eb76398181f9e2f9b9f24aff6800228aa7ff1beef2a3c30c","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":345000000}},"margin":"3/20","rewardAccount":"stake_test1ups3a2wv5lnrwusv06zxqrjpga4gwzuuw86y8vh23t9uhgsxarnft","owners":["611ea9cca7e637720c7e84600e41476a870b9c71f443b2ea8acbcba2"],"relays":[{"type":"hostname","hostname":"ada01.liv.io","port":30002}],"metadata":{"url":"liv.io/poolMetaData.json","hash":"78409be753a669ae5eb8c81ee7f3f1a48e8a265ebc6814e6247af4440d50b515"}},"pool1uqthfy3jsrd82q067vu8ml8g0w3xr20qp8kv7z0yzrdhqrawkm2":{"id":"pool1uqthfy3jsrd82q067vu8ml8g0w3xr20qp8kv7z0yzrdhqrawkm2","vrfVerificationKeyHash":"7104302efc01232ce74b1c5c5fd8519e0ac84f07a62d0deb7fb8ebd05454b5ea","pledge":{"ada":{"lovelace":9400000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"99/100","rewardAccount":"stake_test1upltzjkedla8ukdnj3k58xwy3pgjqwckmnx5s4a07lr0gds7yvh0x","owners":["7eb14ad96ffa7e59b3946d4399c48851203b16dccd4857aff7c6f436"],"relays":[{"type":"ipAddress","ipv4":"14.201.4.90","port":6006},{"type":"ipAddress","ipv4":"14.201.4.90","port":6005},{"type":"ipAddress","ipv4":"139.218.11.14","port":6005}],"metadata":{"url":"https://dpadapools.com/preview3meta.json","hash":"e075ccee5c7172d62b0da89fbe1ee02a2569de5ceb438a6dd22be079c63670c5"}},"pool1uh5sc3v77el8egy6rgz59mdgv0097j7nx3usrrkagvmsy6074k0":{"id":"pool1uh5sc3v77el8egy6rgz59mdgv0097j7nx3usrrkagvmsy6074k0","vrfVerificationKeyHash":"ae3c85580444e5a30cfad07b6a70e004c1875faf87851a06ce756e5ed42ee8f4","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uzds77htp7kk5txdk5e2zntrejgmv5gum445n26ygawv40ghak4zs","owners":["9b0f7aeb0fad6a2ccdb532a14d63cc91b6511cdd6b49ab44475ccabd"],"relays":[{"type":"hostname","hostname":"sp.altzpool.com","port":5001}],"metadata":{"url":"https://altzpool.com/WALTZ/poolmeta.json","hash":"5c8ab40789c4fdc8aeb4684deda3c85aa0202078e0f2d575977f76351da9e771"}},"pool1ayc7a29ray6yv4hn7ge72hpjafg9vvpmtscnq9v8r0zh7azas9c":{"id":"pool1ayc7a29ray6yv4hn7ge72hpjafg9vvpmtscnq9v8r0zh7azas9c","vrfVerificationKeyHash":"4888af16310dc9dd2600001ae7d5fc571cd15d38ffb47c802aac599f916207e0","pledge":{"ada":{"lovelace":35000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/100","rewardAccount":"stake_test1uzs5rxys8qy5jnr9g0mkj860ms5n92nrykmrgyumpf2ytmsejj4m6","owners":["a14198903809494c6543f7691f4fdc2932aa6325b634139b0a5445ee"],"relays":[{"type":"ipAddress","ipv4":"207.180.211.199","port":6007}],"metadata":{"url":"https://git.io/JW7b5","hash":"7296d38d3c67d769c38924679e132e7d9098e70891d7574cc5cf053574305629"}},"pool1agzq8htqr80dr0wu6ppvm4azkrmhelg4jy4x4qes9n5cuau7esc":{"id":"pool1agzq8htqr80dr0wu6ppvm4azkrmhelg4jy4x4qes9n5cuau7esc","vrfVerificationKeyHash":"fb27957133f79e8e308e0bb47f26a3b8c9c6ada920a4b1121410d55ad4f2f90a","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/187d7406-a87e-449e-8849-9a8.json","hash":"68d0f12660b653892627f2c26c5206dd7cec9fe5c28680f30130aee36188cefd"}},"pool1a7h89sr6ymj9g2a9tm6e6dddghl64tp39pj78f6cah5ewgd4px0":{"id":"pool1a7h89sr6ymj9g2a9tm6e6dddghl64tp39pj78f6cah5ewgd4px0","vrfVerificationKeyHash":"1d8199fd0a82c29b242d62f6aca7d166200e47c0596fab5b1d4cf56399b6eded","pledge":{"ada":{"lovelace":100000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/10","rewardAccount":"stake_test1uqd2nz8ugrn6kwkflvmt9he8dr966dszfmm5lt66qdmn28qt4wff9","owners":["1aa988fc40e7ab3ac9fb36b2df2768cbad36024ef74faf5a0377351c"],"relays":[{"type":"hostname","hostname":"prv-relay1.apexpool.info","port":3001}],"metadata":{"url":"https://apexpool.info/preview/poolmetadata.json","hash":"a207f23a6255eeb0b508945e5170b169eb5c3220109d7fa17a7d88d462c8a199"}},"pool178q9xf62yr0rkkgrx6lxwk7h0md4ms3jamc8j206q0r5xr3qc8l":{"id":"pool178q9xf62yr0rkkgrx6lxwk7h0md4ms3jamc8j206q0r5xr3qc8l","vrfVerificationKeyHash":"fabe3a1aa31e714e62d4b77cfabe22759ec854565a827e1161cd162edfee9427","pledge":{"ada":{"lovelace":100000000}},"cost":{"ada":{"lovelace":345000000}},"margin":"3/20","rewardAccount":"stake_test1urkd8fd78n9ce886q20wnqjf8dg3v3g5xszhv5hptpvkj5cq3h6fk","owners":["ecd3a5be3ccb8c9cfa029ee982493b5116451434057652e158596953"],"relays":[{"type":"ipAddress","ipv4":"62.11.3.72","port":6000}],"metadata":{"url":"https://tinyurl.com/4by9x85x","hash":"2efe7280d7aca9cc51ab6b810482ecb59b89c7bfdf2215ad6f7c81483d78482c"}},"pool17wdfwsyksx7femcxzx7ycf84maqvdf3fmr7z92h2xguy7eanvdf":{"id":"pool17wdfwsyksx7femcxzx7ycf84maqvdf3fmr7z92h2xguy7eanvdf","vrfVerificationKeyHash":"b5ad4eb8d4d7d07c993670d34e475a0ebd3553b297eaec49f297645365f3319e","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"0/1","rewardAccount":"stake_test1uzu4m5xsmd0lw2y7n3rrh70feevp5sghqk9nmkr30f0yyjcx0eu53","owners":["b95dd0d0db5ff7289e9c463bf9e9ce581a4117058b3dd8717a5e424b"],"relays":[{"type":"hostname","hostname":"preview-testnet-relay.junostakepool.com","port":4521}],"metadata":{"url":"https://junostakepool.com/juno-testnet.metadata.json","hash":"b2cbd9af0915b7f4b170a3dda7487f763e2ff31b9b960511a1a7d754c2d5714e"}},"pool17njlrn0jgdw626utskz0zmrnduz9ra8d3al6aw5hvszxkx88q2r":{"id":"pool17njlrn0jgdw626utskz0zmrnduz9ra8d3al6aw5hvszxkx88q2r","vrfVerificationKeyHash":"392d334b0670323093e6cf60edf36961e4005de35b2c86f01e41ce2f7428837a","pledge":{"ada":{"lovelace":1000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/1","rewardAccount":"stake_test1urmklja3h07ndxxrg6eu950x9glzws3gcu7wpphz2cdgujql0rxpn","owners":["10d1fd3cc499c8651bc9344fabe05739fa3e5777145eb638d39dc449"],"relays":[{"type":"ipAddress","ipv4":"210.54.38.228","port":4020}],"metadata":{"url":"https://bit.ly/3vlDN4w","hash":"ff6cdb1fba6074de46d95e0f878d9683d2ce2cf3acb57e6a4fdb9d97af8fe739"}},"pool1l9u9ss9xtww8qkt4zqda84z945f6tgq4753jqhtdr4r8yaw7d6g":{"id":"pool1l9u9ss9xtww8qkt4zqda84z945f6tgq4753jqhtdr4r8yaw7d6g","vrfVerificationKeyHash":"d510044198082bb3852d56c29d0901dfc7f2fe7cc9958fffdb2c0a10ca378495","pledge":{"ada":{"lovelace":0}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/1","rewardAccount":"stake_test1up3pv0r49hevqvc23q7zfwnza6d0vs3qhf4w9lhg9w93c7qegmfv6","owners":["62163c752df2c0330a883c24ba62ee9af64220ba6ae2fee82b8b1c78"],"relays":[{"type":"ipAddress","ipv4":"18.219.254.123","port":3001}],"metadata":{"url":"https://tinyurl.com/ye2zvyf4","hash":"60586988c5245b4eb59aff8110da9ebe57d4c7e37aaf6e6a3587523aa14fdee1"}},"pool1ltyxtkh37lfuh73ayulf8jdd742kmrqvx8rvt44r65c7q96xh08":{"id":"pool1ltyxtkh37lfuh73ayulf8jdd742kmrqvx8rvt44r65c7q96xh08","vrfVerificationKeyHash":"4a30b9817ba1af57e8a179ab619d8f49d50b7db1016af16741001dcb730b027d","pledge":{"ada":{"lovelace":9400000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"99/100","rewardAccount":"stake_test1uqr86uc2k2kh7rmveddyjyx4q3nwskc8str3k3y3j3est8qd0hz3t","owners":["067d730ab2ad7f0f6ccb5a4910d50466e85b0782c71b44919473059c"],"relays":[{"type":"ipAddress","ipv4":"14.201.4.90","port":6005},{"type":"ipAddress","ipv4":"14.201.4.90","port":6006},{"type":"ipAddress","ipv4":"139.218.11.14","port":6005}],"metadata":{"url":"https://dpadapools.com/preview2meta.json","hash":"63cfd40cdf080705301829a840accb793d0ad8fa8c42863fcd372b91ae3e1d80"}},"pool1l5u4zh84na80xr56d342d32rsdw62qycwaw97hy9wwsc6axdwla":{"id":"pool1l5u4zh84na80xr56d342d32rsdw62qycwaw97hy9wwsc6axdwla","vrfVerificationKeyHash":"39cf4275b0751ee453aee1737c97466543250ec50932dfa0a109a99c9678752b","pledge":{"ada":{"lovelace":127813888409}},"cost":{"ada":{"lovelace":340000000}},"margin":"1/20","rewardAccount":"stake_test1uzwfmyp6jjyupe3pf3h80k5j0p3pzxzn0gf5544p7qzmhmsat2s3z","owners":["9c9d903a9489c0e6214c6e77da9278621118537a134a56a1f005bbee"],"relays":[{"type":"hostname","hostname":"preview.euskalstakepool.win","port":6001}],"metadata":{"url":"https://git.io/JiZgb","hash":"2e421355eb7b4499dd8f0bca206178131f4c9ad90e2bf369ae78aa0c7c4d9472"}},"pool1leml52hm4fcp3hhe4zye08qz27llhj7d339p3gs0tl85cstx59q":{"id":"pool1leml52hm4fcp3hhe4zye08qz27llhj7d339p3gs0tl85cstx59q","vrfVerificationKeyHash":"9bce3347843eea739fe6978c347f08dd6de43443f1964369c42778b874c42783","pledge":{"ada":{"lovelace":9000000000}},"cost":{"ada":{"lovelace":340000000}},"margin":"3/100","rewardAccount":"stake_test1urpj2lxml8ml6dqv58l3f7skw4389e0vq7s22sl8zgekmmcy97awy","owners":["c3257cdbf9f7fd340ca1ff14fa16756272e5ec07a0a543e712336def"],"relays":[{"type":"hostname","hostname":"previewrelay1.intertreecryptoconsultants.com","port":6000}],"metadata":{"url":"https://tinyurl.com/intrtpreview","hash":"b9e21ae6844cd61c812c3d5aec7dbe6f8099962fe1e952d51f297258ba89879f"}}},"id":"queryLedgerState/stakePools-hfkg8z8vlxlxx1je"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryLedgerState-stakePools-e449fe6e00b4f704f6b9b28c7d42047e.json b/fixtures/test/ogmios/queryLedgerState-stakePools-e449fe6e00b4f704f6b9b28c7d42047e.json deleted file mode 100644 index 0fd254181..000000000 --- a/fixtures/test/ogmios/queryLedgerState-stakePools-e449fe6e00b4f704f6b9b28c7d42047e.json +++ /dev/null @@ -1 +0,0 @@ -{"result":{"pool1qzamfq0qzpggch2rk9daqq8skky7rhvs5g38lchnhw67sve4d36":{"id":"pool1qzamfq0qzpggch2rk9daqq8skky7rhvs5g38lchnhw67sve4d36","vrfVerificationKeyHash":"5746d095a8a960de6ebb1fed6acac883a194645b523d5006692a3ba1481ea70e","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqrty8jrgjn4cywwzds025d64fz39ke2pkjk5rt5nqyrr9gxljplf","owners":["06b21e4344a75c11ce1360f551baaa4512db2a0da56a0d7498083195"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/RSPO5","hash":"9ee2d16fe3a94f0e9ac1fda5b5259ae73612d43ed274504b549e849e863eb992"}},"pool1qrjk9dqdaydy207lw4hf3zlxxg2qlxvxp9kvxx9fscccgwmgfv9":{"id":"pool1qrjk9dqdaydy207lw4hf3zlxxg2qlxvxp9kvxx9fscccgwmgfv9","vrfVerificationKeyHash":"fa730318b97a085aa8722dbb7a2fd59ae35942f880e01c9c8b462d81c84dc4cc","pledge":{"lovelace":9069000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1urdcnx276w4g3h8mgdusutj3wc0uhflgt99ucemgfafd2fqmjjw3u","owners":["db89995ed3aa88dcfb43790e2e51761fcba7e8594bcc67684f52d524"],"relays":[{"type":"ipAddress","ipv4":"194.60.201.143","port":6001}],"metadata":{"url":"https://cardanotech.io/sancho/poolMetaData.json","hash":"ccb6217c050e86cc6128b6c40e9daf5650daeb40225c26abade57c22d68ce7b6"}},"pool1q95luz38nhsw6h7mxud8tptc6mxvnsczhanw4j5htk8h2ltlf3k":{"id":"pool1q95luz38nhsw6h7mxud8tptc6mxvnsczhanw4j5htk8h2ltlf3k","vrfVerificationKeyHash":"00e024fbc63daf0af69eebc5741e7ff183b890ef2628e9bfd4e2bc4d6d1b16b8","pledge":{"lovelace":100000000},"cost":{"lovelace":345000000},"margin":"3/20","rewardAccount":"stake_test1uztsmrxurfw7v3gjz04n8m45kngf4fwhfzxez9wa24rmdxclut9y5","owners":["970d8cdc1a5de6451213eb33eeb4b4d09aa5d7488d9115dd5547b69b"],"relays":[{"type":"ipAddress","ipv4":"83.58.170.227","port":6000}],"metadata":{"url":"https://not.me","hash":"e3568b0190e59d344e0a9803d31ac9fe4ca11c5861b6e3b06527343adbdefae9"}},"pool1qxcz3zxnye8g9ejsqslhl0ljevdx895uc80lr89ulf92gcv40ng":{"id":"pool1qxcz3zxnye8g9ejsqslhl0ljevdx895uc80lr89ulf92gcv40ng","vrfVerificationKeyHash":"e8e9921e6e7428b4a53da8874a843f7cf3ad868cea778f0490dee728273644a5","pledge":{"lovelace":9900000000},"cost":{"lovelace":345000000},"margin":"1/50","rewardAccount":"stake_test1uqm7ecwn9mydtgpnqwcssnc9cq8nsneshs0q9zchq7zrz7gfzcshd","owners":["37ece1d32ec8d5a03303b1084f05c00f384f30bc1e028b1707843179"],"relays":[{"type":"hostname","hostname":"pn1.powerfulpools.com","port":6030}],"metadata":{"url":"https://powerfulpools.com/previewpool1.json","hash":"782694a7c6c9e679f3370bb5aecae8a8988e4c4e37647b2177be59bd0f704ca7"}},"pool1qncwwllw9nwtu7sl7zqw3fpyh4t3q6nhludryfwv0jyqjygd46d":{"id":"pool1qncwwllw9nwtu7sl7zqw3fpyh4t3q6nhludryfwv0jyqjygd46d","vrfVerificationKeyHash":"9b960c725b707c79a4aade62a362be9f35b5b0d7615b8bdd3bfd72a77b0a32a4","pledge":{"lovelace":0},"cost":{"lovelace":345000000},"margin":"1/20","rewardAccount":"stake_test1ur4n0pv3cagnah7atw58qr8an8vm8f75tq5u2q9h925nwasuxt25m","owners":["eb378591c7513edfdd5ba8700cfd99d9b3a7d45829c500b72aa93776"],"relays":[{"type":"hostname","hostname":"beadapool.ddns.net","port":6001}],"metadata":{"url":"https://beadapool.com/media/poolMetaDatapreview.json","hash":"c760f6e23539c052bff72bbc0d921a0663a0fea445b401871d5f65eb3debfc55"}},"pool1q65ag8panwayzaqfs6je7jz2ywt8x2032yaunq5hf25t7t8c26e":{"id":"pool1q65ag8panwayzaqfs6je7jz2ywt8x2032yaunq5hf25t7t8c26e","vrfVerificationKeyHash":"240b5246bc511fa4d7873d91a627aae4e74a60ecfd1165309774a0a7b1dab952","pledge":{"lovelace":42000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzhzr9qzlcr98rhuek3t623e008rye68grawtx6gc5v7g7q2j5u2z","owners":["ae219402fe06538efccda2bd2a397bce32674740fae59b48c519e478"],"relays":[{"type":"hostname","hostname":"test.smaug.pool.pm","port":3003}],"metadata":{"url":"https://smaug.pool.pm/meta-testnet-6adaf6af.json","hash":"6adaf6af9346cc941c916534118b48bdc0e0d560164333d7ab79b113421f2b3b"}},"pool1qal80uhlj949mgv0ecvdkmgqjdn5q27wmpaj4crnr5e9v6qmsv7":{"id":"pool1qal80uhlj949mgv0ecvdkmgqjdn5q27wmpaj4crnr5e9v6qmsv7","vrfVerificationKeyHash":"d498ef12879315f2b3b9bf3d944a42ae4062203db8ebc78236d63f3697f1804c","pledge":{"lovelace":420000000},"cost":{"lovelace":420000000},"margin":"69/1000","rewardAccount":"stake_test1uzpafaxd4q5p7adccdefpnv69dkwlpm7dpkpm3yefxzeluc4z24ec","owners":["83d4f4cda8281f75b8c37290cd9a2b6cef877e686c1dc49949859ff3"],"relays":[{"type":"hostname","hostname":"preview.world.bbhmm.net","port":6200}],"metadata":{"url":"https://pool.bbhmm.net/poolmeta-preview.json","hash":"885cbb02d004f75fad5716c878a6074a9c1bd62b3003d1896b1d27831d67239a"}},"pool1p9xu88dzmpp5l8wmjd6f5xfs9z89mky6up86ty2wz4aavmm8f3m":{"id":"pool1p9xu88dzmpp5l8wmjd6f5xfs9z89mky6up86ty2wz4aavmm8f3m","vrfVerificationKeyHash":"2dd02fc85a8ded714d3d56a684f85d741cef553756d760c8c4d5ae325ab6a1a1","pledge":{"lovelace":1111000000},"cost":{"lovelace":170000000},"margin":"1/100","rewardAccount":"stake_test1uzsf4dc8l9r2uxgwk7vpladqf09vvduw43z6cd0p96ru0gcpg49cx","owners":["a09ab707f946ae190eb7981ff5a04bcac6378eac45ac35e12e87c7a3"],"relays":[{"type":"hostname","hostname":"relay-m.fluxpool.cc","port":5001}],"metadata":{"url":"https://cylonyx.github.io/testnet.json","hash":"99e451a46f89b17502196457698bde37d604fe74ef19a8c0cb8518da72b1ecf1"}},"pool1p835jxsj8py5n34lrgk6fvpgpxxvh585qm8dzvp7ups37vdet5a":{"id":"pool1p835jxsj8py5n34lrgk6fvpgpxxvh585qm8dzvp7ups37vdet5a","vrfVerificationKeyHash":"e67d6ccc4b3b0ca3e61ad09ccf2094b4fbf4eee929e8995c52fa0f32a43a707c","pledge":{"lovelace":100000000000},"cost":{"lovelace":170000000},"margin":"0/1","rewardAccount":"stake_test1upn7ehn9g6e9cqp7jcmuv5a79avzxavxe6g6fmfwttsm6lqa9kp7c","owners":["67ecde6546b25c003e9637c653be2f58237586ce91a4ed2e5ae1bd7c"],"relays":[{"type":"hostname","hostname":"firewall.adamantium.online","port":3000}],"metadata":{"url":"https://testforge.adamantium.online/otg-preview.metadata.json","hash":"5f9824434e7fc57a08ab0fe9d7f09ed59f2601ec138af8be0a3c89305aa2dc9c"}},"pool1pf95k36qu4u4c6psd8qwclnzj9cqmxd32q0305dz4fcxg3wyuu5":{"id":"pool1pf95k36qu4u4c6psd8qwclnzj9cqmxd32q0305dz4fcxg3wyuu5","vrfVerificationKeyHash":"666efbd46910b4a0472219a7e9a198c5b07437329a47a89a9d85ca3b6da806f4","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqedemevyevg5esgdpdpc9awlepc49nhqln75clf5n4n6tsxqzcvz","owners":["32dcef2c26588a6608685a1c17aefe438a967707e7ea63e9a4eb3d2e"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/CD1","hash":"167b65b63ca316b3d6968ccd60ab59ef18202b7218dd2447170218d0f3c40b77"}},"pool1pt39c4va0aljcgn4jqru0jhtws9q5wj8u0xnajtkgk9g7lxlk2t":{"id":"pool1pt39c4va0aljcgn4jqru0jhtws9q5wj8u0xnajtkgk9g7lxlk2t","vrfVerificationKeyHash":"d9f1792aeb20bf814c367e6b3dd5e2c3f4c7f91f45247da2d0de451a2a2c1f85","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzftx5dwygs4k88svkh4gp6hz4l628ydvskx5yzff55wlmskas3cr","owners":["92b351ae22215b1cf065af540757157fa51c8d642c6a10494d28efee"],"relays":[{"type":"hostname","hostname":"preview.bladepool.com","port":3001}],"metadata":{"url":"https://public.bladepool.com/metadata.json","hash":"2738e2233800ab7f82bd2212a9a55f52d4851f9147f161684c63e6655bedb562"}},"pool1pw345epmct6cuummleuu5hc7qq2h96zawvf0e9062uw7gnjz9ej":{"id":"pool1pw345epmct6cuummleuu5hc7qq2h96zawvf0e9062uw7gnjz9ej","vrfVerificationKeyHash":"420f04838a553e3e959b9b402e36bdd8123888b5f22126491294238150ba385a","pledge":{"lovelace":1000000000},"cost":{"lovelace":345000000},"margin":"3/4","rewardAccount":"stake_test1urmpvvedk8cjnzxp0g89u87ghenhdkyrwn7vl2qg9aly99cp6ypdy","owners":["f616332db1f12988c17a0e5e1fc8be6776d88374fccfa8082f7e4297"],"relays":[{"type":"ipAddress","ipv4":"73.70.8.87","port":6000}],"metadata":{"url":"https://tinyurl.com/yy69a8eh","hash":"52977d65de765d1ec235c59676d4fea81046dc6ef561ab2790d4c359d8611b1d"}},"pool1pn9sffcqqzkx70m0gujks4h3wf8p4y706t2f0cjcyreekg83wtf":{"id":"pool1pn9sffcqqzkx70m0gujks4h3wf8p4y706t2f0cjcyreekg83wtf","vrfVerificationKeyHash":"3cfeffec7d5b5dbbc4f0494271fad41952fdb82937189fb3f2581d9de3fad81b","pledge":{"lovelace":400000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1up8dnh6ywzs96upw6ycmeafzmkvrv096njjkphgqzuts0wgnxsaqg","owners":["4ed9df4470a05d702ed131bcf522dd98363cba9ca560dd00171707b9"],"relays":[{"type":"hostname","hostname":"preview-r1.panl.org","port":3015}],"metadata":{"url":"https://preview-metadata.panl.org","hash":"a2d8a47fc4d3a6e707487b65b3ab790e6fff71c2afd72f0fe17bc5e523024019"}},"pool1p4kh4yt0vwh6yexf9ae36qfwnch7vqa7l77akh94pv4u6rq7tuk":{"id":"pool1p4kh4yt0vwh6yexf9ae36qfwnch7vqa7l77akh94pv4u6rq7tuk","vrfVerificationKeyHash":"c3e92038b50de0e70bd3066f83c067e1726f126a6cc4c9044f3c87582194bee6","pledge":{"lovelace":1000000},"cost":{"lovelace":568800000},"margin":"1/1","rewardAccount":"stake_test1urull23za5j968nez2952k0fpdzk49raz5qvadyer7d8fxqtpzyfh","owners":["f9ffaa22ed245d1e79128b4559e90b456a947d1500ceb4991f9a7498"],"relays":[{"type":"ipAddress","ipv4":"142.132.218.54","port":6001}],"metadata":{"url":"http://gmbh.roastfrog.com","hash":"62ba8350ad0da97a45cb5cf4940204c702bb5a89c81dff3eab95e35a9657b775"}},"pool1phj3kpraf3vgn0zzlugpts8k6eps8d3fgp9ddceu4s43cq00nzr":{"id":"pool1phj3kpraf3vgn0zzlugpts8k6eps8d3fgp9ddceu4s43cq00nzr","vrfVerificationKeyHash":"d4d04f919daf4e89a556f5555a2a68ba89ccf03f022ee77954b1bf1c37a7c8ff","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1up046thgsc2fg0wcwfzvmpmy6r6c0psanu9wyxg8vcknt9sumrgc7","owners":["5f5d2ee88614943dd87244cd8764d0f587861d9f0ae21907662d3596"],"relays":[{"type":"hostname","hostname":"https://aggregator.dev-preview.api.mithril.network/"}],"metadata":{"url":"https://mithril.network/tbd.json","hash":"5e96bfc37d05582545c91727d73e11a26fa0ebcd4e482a9714d02ab96e83ed19"}},"pool1perfzsuh2l59jd5jzqs0a2774uqmelymuflw9nm3q4lmslpmk92":{"id":"pool1perfzsuh2l59jd5jzqs0a2774uqmelymuflw9nm3q4lmslpmk92","vrfVerificationKeyHash":"2661c5f0a335170cc2342c8dc322c5b47f8e2611df6bcc4d5192adb79cc20257","pledge":{"lovelace":500000000},"cost":{"lovelace":500000000},"margin":"1/20","rewardAccount":"stake_test1uruhhewtul8tkg88vdp4l84ds5t5j4s8tlrdjafr4crh7xckcrc2x","owners":["f97be5cbe7cebb20e763435f9ead85174956075fc6d97523ae077f1b"],"relays":[{"type":"ipAddress","ipv4":"3.72.231.105","port":30002}],"metadata":{"url":"https://cardanofiles.blob.core.windows.net/test/poolMdata.json","hash":"3b29e608eed25bb13c9d0950599634ed6d4f498ec4a748322dff5e5cca5deddb"}},"pool1p79majfcn554nkl88auu5njmprfsx9jdkv29rtltkn44y2h04qy":{"id":"pool1p79majfcn554nkl88auu5njmprfsx9jdkv29rtltkn44y2h04qy","vrfVerificationKeyHash":"b6168f2e63d95d18756328cf2ea0f869c7f227e50e13f55228cf3854dea16475","pledge":{"lovelace":2000000000000},"cost":{"lovelace":170000000},"margin":"99/100","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/c856b8c5-0f0a-42db-8a78-59a.json","hash":"8de3639f2d956664dd0d58903461853572e01355895cbc5932e42e22b0c1b960"}},"pool1p73yrd7vzwkkjd2rff4g683smhlm3jkg45f2hwm79cke6uxxwq9":{"id":"pool1p73yrd7vzwkkjd2rff4g683smhlm3jkg45f2hwm79cke6uxxwq9","vrfVerificationKeyHash":"92a482dd75c257122c3eb24de9b2f3b029319aa4e1ca0ac1125f62a912ce8c9d","pledge":{"lovelace":100000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1urnuwkjxcf0erfm53fx9tnkvs6ye0shcwk3lt0wzzy500tcu0xf8f","owners":["e7c75a46c25f91a7748a4c55cecc868997c2f875a3f5bdc21128f7af"],"relays":[{"type":"ipAddress","ipv6":"2a01:e0a:3d1:770:216:3eff:feb6:d700","port":6000}],"metadata":{"url":"https://api.monrma.fr/meta/JOSEP.json","hash":"6c133a6ba49006eee1fdd1525662d64de10f4a54566e715246525b3b386f0c02"}},"pool1zpsskvu5q00lpezkj53xm7a5y9wv0jqt5j0xsvn42jdx2gajwr6":{"id":"pool1zpsskvu5q00lpezkj53xm7a5y9wv0jqt5j0xsvn42jdx2gajwr6","vrfVerificationKeyHash":"7827b526f0599b169c664b0dd8733a38a702d6d9e868e689cd8404e110a96dcb","pledge":{"lovelace":10000000000},"cost":{"lovelace":170000000},"margin":"0/1","rewardAccount":"stake_test1url5r2tsk5j9sd49exdale4da6vd2ucn44hcqeygqcfdyyc84hjr3","owners":["ff41a970b5245836a5c99bdfe6adee98d57313ad6f8064880612d213"],"relays":[{"type":"ipAddress","ipv4":"90.251.253.249","port":3000}],"metadata":{"url":"https://raw.githubusercontent.com/OYSTERPOOL/GIT/main/prev.json","hash":"cd19e8c622a0c35e0384caeeced99552fe989a6ee8bd98018b8236328663132d"}},"pool1zyvx690fps6a9m3m89q6fwcfgd8jyupzgv8wrfpvd0fm5cyzxd0":{"id":"pool1zyvx690fps6a9m3m89q6fwcfgd8jyupzgv8wrfpvd0fm5cyzxd0","vrfVerificationKeyHash":"e0c09cfd7e6b1766efe46f4297d5ada1a5f8b006c1ed72535e16c6fd2f384174","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"3/100","rewardAccount":"stake_test1uzzx65ylw8yrkeusmfwa6exesgpzlw74630cxusgq3jn9jqrgsrjc","owners":["846d509f71c83b6790da5ddd64d982022fbbd5d45f837208046532c8"],"relays":[{"type":"ipAddress","ipv4":"129.152.11.126","port":3002}],"metadata":{"url":"https://raw.githubusercontent.com/stefanosu-code/stpz/a/s2.j","hash":"0bf71440af0a351555045ae2a59e65c8661748a2781476f9bd560871afb2069f"}},"pool1z2dpsu58adkxtet672s6c46szylvcxs7vk9evq6clj49jcm6s4f":{"id":"pool1z2dpsu58adkxtet672s6c46szylvcxs7vk9evq6clj49jcm6s4f","vrfVerificationKeyHash":"cf027ebfbfec5c3f964b05341519180003e2ed092829a402f775efec666d78e1","pledge":{"lovelace":0},"cost":{"lovelace":456789123000000},"margin":"1/10000000","rewardAccount":"stake_test1uzcyml6eacaevjnana8a5pxe3m6rmcateqepztxr0g6azwq30tk38","owners":["b04dff59ee3b964a7d9f4fda04d98ef43de3abc832112cc37a35d138"],"relays":[{"type":"ipAddress","ipv4":"5.161.75.212","port":5003},{"type":"ipAddress","ipv4":"100.100.100.100","port":100},{"type":"ipAddress","ipv4":"200.200.200.200","port":200}],"metadata":{"url":"https://digitalfortress.online/digi7.json","hash":"0dd9984a4a83fd1e15a182fa318787acfea2d9e26fd416bc71f939367a0dc625"}},"pool1zt3l0pv74ms3j0uspstj3k26ndq93ej37djcw86gkk487pgpthh":{"id":"pool1zt3l0pv74ms3j0uspstj3k26ndq93ej37djcw86gkk487pgpthh","vrfVerificationKeyHash":"17842dce450acb74a96644b90ad38f7713f57f06526b620a4de322506fb67e6e","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uq8slx8ar3a6srktfrwjrqfsj9qgcapd7rn9xxd4z6dssyg4a57zg","owners":["0f0f98fd1c7ba80ecb48dd21813091408c742df0e65319b5169b0811"],"relays":[{"type":"hostname","hostname":"testrl2.duckdns.org","port":6000},{"type":"hostname","hostname":"bbotest.duckdns.org","port":3000}],"metadata":{"url":"https://ada-bamboo.com/testccb.json","hash":"bd75a5e72fe17426f170ac3a3ec1a82b151ddca9ce2f2ad49e0187edcf736c4a"}},"pool1z737pypn7xgvmnwazy6s7z2a8ts37xnpcetnzdn82qth5w6n8sf":{"id":"pool1z737pypn7xgvmnwazy6s7z2a8ts37xnpcetnzdn82qth5w6n8sf","vrfVerificationKeyHash":"4eb3784dc978391209b63132e32cdbd180cdb4eb5a08e2d38551d907907dea51","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uq4r9wzkug92c2pfhl6l60rpnvtqyklncdezr4p7p668rpgnjtsyx","owners":["2a32b856e20aac2829bff5fd3c619b16025bf3c37221d43e0eb47185"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSNA","hash":"f801fa03129fb7fc2dc8478c2fc7fbe5a7711be676ca6fb7f6660b09477ea0a1"}},"pool1rzgvf9rytug9p3hz6a9q8zeu3mp6trl70qdyw0g9c7ywzy984yr":{"id":"pool1rzgvf9rytug9p3hz6a9q8zeu3mp6trl70qdyw0g9c7ywzy984yr","vrfVerificationKeyHash":"0e0c0f257842b44b19dda1a20d8e406401f7696725f1c00a5b2768a4c684a089","pledge":{"lovelace":70000000000},"cost":{"lovelace":345000000},"margin":"3/25","rewardAccount":"stake_test1upxxj9un9j6xyaxkxnw0n2hajye3ux6qxn53ex7g4xwdh2cq3xsrd","owners":["4c6917932cb46274d634dcf9aafd91331e1b4034e91c9bc8a99cdbab"],"relays":[{"type":"hostname","hostname":"adarelay-t2-1.nanyka.com","port":1856}],"metadata":{"url":"https://nanyka.com/cardanospo/poolmeta_preview.json","hash":"a14630b7010397fc9bf309f59618b613698851bc1ac5772fd43717405b426bf5"}},"pool1r8t2047f3hj4c070rjns323s5dgyzyrxd2a06v6hkuh7zx7cqp7":{"id":"pool1r8t2047f3hj4c070rjns323s5dgyzyrxd2a06v6hkuh7zx7cqp7","vrfVerificationKeyHash":"f3a05875600f9960501f6b4e3a65b345b018da7a4b11ab2cd61638c08c2370d6","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/40","rewardAccount":"stake_test1urdxvfs090s0wysk9v5fsy70caswrfksjw0j4nzv5xh7ffq06zrw8","owners":["da66260f2be0f712162b289813cfc760e1a6d0939f2acc4ca1afe4a4"],"relays":[{"type":"hostname","hostname":"pv-relays.digitalfortress.online","port":8001}],"metadata":{"url":"https://digitalfortress.online/digi-pv.json","hash":"e42ed99f0b9752054081f0176b33b548bdc3db13558389fef7e0455e990edad8"}},"pool1rf0xxt0xpq0vwyq5jeqn8t9wags7k0mq8vlt0dygkc7rvc85uhn":{"id":"pool1rf0xxt0xpq0vwyq5jeqn8t9wags7k0mq8vlt0dygkc7rvc85uhn","vrfVerificationKeyHash":"41dbf753c8cb0c835d3719de7490a64921a66ad81d598981012a2cf2c1f762f8","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uzvex98c4tw539cel9rj9u7axrxqvpat3r769tlgrw33t3gjxq666","owners":["999314f8aadd489719f94722f3dd30cc0607ab88fda2afe81ba315c5"],"relays":[{"type":"ipAddress","ipv4":"130.162.169.5","port":6000},{"type":"ipAddress","ipv4":"161.0.154.231","port":6000}],"metadata":{"url":"https://tinyurl.com/3kv77zvd","hash":"52daa526fd9d0b35e57ca376d617d0f99068c5f98afd13745f969cc79ef5928f"}},"pool1rwwmnhgsnyzhzpg89lgq4k6uc38qadsdnet9l2xgv34hsjxzj2d":{"id":"pool1rwwmnhgsnyzhzpg89lgq4k6uc38qadsdnet9l2xgv34hsjxzj2d","vrfVerificationKeyHash":"a4057bb1feefee1f968888a3596a6ff463b443ef9d9919398c1b4dbe9a493597","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"99/100","rewardAccount":"stake_test1urarrlsypaptr9lrx8c65qr5qjfd4a6j893caw33mwpxsjgqfxdem","owners":["fa31fe040f42b197e331f1aa00740492daf75239638eba31db826849"],"relays":[{"type":"hostname","hostname":"spec1-staging.spirestaking2.com","port":3005}],"metadata":{"url":"https://data.spireblockchain.com/ADA-PREVIEW/SPF/pool_0.json","hash":"e11362ceaa7817a979a1f703268a0d63a9e65d48e35e5879e4a7e693f47253ed"}},"pool1r0tln8nct3mpyvehgy6uu3cdlmjnmtr2fxjcqnfl6v0qg0we42e":{"id":"pool1r0tln8nct3mpyvehgy6uu3cdlmjnmtr2fxjcqnfl6v0qg0we42e","vrfVerificationKeyHash":"0bf04a518f6e9a49fbc3ca8b98bec244874fa9939427156ec2af28fa2bfdab11","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uraat6a6egphv996jz7ncmzncp8689fzum4up72c8xfaf4s04shmw","owners":["fbd5ebbaca037614ba90bd3c6c53c04fa39522e6ebc0f9583993d4d6"],"relays":[{"type":"hostname","hostname":"mithril-signer-2.testing-preview.api.mithril.network","port":9092}],"metadata":{"url":"https://tinyurl.com/2nx2ty2d","hash":"8cc5e635ed38182d9c4680129dc8815f7c2af1d0d7c34e36781139a26a47d650"}},"pool1r5mj0h2e5s2kpe0pckesz0x4g8rhr9e5fzr6k598ckjjun5snvk":{"id":"pool1r5mj0h2e5s2kpe0pckesz0x4g8rhr9e5fzr6k598ckjjun5snvk","vrfVerificationKeyHash":"9406b0490a7683eb52c139db3ff4ed3c8f48e6e3c786b9dc12c1fd2639e74ae8","pledge":{"lovelace":5},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uzp8gpkuaz50mqexhfs6tpzqxlznhgdl9ev9q7pv9e9d8dcmva7p6","owners":["827406dce8a8fd8326ba61a5844037c53ba1bf2e5850782c2e4ad3b7","8e901a894907f529925330e4dbb4070e8ee6c45d5a0e85f4102444aa"],"relays":[]},"pool1rk2y9gx6vll8lawzdqlky5p2a3ypzsxg07arg8gmhkjj2905035":{"id":"pool1rk2y9gx6vll8lawzdqlky5p2a3ypzsxg07arg8gmhkjj2905035","vrfVerificationKeyHash":"a86606621866917a797374a33b0dbb73afdb27b82abfe1facdf99f527cc7b434","pledge":{"lovelace":100000000000},"cost":{"lovelace":340000000},"margin":"3/20","rewardAccount":"stake_test1uz6yw4xj9lfkv8dweq3m64vwnmm8c3hpleufjzqf866ar8qjxc6cs","owners":["b44754d22fd3661daec823bd558e9ef67c46e1fe789908093eb5d19c"],"relays":[{"type":"hostname","hostname":"sully.crabdance.com","port":6004}],"metadata":{"url":"tinyurl.com/4uszu5zt","hash":"62710fed07d182806c647d4a2034eccb14035e57f9bb4899aff9ec1c461ee4ae"}},"pool1rutq574pcq30mn9xuytgpqyvn69zq2dnycp2fhnw0hsuyqpnh99":{"id":"pool1rutq574pcq30mn9xuytgpqyvn69zq2dnycp2fhnw0hsuyqpnh99","vrfVerificationKeyHash":"11351c5c5dfe74a8adb76e47b1590ab9e0251915548447db027806fe0d64fd64","pledge":{"lovelace":2000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uz79lrtfw5w9z6pl2047nn7mxtqvzv9x0senqg6g3upwgeqq9zjj6","owners":["bc5f8d69751c51683f53ebe9cfdb32c0c130a67c333023488f02e464"],"relays":[{"type":"hostname","hostname":"preview-node.world.dev.cardano.org"}],"metadata":{"url":"https://git.io/JJWdJ","hash":"bf3eeabce96f495924dc15000ca067699f38fca78ea36e6d69328dc9c88a5e84"}},"pool1r7snhee0af6cykx7vt7ajkdn0cgym9pucpl94m3l9thnw74ggg6":{"id":"pool1r7snhee0af6cykx7vt7ajkdn0cgym9pucpl94m3l9thnw74ggg6","vrfVerificationKeyHash":"7a785758a863bbad51e9fabdeba75009acbe05236f416dacb327c78a5c15a638","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uq578ry6j5t3ud23e4q8grrhfygm0cf6200rwpquts203zs62922g","owners":["29e38c9a95171e3551cd40740c774911b7e13a53de37041c5c14f88a"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/LXSP0","hash":"62acb9589309a17b39d1fa6115541f0fad74d89c07072a835e11fcce93d5d23c"}},"pool1yq5q3unkyr764243l4v3gca6m42jlg04df9k7f5hv00lsjhyj4d":{"id":"pool1yq5q3unkyr764243l4v3gca6m42jlg04df9k7f5hv00lsjhyj4d","vrfVerificationKeyHash":"d6d05e32b4c2eb2e62cb5659d118061473360c2db23a213c377edb2ead2cf591","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1urty9s8ufz8kydh8wfz6k9cqsj4v2q2k5wdu8wtetvlz4fs7adk6p","owners":["d642c0fc488f6236e77245ab170084aac50156a39bc3b9795b3e2aa6"],"relays":[{"type":"hostname","hostname":"pool.sudosu.cyou","port":30443},{"type":"hostname","hostname":"pool.sudosu.cyou","port":30444}],"metadata":{"url":"https://ado-pool.web.app/poolMetadata.json","hash":"aeaaf5c46c1466f65ff731fc3cc82f006acfd0aaedb4d4f6ff665f04224a1bd1"}},"pool1yphncqvpc4n49c4ya3mys7uwpwa25892r70gzkpqglenv093qge":{"id":"pool1yphncqvpc4n49c4ya3mys7uwpwa25892r70gzkpqglenv093qge","vrfVerificationKeyHash":"83602a44cf3b951a3ef83a4d868852ccfa50cc841e93212b302a67c8d1cd9144","pledge":{"lovelace":175000000000},"cost":{"lovelace":345000000},"margin":"1/50","rewardAccount":"stake_test1urt0mxys755epyacjdacm4e0wyyr7kd603tzxrqzstj7auc5l9456","owners":["d6fd9890f5299093b8937b8dd72f71083f59ba7c56230c0282e5eef3"],"relays":[{"type":"hostname","hostname":"129.213.55.211","port":6000}],"metadata":{"url":"https://cardano-blockhouse.de/preview/poolMetaData.json","hash":"b570b17ca6e0b44783f4a18654f14b472460f0f553e2cc29eaa25a7a2f874f09"}},"pool1ywazc6h66tamsfxpfncfhhj282y0j420sze45x3s5qdvkaxssse":{"id":"pool1ywazc6h66tamsfxpfncfhhj282y0j420sze45x3s5qdvkaxssse","vrfVerificationKeyHash":"ad310b61f0ae967eccfcc0557661f421389c9bef3cbef6dc22bf877c7f08f9ea","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1urjxc8q208jfclu9me2zn36luj70d8qsmrgemcga37vr2hg76ymtw","owners":["e46c1c0a79e49c7f85de5429c75fe4bcf69c10d8d19de11d8f98355d"],"relays":[{"type":"hostname","hostname":"relays.planetstake.com","port":30002}],"metadata":{"url":"https://planetstake.s3.eu-west-2.amazonaws.com/STAKEPreview.json","hash":"87fa8b931cb4641c75039d7b3314e9b0d0efc5d0c496d01a67863e7d25453fac"}},"pool1y0uxkqyplyx6ld25e976t0s35va3ysqcscatwvy2sd2cwcareq7":{"id":"pool1y0uxkqyplyx6ld25e976t0s35va3ysqcscatwvy2sd2cwcareq7","vrfVerificationKeyHash":"b2ff1c4e1aee2de9b5212f4d964b6acb09c67e54a9e2aaefdebda42e08125cc6","pledge":{"lovelace":400000000000},"cost":{"lovelace":340000000},"margin":"99/100","rewardAccount":"stake_test1urfvlns8kzw5rl08uns7g35atul8k43unpcyd8we8juwuhclq5pxz","owners":["d2cfce07b09d41fde7e4e1e4469d5f3e7b563c9870469dd93cb8ee5f"],"relays":[{"type":"hostname","hostname":"adaboy-preview-1c.gleeze.com","port":5000},{"type":"hostname","hostname":"adaboy-preview-2c.gleeze.com","port":5000}],"metadata":{"url":"https://tinyurl.com/39a7pnv5","hash":"643a016d84fb171855f8b6d9c9a5efa230fb4665de3ee0ee0a1ed0f486d26be2"}},"pool1ynfnjspgckgxjf2zeye8s33jz3e3ndk9pcwp0qzaupzvvd8ukwt":{"id":"pool1ynfnjspgckgxjf2zeye8s33jz3e3ndk9pcwp0qzaupzvvd8ukwt","vrfVerificationKeyHash":"dbdd412069ed405b8efe1f30d4e7a8ea551a8cbfc949b1a462936e0b55ec632a","pledge":{"lovelace":3000000000000},"cost":{"lovelace":170000000},"margin":"0/1","rewardAccount":"stake_test1urn5vcltkemnl8nnx3xt4ucsej3v45y0r5s4xgkl9v24jpsxs8v3h","owners":["e74663ebb6773f9e73344cbaf310cca2cad08f1d215322df2b155906"],"relays":[{"type":"hostname","hostname":"node1.cardano.gratis","port":6501},{"type":"hostname","hostname":"node2.cardano.gratis","port":6502}],"metadata":{"url":"https://cardano.gratis/poolMetaDataPreView.json","hash":"8bcb8efe6973b8b6bd0918cd356735ff3ce0ca41276fac6fb4b50b900fbcebce"}},"pool1yu60zjc6ykj22ns69e8w5me469r4k4805706vz2mvrnz5qvvfz7":{"id":"pool1yu60zjc6ykj22ns69e8w5me469r4k4805706vz2mvrnz5qvvfz7","vrfVerificationKeyHash":"e84a8a24359b57aec037671ec8597f73ca6d231f06174e7b58c1536ad0f28c9e","pledge":{"lovelace":1000},"cost":{"lovelace":500000000},"margin":"1/1000","rewardAccount":"stake_test1uzp3y24gpe5zjw0nzsc04tteyuhr6yxqpcvl4cg9x6227gcr4s4cs","owners":["83122aa80e682939f31430faad79272e3d10c00e19fae1053694af23"],"relays":[]},"pool19p0rndwuhsyzwjt3v3s946yrq3je8usgcqwn32xjfkd52f3znjf":{"id":"pool19p0rndwuhsyzwjt3v3s946yrq3je8usgcqwn32xjfkd52f3znjf","vrfVerificationKeyHash":"18a7b9fa81478d76b1797a5935f1ba4564c06390ecffb208a02283993f179ceb","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1up829zqr979f4svv7daykuk000nwmvtkas8qpy8rld4t7wqyu059y","owners":["4ea288032f8a9ac18cf37a4b72cf7be6edb176ec0e0090e3fb6abf38"],"relays":[{"type":"hostname","hostname":"mithril-signer-1.dev-preview.api.mithril.network","port":9091}],"metadata":{"url":"https://tinyurl.com/2xn8c23m","hash":"d907a12c9750aa8536fe24bf2e904cef6acc9801d952e851b76530e743244491"}},"pool19zfyfkrfueu8gtqm8mq72fts7z5pte54v0upej5kh905v7q3xya":{"id":"pool19zfyfkrfueu8gtqm8mq72fts7z5pte54v0upej5kh905v7q3xya","vrfVerificationKeyHash":"444a5509caf8074e6bb5f387b93c802837410f45efb4867f22a0e4e4d1fc9866","pledge":{"lovelace":1200000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uqc9rnvul66ud5azgn95678uy5aj8y2cfy734m3caxlyrjc204n8m","owners":["3051cd9cfeb5c6d3a244cb4d78fc253b239158493d1aee38e9be41cb"],"relays":[{"type":"ipAddress","ipv4":"82.208.22.91","port":6003}],"metadata":{"url":"https://www.cardanolink.net/metadata.json","hash":"9e52ad6d3397ef0e196752f5b6c783d159e6e11b012fc426ed10e5e99b44a8af"}},"pool19x5z6h63kq9tvwt9yz8emdf3fry06pnm6lu8lcuqpf9dunqwng8":{"id":"pool19x5z6h63kq9tvwt9yz8emdf3fry06pnm6lu8lcuqpf9dunqwng8","vrfVerificationKeyHash":"8a97230d41bc99a952bbad1382a384fad365521e3e222a1baf227998f6c5fbdd","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uz488lprpyycw8h6jelrudnuw9syv55judndgdqyrmwnl0qnx56dn","owners":["aa73fc230909871efa967e3e367c7160465292e366d434041edd3fbc"],"relays":[{"type":"hostname","hostname":"preview.ada.chicando.net","port":3002}],"metadata":{"url":"https://chicando.net/resources/metadata/ccdo.json","hash":"c2d117b0ee365a4717ae5e1c1659f5246db80a4cc12f1fc437eab19076b8c09b"}},"pool198jfkrkjf5nk9jxs2nwqh0dpswnw7f8vgea7k07dup5wyr0dtwc":{"id":"pool198jfkrkjf5nk9jxs2nwqh0dpswnw7f8vgea7k07dup5wyr0dtwc","vrfVerificationKeyHash":"002345b996b612fbe645a9e51f0bad41c19570417c92dd16f00785619c3b9691","pledge":{"lovelace":100000000},"cost":{"lovelace":345000000},"margin":"17/100","rewardAccount":"stake_test1urx0wzfjh55njew498usze4jaqu3sjaugu8gdjnxm3faj7cmwkhjg","owners":["ccf70932bd293965d529f90166b2e839184bbc470e86ca66dc53d97b"],"relays":[{"type":"ipAddress","ipv4":"73.222.0.99","port":6000}],"metadata":{"url":"https://tinyurl.com/4w5yp728","hash":"af5d091d79115e56fa7b6d0a5d39fe9901141d93a1beed06003b3b44f75b12b1"}},"pool19ta77tu28f3y7m6yjgnqlcs98ak6a0vvtlcn7mc52azpwr4l2xt":{"id":"pool19ta77tu28f3y7m6yjgnqlcs98ak6a0vvtlcn7mc52azpwr4l2xt","vrfVerificationKeyHash":"b06775ea69068784c2735f6211c537ffd5fa50aa3e3e2a798eea1f3b0e4ec98c","pledge":{"lovelace":1000000000000},"cost":{"lovelace":500000000},"margin":"1/1","rewardAccount":"stake_test1ur9l0p6pr3ctkjaewnwawuykwma9skxjhx9nrdafndhs7jsa0vjgx","owners":["db266813b8285a41aaf806024aa16f4c5a3592e1b012460435224de3"],"relays":[{"type":"hostname","hostname":"preview-node.play.dev.cardano.org","port":3001}]},"pool19wrj23gqupswxefaks40xncv69ca83mqck2e9gxwncza6vl8h47":{"id":"pool19wrj23gqupswxefaks40xncv69ca83mqck2e9gxwncza6vl8h47","vrfVerificationKeyHash":"48de9f061019deaba5729b48be6db15e7169a18574c995cbb27d5b89f243ab9f","pledge":{"lovelace":3000000000},"cost":{"lovelace":170000000},"margin":"1/50","rewardAccount":"stake_test1uz2r2kjj8ulkp2l9l8474pfe800ad77yl2p2ksqg6keza9c8azv2g","owners":["94355a523f3f60abe5f9ebea85393bdfd6fbc4fa82ab4008d5b22e97"],"relays":[{"type":"ipAddress","ipv4":"78.131.56.145","port":7362}],"metadata":{"url":"https://tinyurl.com/2s3jx2rs","hash":"502b700e1c714a9e51534f1f61731a1ae1ec251199bdeb0d7d7fa65fa53b4626"}},"pool190ce9qhpzwzveasvngas7kmwqrn54mfvhk9unqmuesykvtadu8l":{"id":"pool190ce9qhpzwzveasvngas7kmwqrn54mfvhk9unqmuesykvtadu8l","vrfVerificationKeyHash":"ecaaf8a89ead238b71ae9054487c229c1c6bc327062c5211dea2ae78c7cb0280","pledge":{"lovelace":1000000},"cost":{"lovelace":805000000},"margin":"1/100","rewardAccount":"stake_test1uz5qfpx4786s0n847grlqcfrg5ja2g980jtnkfal2jxnaccg69qk0","owners":["a80484d5f1f507ccf5f207f061234525d520a77c973b27bf548d3ee3","c9dc49a676087ba0fb1ab1f28b209e647b4139626d732455bb7d5582","f4cceaa5fff7b592e39519942ea8c3b823f3fee622bb3c81a5f5150f"],"relays":[{"type":"hostname","hostname":"us.netspectrum.com","port":13001}],"metadata":{"url":"http://us.netspectrum.com:13002/pool-meta-data.json","hash":"e9a969b627f3cac9581322dab1f352533d63264fcdbb9e46c11bbd25b8b1c5e3"}},"pool19cmwzwk4vetgtutrunar6vkv7z3n8ldq5e7f8javn8m6ynvhuzv":{"id":"pool19cmwzwk4vetgtutrunar6vkv7z3n8ldq5e7f8javn8m6ynvhuzv","vrfVerificationKeyHash":"61e5b9672e64e846c49cbf305ed1ae7de084c6c5b9b2c202589068337d275295","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqag28j8d0qahxj3q85mzfgzr7k2duckp46t76ju8snrqug9eknpj","owners":["3a851e476bc1db9a5101e9b125021faca6f3160d74bf6a5c3c263071"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSND","hash":"9b41da403200a656749255f4575016eaac46b803656bc96616c89dad89728364"}},"pool1xqycqt2kz6ps4r2ggk0jqsln0st5xtw9xgep4xlg2uxgvq6w6h7":{"id":"pool1xqycqt2kz6ps4r2ggk0jqsln0st5xtw9xgep4xlg2uxgvq6w6h7","vrfVerificationKeyHash":"4664efa0023bf465d8e746a80eefa620ee04c0e9455760779bd484a8dadc1e16","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1urr658f2tpkx8jfnmjczdvv2s8zwpug6cnegdxqc4rvuc8cdy3xrz","owners":["c7aa1d2a586c63c933dcb026b18a81c4e0f11ac4f2869818a8d9cc1f"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/LXSP1","hash":"828d2ec12cdfbd0c989b82e8ceb3ea9ba48491ab6453f2c5d66d503048648d53"}},"pool1x9xkvkrfw6htmnflpad0z2aqsxx50f5mwkyzpylw0tlsk9z5uff":{"id":"pool1x9xkvkrfw6htmnflpad0z2aqsxx50f5mwkyzpylw0tlsk9z5uff","vrfVerificationKeyHash":"af51e586a3601de453af80a5d24d88d3e451cc283aff0602d96e2e7f872d983e","pledge":{"lovelace":100000000000},"cost":{"lovelace":170000000},"margin":"1/20","rewardAccount":"stake_test1upeasuglk6mfjthng6xmua0f7q4tzqpsvn3a6wdjry26z0sscd4la","owners":["73d8711fb6b6992ef3468dbe75e9f02ab1003064e3dd39b21915a13e"],"relays":[{"type":"hostname","hostname":"guavarelay.com","port":6000}],"metadata":{"url":"https://github.com/MontiMarti","hash":"72497a1aa897015a10c30bff37371adde3fedf5da930fbf54c40976856782d46"}},"pool1x9tqyeasf0n3zvq6p6dvaeckz828ygcustd3hngs0mmxgpq7n7v":{"id":"pool1x9tqyeasf0n3zvq6p6dvaeckz828ygcustd3hngs0mmxgpq7n7v","vrfVerificationKeyHash":"066490995d792052c4cf4a1010ca55547035261003fd5d42730b92acb165ce4b","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1upd07wdllf3heh5y0c7893gfh04ye5s9r69nq382m4kgtgcd206pr","owners":["5aff39bffa637cde847e3c72c509bbea4cd2051e8b3044eadd6c85a3"],"relays":[{"type":"hostname","hostname":"grokism.com","port":6003}],"metadata":{"url":"https://www.grokism.com/groktnet.json","hash":"b04da3c89fa84062ab55ef8653b00f469f60137afc1d6ff20cd175b00105d888"}},"pool1xg80gqxp89sllgk6xs6ajwjxkjntwjc2wzc9mjsnzchkgm4z2se":{"id":"pool1xg80gqxp89sllgk6xs6ajwjxkjntwjc2wzc9mjsnzchkgm4z2se","vrfVerificationKeyHash":"3efd3ace7be87e59adfbf0196c75d16bae4c46b6c2eeba65c0a32a97c3043eda","pledge":{"lovelace":7500000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1uppctwdc07j7aeut3kzwkxddtarc8s5znulauvcp8snl6wsx8ttpx","owners":["4385b9b87fa5eee78b8d84eb19ad5f4783c2829f3fde33013c27fd3a"],"relays":[{"type":"ipAddress","ipv4":"95.88.156.175","port":4444}],"metadata":{"url":"https://sharepool-crypto.github.io/share/poolMetaData.json","hash":"396f9b3f3dfaaa606e6459758f580ec461f5e4a416027038ff4565a3891301d8"}},"pool1xgmqwh23yc2jp52k7jn249x56v6nyhl9nhxaeg6hq8tmc5t78rq":{"id":"pool1xgmqwh23yc2jp52k7jn249x56v6nyhl9nhxaeg6hq8tmc5t78rq","vrfVerificationKeyHash":"360f9057c01159a44581ccc4ba786d64b80c551bae0163f09fc408b5779b0e55","pledge":{"lovelace":10000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1ur3yj9zs0cd9mtx43zssh877qmgp5env3pa0hhytw53fw2se7fthy","owners":["e24914507e1a5dacd588a10b9fde06d01a666c887afbdc8b7522972a"],"relays":[{"type":"ipAddress","ipv4":"73.23.36.140","port":6000}],"metadata":{"url":"https://petloverstake.com/PET_Preview2.json","hash":"87b5fae91c87eb8dbd828c24088dfea6dca290170723092a2575a9d654444a85"}},"pool1x2u60w0uupzv6qdn39pvzeapd54q0jqwd6vv4a7wfe76q8lgsth":{"id":"pool1x2u60w0uupzv6qdn39pvzeapd54q0jqwd6vv4a7wfe76q8lgsth","vrfVerificationKeyHash":"b2f21592a1eeebdfd7a29d997d93d6c73b80f11c5818408836033a4e93aca409","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1up22rprkrxxhme8gqfqqntvzjfvw2app3sxn85rgsn2me6gq0r6c2","owners":["54a18476198d7de4e8024009ad829258e574218c0d33d06884d5bce9"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/LXSP3","hash":"fd7246127084e052c2a6bf8005ff1a35fe4dcbb4dc32cf97bc110d5470cbe71f"}},"pool1xkfew9wzhefz2at44eqdu5d6hk6s6xjdjj8h54tgvmymwea4vk3":{"id":"pool1xkfew9wzhefz2at44eqdu5d6hk6s6xjdjj8h54tgvmymwea4vk3","vrfVerificationKeyHash":"4967db4150525352a6eaaec789d27795fc7bb17cfd72da8b0815e43bef540a6f","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1urw67l30v2at04d2uaa6cazpuzl4csa5xmu6k4cvcj9yadccrvm93","owners":["ddaf7e2f62bab7d5aae77bac7441e0bf5c43b436f9ab570cc48a4eb7"],"relays":[{"type":"hostname","hostname":"adaboy-preview-2c.gleeze.com","port":5000}],"metadata":{"url":"https://tinyurl.com/39a7pnv5","hash":"643a016d84fb171855f8b6d9c9a5efa230fb4665de3ee0ee0a1ed0f486d26be2"}},"pool1xe7ey753aw0v79tysaumamkgcugpw9txahxwrrltqjpx25adrkr":{"id":"pool1xe7ey753aw0v79tysaumamkgcugpw9txahxwrrltqjpx25adrkr","vrfVerificationKeyHash":"5837fb2c83c6c2808deb5269be449a4c16cd337a7a27d379e77587f5fce73ce9","pledge":{"lovelace":65000000000},"cost":{"lovelace":170000000},"margin":"1/200","rewardAccount":"stake_test1ur7a6w4l2tkz3p7krp8y6807lnqd6e03awrstq644wfaksczmnpth","owners":["fddd3abf52ec2887d6184e4d1dfefcc0dd65f1eb87058355ab93db43"],"relays":[{"type":"ipAddress","ipv4":"45.32.18.201","ipv6":"2001:19f0:7001:24a6:5400:4ff:fe31:9996","port":4002}],"metadata":{"url":"https://git.io/JI2Zk","hash":"d50f5e2e137f291889af50e054025af04bdc487e747c6cfa2521810157a5dfe6"}},"pool1xas798gr6u5kjy2y34ge0jhpp6fwlg88cycrg28swx50z83a9ye":{"id":"pool1xas798gr6u5kjy2y34ge0jhpp6fwlg88cycrg28swx50z83a9ye","vrfVerificationKeyHash":"342463d308642d685df96501b3727510cd10a690927e80727721c837eaff390f","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uzcd50ffs5upkujgw2wa88ky099wka33a6yd6y9zexd6cyss0mu6v","owners":["b0da3d2985381b7248729dd39ec4794aeb7631ee88dd10a2c99bac12"],"relays":[{"type":"hostname","hostname":"adaboy-preview-2c.gleeze.com","port":5000}],"metadata":{"url":"https://tinyurl.com/39a7pnv5","hash":"643a016d84fb171855f8b6d9c9a5efa230fb4665de3ee0ee0a1ed0f486d26be2"}},"pool18pn6p9ef58u4ga3wagp44qhzm8f6zncl57g6qgh0pk3yytwz54h":{"id":"pool18pn6p9ef58u4ga3wagp44qhzm8f6zncl57g6qgh0pk3yytwz54h","vrfVerificationKeyHash":"82419eaa78194ea40711dea37ab068e6ee101dd7785fe9e41e9acd4b98290d49","pledge":{"lovelace":1659000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1urpl4kvj3jfn3zxzxud9px6she3suks5fdyygyke7nnpkcslky9um","owners":["c3fad9928c933888c2371a509b50be630e5a144b484412d9f4e61b62"],"relays":[{"type":"ipAddress","ipv4":"51.104.251.142","port":3001}],"metadata":{"url":"https://adacapital.io/adact_preview.json","hash":"e345a478726731a08900d2cbad4b8455815d41b562fe2b862a3d8fd2c3e36d78"}},"pool18xr0tmqrqffd7yu5jh4pq7hs4eezkremxmgzkq8ua4y82dmmrxp":{"id":"pool18xr0tmqrqffd7yu5jh4pq7hs4eezkremxmgzkq8ua4y82dmmrxp","vrfVerificationKeyHash":"d9df3f4eee37db91a204ef07d8240e4822d8a1d0c0009d2384e7057dcd9cd7c8","pledge":{"lovelace":220000000000},"cost":{"lovelace":170000000},"margin":"69/10000","rewardAccount":"stake_test1ur9pv4652sv524d5qdy9q5h354er45jc3s562jp6vjykwwqyz0kzj","owners":["ca16575454194555b403485052f1a5723ad2588c29a5483a64896738"],"relays":[{"type":"ipAddress","ipv4":"130.162.231.122","port":6001}],"metadata":{"url":"https://tinyurl.com/2ku8unuf","hash":"f5d13701d87a7a6d2642c194c7517a411ac662bfe63fa1d1c63f7558ed83e7ea"}},"pool18x0rtv0vznym7cczsunqcfs5atrve4dfcavfmpe7wkg8ga4urve":{"id":"pool18x0rtv0vznym7cczsunqcfs5atrve4dfcavfmpe7wkg8ga4urve","vrfVerificationKeyHash":"2288a7b58fe88ea76717ba5dd7741e4274042e6806307c10804c581788098d9b","pledge":{"lovelace":2000000000000},"cost":{"lovelace":170000000},"margin":"9999/10000","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/f60a27ae-11a4-4e87-9707-3d9.json","hash":"32c22289da648abcb85bf98d81ab0cde0959e92bb01dfd2837966d6b6858d3d0"}},"pool18x5zg95n59xvysu3rq7ygqn6f842ud29dlcc5jmw97xkv2renhy":{"id":"pool18x5zg95n59xvysu3rq7ygqn6f842ud29dlcc5jmw97xkv2renhy","vrfVerificationKeyHash":"eb7084adcbbe7c2f29e4ad162969dfc80ec4d53a1598d2b4277340c29fd99b35","pledge":{"lovelace":9400000000},"cost":{"lovelace":340000000},"margin":"99/100","rewardAccount":"stake_test1upa7k9ag7zpst5h63lpxa9syq5l4wqk2p2qjvfc04j4ncygq73sxl","owners":["7beb17a8f08305d2fa8fc26e9604053f5702ca0a8126270facab3c11"],"relays":[{"type":"ipAddress","ipv4":"139.218.11.14","port":6005},{"type":"ipAddress","ipv4":"14.201.4.90","port":6005},{"type":"ipAddress","ipv4":"14.201.4.90","port":6006}],"metadata":{"url":"https://dpadapools.com/preview1meta.json","hash":"fafe0366055360d905a2f12da33af561518ae141151fadc9a8a61de850c45664"}},"pool18800lgwlelse96swl6e7n0xes7qeqcnlkkgweq0njrxk66zlj9a":{"id":"pool18800lgwlelse96swl6e7n0xes7qeqcnlkkgweq0njrxk66zlj9a","vrfVerificationKeyHash":"a21d1f6c4c25e3c81754fb21b73b20a4cf64264978980ee1b42c4cfed4c0217f","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzfmqylayt305l5h2lh9xe4h5snu8dqm853fkaj0ex92n4sk3zgy0","owners":["93b013fd22e2fa7e9757ee5366b7a427c3b41b3d229b764fc98aa9d6"],"relays":[{"type":"hostname","hostname":"relay1.preview.metablx.com","port":8092}],"metadata":{"url":"https://bit.ly/8BOOL_01","hash":"b8be919f1da5d19de98673907c00530ccb15eb8f728712cfca433432ffc84f77"}},"pool188a03x468k4t908x265knzc29sz7v7wqlvmqaehrk34vkll3e2h":{"id":"pool188a03x468k4t908x265knzc29sz7v7wqlvmqaehrk34vkll3e2h","vrfVerificationKeyHash":"dbefdeb6466e8c439d6f2c433677bb4baadd745778ee83480d29cb54dcda0c25","pledge":{"lovelace":7000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1upha97flpp5xn22nq0n8k3pg5gk85g6p7fmh9u89q8df5kg9axepw","owners":["6fd2f93f086869a95303e67b4428a22c7a2341f27772f0e501da9a59"],"relays":[{"type":"hostname","hostname":"relay3.preview.metablx.com","port":8093}],"metadata":{"url":"https://bit.ly/8BOOM_01","hash":"843ac18da9b54c0fa8262d6bb99868c29dae4ad9181a1ac1e44ed97ff7e8b2bd"}},"pool183nyxe4nwwxs3rmnsxchhlep4guzm8ayhqwr3se0evz7v0jnnd0":{"id":"pool183nyxe4nwwxs3rmnsxchhlep4guzm8ayhqwr3se0evz7v0jnnd0","vrfVerificationKeyHash":"6dbfd220765e0271d5bc9619238ec289d954e4ac9b435f0444bef87c8a89b2ba","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzfjqkmx3uatgthyk70uazalp2vrgg3vffjrwgfc2uwksncxh5z6a","owners":["93205b668f3ab42ee4b79fce8bbf0a9834222c4a64372138571d684f"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/LXSP5","hash":"0db9041127868af4eb8675f134648d2d3776768b2e658206c840867280579ec3"}},"pool18cq0sr4ryw4t63hvgmdp00z7f8h3hgxef0gjldsgk6j75ajza6y":{"id":"pool18cq0sr4ryw4t63hvgmdp00z7f8h3hgxef0gjldsgk6j75ajza6y","vrfVerificationKeyHash":"18c331fcf6535b1d597c8c661c54eedc36029982c3a3b9779e1525ce73b8d884","pledge":{"lovelace":10000000000},"cost":{"lovelace":340000000},"margin":"9999/10000","rewardAccount":"stake_test1uza6lr2dqs8skq7wut7rp77xvn42w67gsqslpca3r6v6kwqxmcuup","owners":["9ca82a28ceafb9b3bbd77faf6ac500519e6fcbd54f49ef387ca507ab"],"relays":[{"type":"hostname","hostname":"relay.preview.cardanostakehouse.com","port":11000}],"metadata":{"url":"https://cardanostakehouse.com/459b8a9e-b96a-43cc-9981-970.json","hash":"e5e31422e1e2bc34d9ddc87aa974ffc841079a0773dc6972b6efbdb17c8d0ffe"}},"pool18ccrdt0hyj6vd9qwzfwttp2dsq0yqxk03h8nvswecr8yctuynt3":{"id":"pool18ccrdt0hyj6vd9qwzfwttp2dsq0yqxk03h8nvswecr8yctuynt3","vrfVerificationKeyHash":"1d77bf5d2db5645ebde81bf496105973c50f780479dffe796772c3fac4382e99","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/2","rewardAccount":"stake_test1urh699v5gws437m5x5qn09mwv68r9jcmmwngltwjeyfpensx3dcvn","owners":["491ed3664c9cb520f39f4d7eb3275dab8e26f0b6b52bb7deeba111f2","7c344ba81cddc582d4683d093fe1cdb152b4ed3809e52cc719e863bd"],"relays":[{"type":"hostname","hostname":"relays.tradingtools.software","port":6000}],"metadata":{"url":"https://tradingtools.software/downloads/pool_description.json","hash":"aff79b84a4543912a5db601af91474b8b4d6077e1c49d3828793f34bacb2219e"}},"pool186kkpzde9e5ns0sy0852k9nwfvs4sg6m7zgkd272sms6xxslzqv":{"id":"pool186kkpzde9e5ns0sy0852k9nwfvs4sg6m7zgkd272sms6xxslzqv","vrfVerificationKeyHash":"671132f505c4fa210ac3f8d35c6d390a610b555d9c16452fd8c80aed79f82275","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uznvpusq22cmypf9qefkpersmghzqgk492sju2elhfvmnzcrwrrkn","owners":["a6c0f20052b1b20525065360e470da2e2022d52aa12e2b3fba59b98b"],"relays":[{"type":"ipAddress","ipv4":"172.19.0.3","port":3002}],"metadata":{"url":"https://short.gy/huOsbi","hash":"229136efb689e4c9c4246fd9ba19832a815db1b08f8126b2e3df7132e3b4427a"}},"pool18u47gq2ps4hqawl2sfr8uu8rn4yvkue7c68mw45v2ra4wj7pdx0":{"id":"pool18u47gq2ps4hqawl2sfr8uu8rn4yvkue7c68mw45v2ra4wj7pdx0","vrfVerificationKeyHash":"63de13cac6902f7b63a6530ab41297734554bc7932a68496dce10aa187da8bfc","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uzmxaaxxnrk7qcmx7mr3dtshc6e4xgfh5t5w8e690msqtyqgnzx08","owners":["b0348c669fe3cb7446b5084a669e304dd1cff63762352e8355e14482","b66ef4c698ede06366f6c716ae17c6b3532137a2e8e3e7457ee00590"],"relays":[{"type":"hostname","hostname":"4728f95d.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://4728f95d.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1gslhruyd8pk4f6am9zjjzgwuvetge6tztswwfrjqpnvdsex3455":{"id":"pool1gslhruyd8pk4f6am9zjjzgwuvetge6tztswwfrjqpnvdsex3455","vrfVerificationKeyHash":"59fa47761c925ff90e191c5d7d18d62ddd15ff88094575c2b1b139ea231b8485","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/2","rewardAccount":"stake_test1ur5p8rcnye82hu4ukkt8xru2hqxa3f9z58pe53qkl9wzz0sn83hhf","owners":["e8138f13264eabf2bcb596730f8ab80dd8a4a2a1c39a4416f95c213e"],"relays":[{"type":"hostname","hostname":"spec2-staging.spirestaking2.com","port":3006}],"metadata":{"url":"https://data.spireblockchain.com/ADA-PREVIEW/SPF/pool_1.json","hash":"9f4e03dd87a814ef9407212ca61355edd9ff266d29a14eb43ad8ad312851b2bc"}},"pool1ghxsz57l4rhsju328dk0t8j3ycmz80xtf8w8xzpkk7pfwtca9u9":{"id":"pool1ghxsz57l4rhsju328dk0t8j3ycmz80xtf8w8xzpkk7pfwtca9u9","vrfVerificationKeyHash":"5fa64452a0b245bd9778b32ca0b65ecf13d658903419a4978d5ee70dd1eec6b8","pledge":{"lovelace":5000000000},"cost":{"lovelace":341000000},"margin":"1/25","rewardAccount":"stake_test1uznc9768hq2qvkg3f588ps9gssw05jztp8n0s7zc7tldlmcku0gxs","owners":["a782fb47b8140659114d0e70c0a8841cfa484b09e6f87858f2fedfef"],"relays":[{"type":"hostname","hostname":"preview.testnet.cryptobounty.org","port":6161}],"metadata":{"url":"https://bnty.one","hash":"677d4eba97170f5267a84ca9d12e0c2bdd116c87128aaa2aaf6905912841fa63"}},"pool1fr8hdmcl5vadqdxrtdks6vzc44ddqmxpzfuxeuezjt965z8hr04":{"id":"pool1fr8hdmcl5vadqdxrtdks6vzc44ddqmxpzfuxeuezjt965z8hr04","vrfVerificationKeyHash":"4b4e8c37e61a53313028a84eef9bcd1d0ddc77c5da6570be8d23ab77e0088318","pledge":{"lovelace":100},"cost":{"lovelace":340000000},"margin":"3/10","rewardAccount":"stake_test1uzp3y24gpe5zjw0nzsc04tteyuhr6yxqpcvl4cg9x6227gcr4s4cs","owners":["83122aa80e682939f31430faad79272e3d10c00e19fae1053694af23"],"relays":[]},"pool1fv5dyzcaydlj3gvkxqdjsxvey29cvk5zz8jjxncqhch4xxj3lgr":{"id":"pool1fv5dyzcaydlj3gvkxqdjsxvey29cvk5zz8jjxncqhch4xxj3lgr","vrfVerificationKeyHash":"4ab5835f2302ea9d183e1d56143ee82e224657f46403ffc2bc0c4a557f1afeb6","pledge":{"lovelace":1104000000},"cost":{"lovelace":411000000},"margin":"1/100","rewardAccount":"stake_test1ur9h9qtr739mhuypqmhfxvzux3g9h0tksew8w6ravaj3t8qacq6d9","owners":["c9dc49a676087ba0fb1ab1f28b209e647b4139626d732455bb7d5582","cb728163f44bbbf08106ee93305c34505bbd76865c77687d6765159c","f4cceaa5fff7b592e39519942ea8c3b823f3fee622bb3c81a5f5150f"],"relays":[{"type":"hostname","hostname":"us.netspectrum.com","port":13001}],"metadata":{"url":"http://us.netspectrum.com:13002/pool-meta-data.json","hash":"41bbeb6b2f37c5c9195c4c816fb9b641723b92ba14ecf5f4adf210155b08d0e3"}},"pool1fvmzpfjatfgg0jx5l56ttuprc8g9p42782rdg4e8a9cwvplk9th":{"id":"pool1fvmzpfjatfgg0jx5l56ttuprc8g9p42782rdg4e8a9cwvplk9th","vrfVerificationKeyHash":"02f96e2a0f0e25b1fe59eade571d1389eae47cda456f949de278791ca2f300e7","pledge":{"lovelace":500000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1upvea236pch7jvvrdsxczr0t9t4f5n9plnx4u8rrkz4h74gxy80l0","owners":["599eaa3a0e2fe931836c0d810deb2aea9a4ca1fccd5e1c63b0ab7f55"],"relays":[{"type":"ipAddress","ipv4":"142.132.229.15","port":6001}],"metadata":{"url":"https://udknow.github.io/extend.github.io/pool_MetaData.json","hash":"2afac2a4edec44da0f81ba5bd6c23eb2a895e172c8561c6680819feb4872f667"}},"pool1fw9mq9eyrp5yydl3njau2568jal62rx5f8anp2llt0e5s3pl3py":{"id":"pool1fw9mq9eyrp5yydl3njau2568jal62rx5f8anp2llt0e5s3pl3py","vrfVerificationKeyHash":"171fdc0c6430bddfdc725553a2d84d01042cfb586f1e4b546853da5d96a604db","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uq27femrn9wj07uad23waxfnc29f7wk86s9mddtp7qhlepcnk0r4r","owners":["15e4e763995d27fb9d6aa2ee9933c28a9f3ac7d40bb6b561f02ffc87"],"relays":[{"type":"hostname","hostname":"d8bdbfbe.cardano-relay.bison.run","port":1338}],"metadata":{"url":"https://d8bdbfbe.cardano-metadata.bison.run/metadata.json","hash":"64c1813d814e5c2abb5f65864ec26f0b060d49f3d206a31f34aa6428d7b682e3"}},"pool1fw7yf4mehfuszpdf2g0u72gu8d948qamwut5c6jm3d3lkj3e4an":{"id":"pool1fw7yf4mehfuszpdf2g0u72gu8d948qamwut5c6jm3d3lkj3e4an","vrfVerificationKeyHash":"838ca6096cff572b788d840445bf2167345f3d87485133ebcbfc729af016ee14","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"7/100","rewardAccount":"stake_test1ur7dav7tz75n7qd4p5fx2su0m5vdu6udvpn2aw4gusx536sag3auf","owners":["fcdeb3cb17a93f01b50d1265438fdd18de6b8d6066aebaa8e40d48ea"],"relays":[{"type":"ipAddress","ipv4":"162.55.3.29","port":3003}],"metadata":{"url":"https://test.com","hash":"0ba562271b66ca6929aff5026bb127d05fb7fdab05cb165854f13f57ed87a222"}},"pool1fszljutkfl8kvvnm0l585tzqevuuvyxmp7rt6346q0nkxxg33mj":{"id":"pool1fszljutkfl8kvvnm0l585tzqevuuvyxmp7rt6346q0nkxxg33mj","vrfVerificationKeyHash":"10236e06f67a865caf85cb51a7465dba3e35d0afab2ff55a0ae4626502c91793","pledge":{"lovelace":4567},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1upq6yxehs9le5fzav7476zngs4kvmrn5qane0mwe9y8a8tqzmjfcd","owners":["10417a1f689bb4328ca92d6ba5eae93da2eb2d5e25c34acbbe0cdfee","17cf6f438e4eec78e697919fee6a4a2095207cfd96a3aaa1a84b59c4","41a21b37817f9a245d67abed0a68856ccd8e74076797edd9290fd3ac"],"relays":[],"metadata":{"url":"https://www.updated_location.com","hash":"4cd0cdc50f4220f9c134c7370e68a50142c9e272da4eeba45c1bc367792ef224"}},"pool1fsxwamyfh5aqwg707m69zpfvwyrj5fz5ep7a8yk92wnavck4pdf":{"id":"pool1fsxwamyfh5aqwg707m69zpfvwyrj5fz5ep7a8yk92wnavck4pdf","vrfVerificationKeyHash":"e091185050f16c36c140ff83df893a6ee90abc4e4b6c9e6f61feec71fb2af439","pledge":{"lovelace":1000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1up50rxfvpmvh2k0e9ku7vypfk5w8280j3w6nm4nkk76qkfcqpc9wn","owners":["68f1992c0ed97559f92db9e61029b51c751df28bb53dd676b7b40b27"],"relays":[{"type":"ipAddress","ipv4":"154.12.248.114","port":6001}],"metadata":{"url":"https://raw.githubusercontent.com/hodlonaut/a/master/t1.json","hash":"81986b8f246cb39979af55fc01215f193df2dc07107989b886e131633e880e43"}},"pool1f7geezz3s4jlcej03v62wm75wvunu2dzwk4qa6fvkjl9j23yp03":{"id":"pool1f7geezz3s4jlcej03v62wm75wvunu2dzwk4qa6fvkjl9j23yp03","vrfVerificationKeyHash":"bb6a74b787c6c3f59dce9524356655c714d28c18af92dc14007a90cd5cf84851","pledge":{"lovelace":2000000000},"cost":{"lovelace":340000000},"margin":"1/25","rewardAccount":"stake_test1uz6wcl67glqj2sfx7e55afxv58g6f0p9rlwq0xyt6cm33hqxczkka","owners":["b4ec7f5e47c1254126f6694ea4cca1d1a4bc251fdc07988bd63718dc"],"relays":[{"type":"ipAddress","ipv4":"194.28.129.203","port":3001}],"metadata":{"url":"https://shorturl.at/hloWY","hash":"3be51e24185ed60ebcc73af79dd1e13167d78093dbbbb4dc61f4e26f1b10e40a"}},"pool12q7fskmv767qv8yn7mvcxj5azam9cdg0lpm3cajjqr2rqxc7y6a":{"id":"pool12q7fskmv767qv8yn7mvcxj5azam9cdg0lpm3cajjqr2rqxc7y6a","vrfVerificationKeyHash":"d1dc9125cf57397889b155799e3e6e89ce70c41b6b3b94d3e6e08a48bc4ea5e3","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"19/1000","rewardAccount":"stake_test1urfrzvw6yyunusyx4creuzysuyly3tqkj353v7fv58jl6hcfyzy5d","owners":["d23131da21393e4086ae079e0890e13e48ac16946916792ca1e5fd5f"],"relays":[{"type":"hostname","hostname":"pv.blockchainlens.org","port":6306}],"metadata":{"url":"https://raw.githubusercontent.com/bclens/cardano/main/pv.json","hash":"82dc82447da80029382fb904948c09431e0848260a504bcf4a75c575a040b05e"}},"pool12yqmdst9axjwgav7jgcu2umfa0vdm8cnh6rq9ctvaqhhvtuys5z":{"id":"pool12yqmdst9axjwgav7jgcu2umfa0vdm8cnh6rq9ctvaqhhvtuys5z","vrfVerificationKeyHash":"f39deed0607f101e4d3de99930f0a1532c914a2796651c6e2bef756eaf0636ed","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uq5j484c9yd0v2836knjpyldgpy3havq7252xjlyhd2kt2qfcesug","owners":["292a9eb8291af628f1d5a72093ed40491bf580f2a8a34be4bb5565a8"],"relays":[{"type":"hostname","hostname":"alpha.relay.preview.mochipool.com","port":7777}],"metadata":{"url":"https://preview.mochipool.com/poolmeta.json","hash":"156868305e96086404ebfdbef2b552d266771597a206f1bfa34874e83fe46c4a"}},"pool12yrhvezsrqxlafahf02ka28a4a3qxgcgkylku4vqjg385jh60wa":{"id":"pool12yrhvezsrqxlafahf02ka28a4a3qxgcgkylku4vqjg385jh60wa","vrfVerificationKeyHash":"9692c9b1540de270cff040ba6df0d680b91c524b2e01673b97b4679a9e2d91eb","pledge":{"lovelace":1000000000000},"cost":{"lovelace":500000000},"margin":"1/1","rewardAccount":"stake_test1ur9dz9x9yzn65ys0ms72l6gsmk9w3dfdj26qrvknjvlhmrgnzpcmv","owners":["25d448544726958c9232dab0aa12c63b06b1db494ea133b96e73c836"],"relays":[{"type":"hostname","hostname":"preview-node.play.dev.cardano.org","port":3001}]},"pool123gjej7l8f53906d4xp6f2jxa8zxav8arx3t8af5r3fkvgxx2wx":{"id":"pool123gjej7l8f53906d4xp6f2jxa8zxav8arx3t8af5r3fkvgxx2wx","vrfVerificationKeyHash":"442324fe40068b5c1dca530dab61fdbc273e1ec20aed07b13fbba87f6e45840a","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uq8jgpx346l6hwuxa3vdecegtyfcv35wy4hmyfczw39876g0mhcw7","owners":["0f2404d1aebfabbb86ec58dce328591386468e256fb22702744a7f69"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSNE","hash":"2424d0726b990ec170fd1f9298bde6cfe1792153ea6ba56387ad098cec30c4ea"}},"pool12645cty3fsa7a79vx2nsd8yupl3quyhr6h3vqk6duqn0yy7vkv0":{"id":"pool12645cty3fsa7a79vx2nsd8yupl3quyhr6h3vqk6duqn0yy7vkv0","vrfVerificationKeyHash":"c1b125e070bea224be6663ebf5cf748194a70cf6aa8c16885b56e684d12450d5","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/bf2f257f-2776-4c14-aae4-1c1.json","hash":"98db945cdff93d149a30e0d9010927f1417fb1b9796c63a2bcbb85cd551b2fb6"}},"pool12l8602apyt7a52l0746te57y4wtl9rv0pxjvsg6w5p7vk2pcwk2":{"id":"pool12l8602apyt7a52l0746te57y4wtl9rv0pxjvsg6w5p7vk2pcwk2","vrfVerificationKeyHash":"254e89d363387a17fecaedaf04ff7cee91be656a25f9d4371416722b078c8c6f","pledge":{"lovelace":100000000},"cost":{"lovelace":345000000},"margin":"6969/10000","rewardAccount":"stake_test1uqjgdtza3mr6k9w76798vs3hpu4dm963rdkpxrlqrcvknmcn38xkh","owners":["2486ac5d8ec7ab15ded78a7642370f2add97511b6c130fe01e1969ef"],"relays":[{"type":"ipAddress","ipv4":"146.235.201.221","port":6000}],"metadata":{"url":"https://tinyurl.com/3rp46mu3","hash":"dc2e0b9de0a745efcfc863dbbb9a69553899c0bdc1daadf2656e9d32ec53cd93"}},"pool1tycl9a9cqgffccgsh0867u65qpk0qlm43kjqggepmflajsmcds6":{"id":"pool1tycl9a9cqgffccgsh0867u65qpk0qlm43kjqggepmflajsmcds6","vrfVerificationKeyHash":"e89c87e0d1527f047cdb4254d8139987124e9a06d07538bfb4ceda29f43ee098","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uzd5msh6y083l597yacq5pcgs82pzfrm50j3nemmynmqfcsg2m4r0","owners":["9b4dc2fa23cf1fd0be27700a070881d411247ba3e519e77b24f604e2"],"relays":[{"type":"hostname","hostname":"e566964e.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://e566964e.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1t9uuagsat8hlr0n0ga4wzge0jxlyjuhl6mugrm8atc285vzkf2e":{"id":"pool1t9uuagsat8hlr0n0ga4wzge0jxlyjuhl6mugrm8atc285vzkf2e","vrfVerificationKeyHash":"957d1696507a9f88c641db39cc2e34274456efeee9538a2bb4f332f44fb1d25c","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uq9yp8wqvgpnucpe6s6yavnrvqnuykadx8y40sv0c5ur93gapzeka","owners":["0a409dc062033e6039d4344eb2636027c25bad31c957c18fc53832c5"],"relays":[{"type":"hostname","hostname":"mithril-signer-3.testing-preview.api.mithril.network","port":9092}],"metadata":{"url":"https://tinyurl.com/2qvmy5xy","hash":"adaff9f5327ad0a3b9a47ba88a14100235915c80da2806f9bf8d271dbc0a6e13"}},"pool1txg39f9mdatrvv3mp7nwfj07he3cqe0y4cach06e2z6ykmysytj":{"id":"pool1txg39f9mdatrvv3mp7nwfj07he3cqe0y4cach06e2z6ykmysytj","vrfVerificationKeyHash":"64e14353b2cc4050d5fa27c40acbea2556089d57527e595101ef0e1ef2986009","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uqe8qlh2xqneakexw06jgfl9pev9r5vqj743de0a6uqw8ygs0gw82","owners":["32707eea30279edb2673f52427e50e5851d18097ab16e5fdd700e391"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3001}],"metadata":{"url":"https://bit.ly/43u9ybcJ","hash":"c1ef608ac6ba33acba208cdbbb2eaa7eb8fc944103f84646040931b1284478e7"}},"pool1tfgdvuc8p8zrmyhxc2g82denxkrxuy9dx5qwzp9lx85xgjedvdg":{"id":"pool1tfgdvuc8p8zrmyhxc2g82denxkrxuy9dx5qwzp9lx85xgjedvdg","vrfVerificationKeyHash":"afb03550e8b2974b2ddeb22231132b361ca45d4b3d4fc45435c053c510dc6481","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uqz3lkuqxjh42yujn5l3zegcvc6a82lmyhr8ylc68sq44fcj9dppz","owners":["051fdb8034af5513929d3f1165186635d3abfb25c6727f1a3c015aa7"],"relays":[{"type":"hostname","hostname":"preview.frcan.com","port":6010}],"metadata":{"url":"https://raw.githubusercontent.com/Mikederel/p/main/p.json","hash":"ade52fe0bf2d23ed509ce2fc5b3990f4178ad8768f66ead1955a1f7e04b11c82"}},"pool1t3pl903zsy3wqgl4392hmuwx8a3f259f3yzhl2ns4xlhskxkr43":{"id":"pool1t3pl903zsy3wqgl4392hmuwx8a3f259f3yzhl2ns4xlhskxkr43","vrfVerificationKeyHash":"dd6686e356e2bec35ee51b17356d801e69917e3b472e2e59d3371e48207fd990","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1urp9rkuj73fqcuc47u3r92huffdmfgnxszkk8nl3dpdmwvqjwpjgz","owners":["c251db92f4520c7315f72232aafc4a5bb4a26680ad63cff1685bb730"],"relays":[{"type":"hostname","hostname":"sator89.ddns.net","port":25369}],"metadata":{"url":"https://capitalstakepool.info/CSP.json","hash":"04028c72c74f04d605fc0d1a04c99357c8563bcf5cc408a6b6e8c7e72176c9d9"}},"pool1tmhw3wga9qdvz5enyxkhm7h9j4u7lp60y9lvvsdv3323wa447y6":{"id":"pool1tmhw3wga9qdvz5enyxkhm7h9j4u7lp60y9lvvsdv3323wa447y6","vrfVerificationKeyHash":"697920a02a8ec26f6b77ad9c0b8744339b26433e80974cfc35f68e4e38fee2f2","pledge":{"lovelace":8000000000},"cost":{"lovelace":340000000},"margin":"29/1000","rewardAccount":"stake_test1uzwev96me9lpndczchkgaytxwrjlny97qh0dl4zk5hs3wagw9s0c3","owners":["9d96175bc97e19b702c5ec8e916670e5f990be05dedfd456a5e11775"],"relays":[{"type":"ipAddress","ipv4":"128.140.96.209","port":8000}],"metadata":{"url":"https://cardano24.com/premeta.json","hash":"bf9b1cfe6a7caf8adb5c868f49d6e2414960aa1fefd815694f4525622c73efd7"}},"pool1vzqtn3mtfvvuy8ghksy34gs9g97tszj5f8mr3sn7asy5vk577ec":{"id":"pool1vzqtn3mtfvvuy8ghksy34gs9g97tszj5f8mr3sn7asy5vk577ec","vrfVerificationKeyHash":"cc688f3f4c8152bbc71cd7b2e8da059856ea06e1520cda4a0724c4cd2632acd3","pledge":{"lovelace":250000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uzyzlml7sqd9kpdq5xv6y6dzme78xtgllpt3yv62mjmj9cg082gaa","owners":["882feffe801a5b05a0a199a269a2de7c732d1ff85712334adcb722e1"],"relays":[{"type":"hostname","hostname":"tn-preview.psilobyte.io","port":4201},{"type":"hostname","hostname":"tn-preview2.psilobyte.io","port":4202}],"metadata":{"url":"https://psilobyte.io/adatest/psb-meta.json","hash":"18c2dcb8d69024dbe95beebcef4a49a2bdc3f0b1c60e5e669007e5e39edd4a7f"}},"pool1vhdl0z496gxlkfpdzxhk80t4363puea6awp6hd0w0qwnw75auae":{"id":"pool1vhdl0z496gxlkfpdzxhk80t4363puea6awp6hd0w0qwnw75auae","vrfVerificationKeyHash":"db19e2b96aabf2a9dd42c8d91d88bca9feff8286e77ca6b0873d4de3b06f7d1e","pledge":{"lovelace":45000000000},"cost":{"lovelace":170000000},"margin":"0/1","rewardAccount":"stake_test1upylhjc96sxhmawg0z4vut0c2nku4nhayul28a0w2msnfdcjyehf0","owners":["49fbcb05d40d7df5c878aace2df854edcacefd273ea3f5ee56e134b7"],"relays":[{"type":"ipAddress","ipv4":"204.216.214.226","port":6000}],"metadata":{"url":"https://bit.ly/48BnVgU","hash":"c74260178b12b253edc70b950a9dc9dbbfb94c4e76f74172dbbe2ad4f06d0879"}},"pool1vhclwkzyf6ahyt260sh5gsr2udz47074q0slxp20sqn75xjy2xx":{"id":"pool1vhclwkzyf6ahyt260sh5gsr2udz47074q0slxp20sqn75xjy2xx","vrfVerificationKeyHash":"5cd33abcda61776fa52893373e96b8c63430635f74d2f604faf23ffdd7fe614c","pledge":{"lovelace":5000000000},"cost":{"lovelace":4321000000},"margin":"1/25","rewardAccount":"stake_test1upvhfqp8qywsyhe45zflp7ytphwuq8uzxtx0eed4agqsl3cx966vk","owners":["59748027011d025f35a093f0f88b0dddc01f8232ccfce5b5ea010fc7"],"relays":[{"type":"ipAddress","ipv4":"10.0.0.31","port":3000}],"metadata":{"url":"https://tinyurl.com/y2z4cvnt","hash":"91514f535468f45ee8bf8aae5c06e69bae95aeaec8775e2ee7c519ec42525c00"}},"pool1vc577hmjzpgz6mlccdv8ddwplfgvjtp639ykqd05anu6jcja69a":{"id":"pool1vc577hmjzpgz6mlccdv8ddwplfgvjtp639ykqd05anu6jcja69a","vrfVerificationKeyHash":"42d1ab64b06293ddcbf63dcf8466939bbfc470cf858b87be468abf46dca407ce","pledge":{"lovelace":1000000000},"cost":{"lovelace":345000000},"margin":"3/20","rewardAccount":"stake_test1uq2ktannndxkd639acvkf3hnllh04ddvmh8ctu9e6u2mstsu6fv2l","owners":["1565f6739b4d66ea25ee1964c6f3ffeefab5acddcf85f0b9d715b82e"],"relays":[{"type":"hostname","hostname":"0.0.0.0","port":6000}],"metadata":{"url":"shorturl.at/itHOW","hash":"d37a27a9a28ece2c898936eaf431287b5cd7b4cd09247a941289273ca70a06a4"}},"pool1vezalga3ge0mt0xf4txz66ctufk6nrmemhhpshwkhedk5jf0stw":{"id":"pool1vezalga3ge0mt0xf4txz66ctufk6nrmemhhpshwkhedk5jf0stw","vrfVerificationKeyHash":"41762f6a5cf97a405230e278c52b9d711937858c3f7c5d54e5d892ca626798c7","pledge":{"lovelace":125000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uz5ah77y8xvnxs6cyp979hg7fhxezjw39jfrpardqymnz7sg7ea8y","owners":["7981e93ea49a82b02369e8b16b3aca1dd0a015ada02cd72f5f23031b","a9dbfbc43999334358204be2dd1e4dcd9149d12c9230f46d0137317a"],"relays":[{"type":"ipAddress","ipv4":"73.222.122.247","port":23001}],"metadata":{"url":"https://bit.ly/3GNLlTI","hash":"251194136caedddada9227adfe30312af6c011a1628d178fa7377051bd385bd2"}},"pool1vevw38yxlyaxke29d40ace7jzz7d38qtcmd5kk36chf3shh02ek":{"id":"pool1vevw38yxlyaxke29d40ace7jzz7d38qtcmd5kk36chf3shh02ek","vrfVerificationKeyHash":"9b49ae80c094db2bb49ae40e21deb1d7921fde3c8b469e90667c58859836d16c","pledge":{"lovelace":30000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1ur5jhdf8a7lput2qhsa2hndls4h5yh5ukxr7yc7qkdm96jgnrtjmj","owners":["e92bb527efbe1e2d40bc3aabcdbf856f425e9cb187e263c0b3765d49"],"relays":[{"type":"ipAddress","ipv4":"113.43.231.41","port":3001},{"type":"ipAddress","ipv4":"113.43.231.41","port":4001},{"type":"hostname","hostname":"ada.nodes.mresearch.xyz","port":3001},{"type":"hostname","hostname":"ada.nodes.mresearch.xyz","port":4001}],"metadata":{"url":"https://git.io/Jo7m7","hash":"a40c9206f1ccb3e6ccfe71a7eaf7f6d4a0d15770d7b097829089468ed9be21ac"}},"pool1ve7vhcyde2d342wmqcwcudd906jk749t37y7fmz5e6mvgghrwh3":{"id":"pool1ve7vhcyde2d342wmqcwcudd906jk749t37y7fmz5e6mvgghrwh3","vrfVerificationKeyHash":"612e0b5b84ff4e48a924b51e511485a4884a31e9f8094d7ff9f1e190bc1af30d","pledge":{"lovelace":9147456725},"cost":{"lovelace":340000000},"margin":"1/25","rewardAccount":"stake_test1urwy6fkeyl4e38mws7f8k34pyltq6qy5gpn86ws3l67cthccls3hd","owners":["dc4d26d927eb989f6e87927b46a127d60d009440667d3a11febd85df"],"relays":[{"type":"ipAddress","ipv4":"192.168.200.132","port":3001}],"metadata":{"url":"https://raw.githubusercontent.com/mj83263/test/main/tPl.json","hash":"dc4bd67f3b9b6138fcd11b6222a1550d402d367e303cce3e07a683e9c6af8f41"}},"pool1vurgy6s6u7yq36shf9yspesh3rrnd36km8xkghpcr4smgfz278m":{"id":"pool1vurgy6s6u7yq36shf9yspesh3rrnd36km8xkghpcr4smgfz278m","vrfVerificationKeyHash":"1eec12eccea7cdfe494ac8b980a2c6d6a510d44ad87e3fa6f5092d34d86abae4","pledge":{"lovelace":10000000000},"cost":{"lovelace":340000000},"margin":"1/2","rewardAccount":"stake_test1ur0paqh4t5cwgflh4phdjkhvpwdvv3ps6zd8l7cv9ffk20qxjhqwf","owners":["de1e82f55d30e427f7a86ed95aec0b9ac64430d09a7ffb0c2a53653c"],"relays":[{"type":"ipAddress","ipv4":"185.43.205.110","port":3003},{"type":"hostname","hostname":"cardano.illusion.hu"}],"metadata":{"url":"https://www.illusion.hu/cardano/hunada-test.json","hash":"d93c4c6690186dfa973b6a7ee3203a16e953153616d7165895f4ab7b94de6212"}},"pool1vapqexnsx6hvc588yyysxpjecf3k43hcr5mvhmstutuvy085xpa":{"id":"pool1vapqexnsx6hvc588yyysxpjecf3k43hcr5mvhmstutuvy085xpa","vrfVerificationKeyHash":"9f6e5d16ea05c1905907e8aee60b426c7680c32870c2ebe0be50281d889d5cf0","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uzkxke5d0tjj0utd8tf2v75vytt6wjkx0tp4lr0885slcnqtq2ryf","owners":["ac6b668d7ae527f16d3ad2a67a8c22d7a74ac67ac35f8de73d21fc4c"],"relays":[{"type":"hostname","hostname":"mithril-signer-1.testing-preview.api.mithril.network","port":9091}],"metadata":{"url":"https://tinyurl.com/263p356z","hash":"276f035319f342a84f7e8abf8ec0befde2434bcb29f20f41afd09132fb083fd1"}},"pool1drrylt73ln8jcv0sthcenlkhuan2lfyhthkrrv3vhs9vv4eywdy":{"id":"pool1drrylt73ln8jcv0sthcenlkhuan2lfyhthkrrv3vhs9vv4eywdy","vrfVerificationKeyHash":"c2d3aa0b9ddf84ad6680c8d4dac3375664290b95a290ab7f27c2ebd52bd537cd","pledge":{"lovelace":100000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1up2ldekqxmad8gu89l4dw9r9nde58xvfsh00uhs98x33w4qxeeugs","owners":["55f6e6c036fad3a3872fead714659b7343998985defe5e0539a31754"],"relays":[{"type":"ipAddress","ipv6":"2a01:e0a:3d1:770:216:3eff:fe05:9009","port":6006}],"metadata":{"url":"https://api.monrma.ml/meta/GATOR.json","hash":"66bcc65cac5cb109e0bd4c89696d2dc010902cef15d29f0b73250fc8855af5d3"}},"pool1d4nsv4wa0h3cvdkzuj7trx9d3gz93cj4hkslhekhq0wmcdpwmps":{"id":"pool1d4nsv4wa0h3cvdkzuj7trx9d3gz93cj4hkslhekhq0wmcdpwmps","vrfVerificationKeyHash":"ca839c83356effe8d232fa8dd1335afcf923bf8d151cda561a6e94e0b9f38ac7","pledge":{"lovelace":1000000},"cost":{"lovelace":429000000},"margin":"2/25","rewardAccount":"stake_test1ur8csttjsny8t783dnfeylwangqh94zrahnps3qaw6rphcsswzsft","owners":["cf882d7284c875f8f16cd3927ddd9a0172d443ede618441d76861be2"],"relays":[{"type":"hostname","hostname":"relay.preview.crimsonpool.com","port":3000}],"metadata":{"url":"https://crimsonpool.com/red.metadata.json","hash":"e3db302e127a7929cd741de7df7744448906110f76fb6d7d793716937b7a49a6"}},"pool1dhheyj4y7q8c8nj3z3lkuv9vqfjw75rnt48eet8efcnvczeznr7":{"id":"pool1dhheyj4y7q8c8nj3z3lkuv9vqfjw75rnt48eet8efcnvczeznr7","vrfVerificationKeyHash":"922ce518a7130d31bf31b4501585e51ccb58db022fb4d6fe429ec56eae5f9db9","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzj0zcvrpkt6lv6c2543vshmxqptnxux0qz5nt744e0gjtgycwrj8","owners":["a4f161830d97afb358552b1642fb3002b99b86780549afd5ae5e892d"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/RSPO1","hash":"666f5ac6701133f3b54b43785b2ce4ed4a12432d9a27f3e07583e8714fd8229c"}},"pool1da3p2l74sr347ln6gpmmkkqnnupfxhfh2d7fuur2g7twvddm5ua":{"id":"pool1da3p2l74sr347ln6gpmmkkqnnupfxhfh2d7fuur2g7twvddm5ua","vrfVerificationKeyHash":"d67f65e8c4fa6346a631b6623b35951e63596920c2ccf1c9d4a836fcea66846c","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uzv69q0u5g7zdvepd96ljt0ngex4gdhules9pj9m73s8w3csm5xm5","owners":["99a281fca23c26b3216975f92df3464d5436fcfe6050c8bbf4607747"],"relays":[{"type":"hostname","hostname":"west.piada.io","port":6000}],"metadata":{"url":"https://piada.io/piada_preview.metadata.json","hash":"f4bf83eb38af4c225b5ee264085d5c0bb529e2016e50b731e590019d37c780f0"}},"pool1damnajda3jh3tch3zcpk9f5pajuyeud820n0q7qesxyyx62cel2":{"id":"pool1damnajda3jh3tch3zcpk9f5pajuyeud820n0q7qesxyyx62cel2","vrfVerificationKeyHash":"4afa907233b0f44c6d6293e323a986854fcb0bbc2ba818daa48dc5ef7dd8e048","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1uqnkzt5ju2c6enmg04k63hz9ryc4lgxrjr5ygfq88kfsymczryjw6","owners":["27612e92e2b1accf687d6da8dc4519315fa0c390e84424073d93026f"],"relays":[{"type":"ipAddress","ipv4":"52.166.113.150","port":6000}],"metadata":{"url":"https://raw.githubusercontent.com/aleincsharp/a/main/md.json","hash":"49222a06d7b62846b99583b1dcb76d835bb62b1cec8edf5c4744c1d398182a5e"}},"pool1wx2daxr2qgh4yhf9mn4se8kyadj4cnyad6zkt7eyufhwvz2ycyh":{"id":"pool1wx2daxr2qgh4yhf9mn4se8kyadj4cnyad6zkt7eyufhwvz2ycyh","vrfVerificationKeyHash":"45a81cd08738c9bdb890a312f394a8aabc344f9f5e17dae53a877aa966f3293a","pledge":{"lovelace":2000000000},"cost":{"lovelace":340000000},"margin":"3/100","rewardAccount":"stake_test1uzgcmw4nr5ytnfpvr7khq5nsgh87qc79yat66wzu7s7kzwcqdzjlz","owners":["918dbab31d08b9a42c1fad70527045cfe063c52757ad385cf43d613b"],"relays":[{"type":"hostname","hostname":"10.0.3.15","port":6000}],"metadata":{"url":"https://gaiastakepool.com/wp-content/uploads/2023/10/md.json","hash":"d123bf56ab892805ea6c215c88af2b73ba9e7eafc156fc19f27e9f6cf5441272"}},"pool1w83ux7vrwafrsuz044knxl9xxtr38q5jj2l3p28fl3g26faqqwg":{"id":"pool1w83ux7vrwafrsuz044knxl9xxtr38q5jj2l3p28fl3g26faqqwg","vrfVerificationKeyHash":"5c44de7dcbbf485040edf760fe91855693ea7e2290a6a9f4b25efdc42a37b025","pledge":{"lovelace":0},"cost":{"lovelace":10000000000},"margin":"1/2","rewardAccount":"stake_test1urqntq4wexjylnrdnp97qq79qkxxvrsa9lcnwr7ckjd6w0cr04y4p","owners":["c13582aec9a44fcc6d984be003c5058c660e1d2ff1370fd8b49ba73f"],"relays":[{"type":"hostname","hostname":"test.stakepool.at","port":9001}],"metadata":{"url":"https://my-ip.at/test/previewpool.metadata.json","hash":"069457ca9fdc1bbeac1f7b4602b9d8fe8ee4255f8af724de2f79702c464402fc"}},"pool1wwh3k3ldzujdvgxllfwlnnkxyheafkacqlufnvpr77n5q72f9hw":{"id":"pool1wwh3k3ldzujdvgxllfwlnnkxyheafkacqlufnvpr77n5q72f9hw","vrfVerificationKeyHash":"81fd203455043724337724f64e67ebbb208d3885ac0063c8b14c4b2bea0bec5e","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uz3s7gd3rhe9ptechqj7z2r7l6l2gr42rv3lvu4grsdnapg88utxm","owners":["a30f21b11df250af38b825e1287efebea40eaa1b23f672a81c1b3e85"],"relays":[{"type":"ipAddress","ipv4":"51.77.24.220","port":4003}],"metadata":{"url":"https://www.stakecool.io/pools/pvcool-001.metadata.json","hash":"aade4d000f39df2f9ebfc4e23c9a3c49850236fcb924edc1f4da9be844d9691f"}},"pool1wjz475nwhq3fnhfvrjesf4pw70k27fnc5mzvsrzqlxfhy60rmu3":{"id":"pool1wjz475nwhq3fnhfvrjesf4pw70k27fnc5mzvsrzqlxfhy60rmu3","vrfVerificationKeyHash":"663f0b5d8bebb6622de18c0121d3d5bbcb1824b749fe4cbd41a0b232ff4b982e","pledge":{"lovelace":0},"cost":{"lovelace":170000000},"margin":"1/100","rewardAccount":"stake_test1uq3n393q95qu7nswzvnx688ukq69e4p3r78euf2kfwsxg2sygp0rv","owners":["233896202d01cf4e0e13266d1cfcb0345cd4311f8f9e25564ba0642a"],"relays":[{"type":"hostname","hostname":"preview-relays.onyxstakepool.com","port":3001}],"metadata":{"url":"https://onyxstakepool.com/PV-ONYX1.json","hash":"c9e5e56c46dd015c183978583e6f9bc71f7abfc4dc4f949ca12a6f5aff8778fa"}},"pool1w75ukvh77hhz8c2u6rhfjvqlxyptwg37yrkddzatu99qxwwlqhd":{"id":"pool1w75ukvh77hhz8c2u6rhfjvqlxyptwg37yrkddzatu99qxwwlqhd","vrfVerificationKeyHash":"dedb7862c992b2fddfc5fe012e573aead78a0b844ca73748c9feb45a0d68666a","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1urelmc7gcf4ukdf0lakusaunerkm8h6hqzvfgx8z4sflpjc4xeg7h","owners":["f3fde3c8c26bcb352fff6dc87793c8edb3df5700989418e2ac13f0cb"],"relays":[],"metadata":{"url":"https://your_pool_website.com","hash":"6bf124f217d0e5a0a8adb1dbd8540e1334280d49ab861127868339f43b3948bf"}},"pool1w757a30j8cd6nlf5dn9q52lm5ee0fn5permvtlr7mycucpkn6c5":{"id":"pool1w757a30j8cd6nlf5dn9q52lm5ee0fn5permvtlr7mycucpkn6c5","vrfVerificationKeyHash":"6ee546ad0102c3576526fc600b4ab806d5ae3f2cd037110d4cd2505c31c05a18","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"9/500","rewardAccount":"stake_test1uzu2wh3mwjg0pua454hskmehvvte4ut9nn22tqxzuycdclq5kuf7g","owners":["b8a75e3b7490f0f3b5a56f0b6f3763179af1659cd4a580c2e130dc7c"],"relays":[{"type":"ipAddress","ipv4":"139.180.205.134","port":6000}],"metadata":{"url":"https://stakinghouse.com/poolMetaData.json","hash":"021ca91a9f24147bd20c4b7f9a4a1a329998e5fa2ac2a362b40850749ff54b1d"}},"pool10gqm62xy7caj6jhhefsl7h59kse3rv2esuh9rvx55eze2n8dlrj":{"id":"pool10gqm62xy7caj6jhhefsl7h59kse3rv2esuh9rvx55eze2n8dlrj","vrfVerificationKeyHash":"8a9f2e79f70743bdc43b20da993c90b9512849f939fb5b6c3bdad80b5ff3261e","pledge":{"lovelace":25000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqj0hyhn72p495gntxzt4g9au76ycpcvku693mpexqxdk5s7cwqed","owners":["24fb92f3f28352d1135984baa0bde7b44c070cb73458ec39300cdb52"],"relays":[{"type":"hostname","hostname":"preview.relay.beerpool.io","port":6000}],"metadata":{"url":"https://beerpool.io/poolmeta.json","hash":"3f2d006aa149ac16689d6dd5d0dbbe46d87b41d4b8a282e7621996b6a64cd819"}},"pool10d303wup90j39mmvysf0lhr2xmr3mf38y5vs577nmlq6yy8n666":{"id":"pool10d303wup90j39mmvysf0lhr2xmr3mf38y5vs577nmlq6yy8n666","vrfVerificationKeyHash":"7e076f5dd02cead70dcd2058305392b67f66b8e4e6dc553fa032b918c5ddbce0","pledge":{"lovelace":2090000000},"cost":{"lovelace":340000000},"margin":"1/25","rewardAccount":"stake_test1uqucdhr6kfvgzp2py95cqtqhvmpzswtgh8z6t2klnfr9vdgm7c25a","owners":["3986dc7ab2588105412169802c1766c2283968b9c5a5aadf9a465635"],"relays":[{"type":"hostname","hostname":"scarborough1.ddns.net","port":6000},{"type":"hostname","hostname":"scarborough1.ddns.net","port":6001},{"type":"hostname","hostname":"scarborough1.ddns.net","port":6002}],"metadata":{"url":"https://raw.githubusercontent.com/poonasor/cbcp/main/meta.json","hash":"c23b67ca0d0c470bc2816afa0f0bcf4a46374148be2bcf80a204c03dd1148d09"}},"pool105wx68zqse6v4wyx09nkqhxhmf7e0zj349pclyqsjqch7953j0x":{"id":"pool105wx68zqse6v4wyx09nkqhxhmf7e0zj349pclyqsjqch7953j0x","vrfVerificationKeyHash":"7b0cb25a2a5abf1a97523355002a173cd9ff4b2108b7ace2b4693ee406b06eef","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uz575pc99c8tr8n09u9ek3vhuys7202naetcj83l6fuzrxqpd3ml9","owners":["a9ea07052e0eb19e6f2f0b9b4597e121e53d53ee57891e3fd2782198"],"relays":[{"type":"hostname","hostname":"relay1.doctorstake.network","port":6061}],"metadata":{"url":"https://doctorstake.network/pvpoolmetadata.json","hash":"8ad1a438122bcbab46ab21bb077e818948b2d53d8c9798d0598cad713214663b"}},"pool1057njzaaz280688ppewa3df4qshspvh98njh5n4lq4cg7ntcsyj":{"id":"pool1057njzaaz280688ppewa3df4qshspvh98njh5n4lq4cg7ntcsyj","vrfVerificationKeyHash":"a63ae2342ab8c541978c1f12f0a2338b78b1486c9c6fcdc5d516df4f08bbd93f","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqmeldflttkgjsjelhzxmznfklc2d8awc9g2afs07m55kfcv70208","owners":["379fb53f5aec894259fdc46d8a69b7f0a69faec150aea60ff6e94b27"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/RSPO2","hash":"170ccb211dcc6ca0074b6f36077799a40a1d5aa421066feb09a5aa60692e9db0"}},"pool10cpz0zepq23hm6lrk8vgnsdwl772lasq9caaemvw9kh9ktxqygk":{"id":"pool10cpz0zepq23hm6lrk8vgnsdwl772lasq9caaemvw9kh9ktxqygk","vrfVerificationKeyHash":"d203f215f4ebd6374ca67745a4d7ca99caff1b1b364cc630d18519e5ddb118ac","pledge":{"lovelace":2000000000},"cost":{"lovelace":340000000},"margin":"3/100","rewardAccount":"stake_test1uzp6ykjc52zfcx5a5xqcxdwv20s66y0pqmzpn4pczuqpzqs83gzya","owners":["83a25a58a2849c1a9da1818335cc53e1ad11e106c419d43817001102"],"relays":[{"type":"hostname","hostname":"esq.ddns.net","port":6010},{"type":"hostname","hostname":"esq.ddns.net","port":6011}],"metadata":{"url":"https://raw.githubusercontent.com/bspdefi/esq/master/meta","hash":"7ae1ee1e5ad1645a9f8ee5bde677cbddafe60bcb1d014e655451ab5777aec7f7"}},"pool10c40pnzz3e00kuej05xfcs2ptkekhys48q7qc4jjcsysypj46qv":{"id":"pool10c40pnzz3e00kuej05xfcs2ptkekhys48q7qc4jjcsysypj46qv","vrfVerificationKeyHash":"904c35106259f1c80add13381d730f8bf6291499b9df48dd19a930d0ab865093","pledge":{"lovelace":8000000},"cost":{"lovelace":340000000},"margin":"3/20","rewardAccount":"stake_test1uqk6t7lajwssrzer6xjarc0n78y26d7p3lswnzrnnegng5ggr5lhm","owners":["2da5fbfd93a1018b23d1a5d1e1f3f1c8ad37c18fe0e988739e513451"],"relays":[{"type":"hostname","hostname":"preview.seaside-staking.best","port":18000}],"metadata":{"url":"https://raw.githubusercontent.com/Seaside-Staking/m/main/m.json","hash":"d843ac7c8ab3a17fe28d5a68c975dc846fe87479364bcff7dd3b30e5c442ca07"}},"pool106rnmvjt0n27y34py0qytashgm04v4hlqurp3w28z789v8scxat":{"id":"pool106rnmvjt0n27y34py0qytashgm04v4hlqurp3w28z789v8scxat","vrfVerificationKeyHash":"482a895958b40cb9b00aa0069ded71dc7516c203e8b30d3c9993d7a3e50d47f6","pledge":{"lovelace":10000000000},"cost":{"lovelace":345000000},"margin":"3/50","rewardAccount":"stake_test1ur8xh997mc3p7vduu0ufkm3wda6dan9wxv3zz4rhguzglqs3elq2d","owners":["ce6b94bede221f31bce3f89b6e2e6f74deccae332221547747048f82"],"relays":[{"type":"ipAddress","ipv4":"190.225.246.141","port":6000}],"metadata":{"url":"https://t.ly/QCIeZ","hash":"5dba9fe7cd4be8e0aebea2012090d3f0f5dcb6f14f86b2a9aa0596b568763bb1"}},"pool10u9jtq8xewg3x80fulh7tuucktckfqzm9h38lz3ldp64y57fku0":{"id":"pool10u9jtq8xewg3x80fulh7tuucktckfqzm9h38lz3ldp64y57fku0","vrfVerificationKeyHash":"2c1baf122a9eb546c89b8cd975461cf2a82fc0ef370cb53459e24d39ca852c4e","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1upq35kyukearpcp58waywdpxxwc3k8kt75cs05mz3mssm6g7ac95u","owners":["411a589cb67a30e0343bba47342633b11b1ecbf53107d3628ee10de9"],"relays":[{"type":"ipAddress","ipv4":"13.229.226.159","port":3001}],"metadata":{"url":"https://git.io/JJWdJ","hash":"d5688399cc3e9c839a21d4ae577e1e7ac4de2e97f54cc05b228e4b53bc6fd52d"}},"pool1srdhn8v6ly36vdvvzthjkv6jjp7wqnzated6unxujrmzkqn40hm":{"id":"pool1srdhn8v6ly36vdvvzthjkv6jjp7wqnzated6unxujrmzkqn40hm","vrfVerificationKeyHash":"8b69b1e8752c05884f3356cf375b648f62110997de4bb5f60f7ee2a75153b115","pledge":{"lovelace":100000000},"cost":{"lovelace":345000000},"margin":"3/20","rewardAccount":"stake_test1upzd8a7wtfwfumdlnf95shwezqg6hpqcvuah8t372atntas9rpfa6","owners":["44d3f7ce5a5c9e6dbf9a4b485dd91011ab8418673b73ae3e575735f6"],"relays":[{"type":"hostname","hostname":"cbfr.ddns.net","port":6000}],"metadata":{"url":"https://cardanoblockchain.fr/md.json","hash":"b29d5f3120ef7dd8cfbbf7204e5c923a6a21ae821f6870abb374a7adaedb76a4"}},"pool1stkzkvxqcd0vx0trg34wjntvs94kykk3260p6lrqsp8fjn8zqf5":{"id":"pool1stkzkvxqcd0vx0trg34wjntvs94kykk3260p6lrqsp8fjn8zqf5","vrfVerificationKeyHash":"c068cab82739462b7f5c3c937105e9194e09d6aba368c3ebdef1a235bca1d450","pledge":{"lovelace":1},"cost":{"lovelace":341000000},"margin":"9/10","rewardAccount":"stake_test1upps8qhch0n9a79fms75tgtxrvutt6qzj0lktz0fa7evyssnnpavx","owners":["31888329dde5e0bf984d564311c8d1f409212227301c6e63d9a0c80b","430382f8bbe65ef8a9dc3d45a1661b38b5e80293ff6589e9efb2c242"],"relays":[],"metadata":{"url":"https://www.where_metadata_file_is_located.com","hash":"767a3a2606485fd86800173f6878b387ab908523019e2b181b48196b41114db4"}},"pool1s337lucxxrhl8tz8c3r6c4crk784xtga225w3uh2tm0w2kqf0l9":{"id":"pool1s337lucxxrhl8tz8c3r6c4crk784xtga225w3uh2tm0w2kqf0l9","vrfVerificationKeyHash":"a34e2815232397c8680656eda7bb0a7f47531715a083e68432fd18c9a03049e8","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1urp5muju83v5853rwpe7g7yt7u8la35uqpa08ym07ht7jqqymvhfn","owners":["c34df25c3c5943d2237073e4788bf70ffec69c007af3936ff5d7e900"],"relays":[{"type":"ipAddress","ipv4":"69.244.216.147","port":6000}],"metadata":{"url":"https://arcadiastakepool.com/INDGO.metadata.json","hash":"874b5cffdb3cb0720d82802bfc9b68446d858d852dd7694be43a291000fdadbe"}},"pool1sj3gnahsms73uxxu43rgwczdw596en7dtsfcqf6297vzgcedquv":{"id":"pool1sj3gnahsms73uxxu43rgwczdw596en7dtsfcqf6297vzgcedquv","vrfVerificationKeyHash":"e8c4df26e49c8f3c7a033297fffb3732f54563e89e5db9ef812380eb708a1733","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"3/100","rewardAccount":"stake_test1up5zw8rhwj7ew09ggqtzdrrlg77xq3et7627wegaylgt5fc2lvmw7","owners":["68271c7774bd973ca84016268c7f47bc60472bf695e7651d27d0ba27"],"relays":[{"type":"ipAddress","ipv4":"5.12.45.138","port":1337}],"metadata":{"url":"https://tinyurl.com/mpde34ve","hash":"cb74d28b4cacd5153c146fb2bc5eaf3428d87db172ef4e8efb63575bb8b5e316"}},"pool1s5c2wws3s0trn7agdrwfgz3knq37pule65knyxh0s0dhkdvhn3h":{"id":"pool1s5c2wws3s0trn7agdrwfgz3knq37pule65knyxh0s0dhkdvhn3h","vrfVerificationKeyHash":"e57ecb6a02223c6e8ee503c94929947462fdd2acdad2190360478274a95d6bb1","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/25","rewardAccount":"stake_test1urj7dmqqqfd6qsl8638ezh3zu7lh0cjsfc92q2uf2d2calg458h8e","owners":["e5e6ec00025ba043e7d44f915e22e7bf77e2504e0aa02b8953558efd"],"relays":[{"type":"hostname","hostname":"0c563fdf.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://0c563fdf.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1sk8n2v844jgpwzvpd4eze374pfvygzcrqlld2mfzx484yrtq74l":{"id":"pool1sk8n2v844jgpwzvpd4eze374pfvygzcrqlld2mfzx484yrtq74l","vrfVerificationKeyHash":"1cbfd07a6145d0d2859c4d114f7e71cb5b9fc7e29cbfa37a393db2637241ce92","pledge":{"lovelace":9000000000},"cost":{"lovelace":400000000},"margin":"0/1","rewardAccount":"stake_test1uqza4tpx4698h0w793fjhtnqh4amhyfcftyx78h54q2wh0qgq074z","owners":["05daac26ae8a7bbdde2c532bae60bd7bbb91384ac86f1ef4a814ebbc"],"relays":[{"type":"hostname","hostname":"relay1.dynip.org","port":28000}],"metadata":{"url":"http://panyvino.com","hash":"9ac046260b09e2befc7addb05b469f90279338821285da90f5cc6e8cb4c5ab15"}},"pool13q0eh32ptwmns8wyket34dnzal6jwltc6audq4s5ehcdg9e7xvs":{"id":"pool13q0eh32ptwmns8wyket34dnzal6jwltc6audq4s5ehcdg9e7xvs","vrfVerificationKeyHash":"66cf87b05688c2872b17f57da72550758a8cd23097484f68803b8f250d9f90bc","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uq90sudgsaa0wj4z27yeeeggwpjyzh6w2kxvujffcax0llc8aqm32","owners":["0af871a8877af74aa257899ce5087064415f4e558cce4929c74cffff"],"relays":[{"type":"ipAddress","ipv4":"127.0.0.1","port":6000}],"metadata":{"url":"https://raw.githubusercontent.com/politikoz/p/master/p.json","hash":"0321dff086209d0f90a1804199e4c296e91b2bbc6fdbb596af11a51c4d1d2c4f"}},"pool13zafxlpfgymf474uv52qt557z5k5frn9p83yr55zp267wj5mpu4":{"id":"pool13zafxlpfgymf474uv52qt557z5k5frn9p83yr55zp267wj5mpu4","vrfVerificationKeyHash":"628980b886a274e43a09810a91f8a1e1d8241a8c67ddf51e78c8efff1236698a","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1ur0vznanca5kzcwmjyscudf6f38wal8qxcr4nkefdh089mg2kg7lh","owners":["dec14fb3c7696161db91218e353a4c4eeefce0360759db296dde72ed"],"relays":[{"type":"hostname","hostname":"mithril-signer-2.pre-release-preview.api.mithril.network","port":9092}],"metadata":{"url":"https://tinyurl.com/2fej7w5a","hash":"85212d92b197fa7402e0047ed2f2411cabfab4ad1ee54201f5043c0a0fcbaeca"}},"pool13rh3005usjnr7ks76llpn07p0z4dxnxzp8aj33lnncaawfp9vn6":{"id":"pool13rh3005usjnr7ks76llpn07p0z4dxnxzp8aj33lnncaawfp9vn6","vrfVerificationKeyHash":"9ab23eba9fbe7912061f4e2dbc1a4f98ea684156f2811737452506c70cf54e44","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uq5j484c9yd0v2836knjpyldgpy3havq7252xjlyhd2kt2qfcesug","owners":["292a9eb8291af628f1d5a72093ed40491bf580f2a8a34be4bb5565a8"],"relays":[{"type":"hostname","hostname":"alpha.relays.preview.mochipool.com","port":7777}],"metadata":{"url":"https://preview.mochipool.com/poolmeta.json","hash":"96e877b9c2852f47a31570794f4845c3cf9c5e2a78687129a770d2c7768efd62"}},"pool1397kpa7ylzg4lqrmj3xr28xzq2548c8lafw90qyxvucsslap03v":{"id":"pool1397kpa7ylzg4lqrmj3xr28xzq2548c8lafw90qyxvucsslap03v","vrfVerificationKeyHash":"9381a0f5511d5f033eb8b707ae620e038e6c8abca7f6d0200331cbe2c7b3cb7e","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1ur2wt3rv5sty3eh6ge9fcxapn0v4ytne06tvdvg8vlv7y8cqvs5eh","owners":["d4e5c46ca41648e6fa464a9c1ba19bd9522e797e96c6b10767d9e21f"],"relays":[{"type":"hostname","hostname":"relay1.preview.stakepool.quebec","port":4000}],"metadata":{"url":"https://qcpol.stakepool.quebec/poolMetaData.json","hash":"ca053fef4b28242ebbdec5bfe99fdcd0ce37927a281dbfd3173f09a59a7a8432"}},"pool13gsw9kvuepwhm8dfw7g2a2fwthxrwa088yq5xjaf39hqsekhqsy":{"id":"pool13gsw9kvuepwhm8dfw7g2a2fwthxrwa088yq5xjaf39hqsekhqsy","vrfVerificationKeyHash":"c1cc951ff3f672f20e31ae5bce743ebef7cf1eed6594c2842cf76d29d6d91f09","pledge":{"lovelace":1},"cost":{"lovelace":341000000},"margin":"9/10","rewardAccount":"stake_test1uqh2r3mmdwgqqzjc3fqtfgx3a02tlx6dvjs6t56aeyqnnds9xydza","owners":["2ea1c77b6b90000a588a40b4a0d1ebd4bf9b4d64a1a5d35dc90139b6","d9cabfbd20d5e0250f063fc138f1c7dc401c1a84cf418059f4b3d5fa"],"relays":[],"metadata":{"url":"https://www.where_metadata_file_is_located.com","hash":"1cc405454be71cd728d3842d30ba187d5ea3287d05056e62df4a90f87b579891"}},"pool13vuxg9gw3fftvfg56xwl5rq82nqtjhhkeacxtg0jgqlfup9qz66":{"id":"pool13vuxg9gw3fftvfg56xwl5rq82nqtjhhkeacxtg0jgqlfup9qz66","vrfVerificationKeyHash":"96fd4b5bbeedf7fb46010d970875c434fc59ceecf566d240dd88489421ae3161","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/1","rewardAccount":"stake_test1up6hq4rnpfmykas4p3f6kytpuqzn0s2p3xwcegng9ysn0egzcqrr9","owners":["757054730a764b76150c53ab1161e00537c141899d8ca268292137e5"],"relays":[{"type":"hostname","hostname":"cardano-relay.int.t-dx.com","port":3000}],"metadata":{"url":"https://adastakepool.t-dx.com/test.json","hash":"20c5dfe0fc1aa2190ec6e344523adbbce96a03edd47f0009a40dca1fe4f260cd"}},"pool1jx2uun9v45gtnlkq83xj6w4chy8rl5g78qqd026e0w89wt4vq9s":{"id":"pool1jx2uun9v45gtnlkq83xj6w4chy8rl5g78qqd026e0w89wt4vq9s","vrfVerificationKeyHash":"d9d2fae43a1c6b3efa0ee48142292e4b2a864150e8030f1fedf2115a60bd0442","pledge":{"lovelace":15000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1up4l9hjwtqjwgx3n25q76tw757lagm20f6zk3dc9wmmrjeq0c0s3k","owners":["6bf2de4e5824e41a335501ed2ddea7bfd46d4f4e8568b70576f63964"],"relays":[{"type":"hostname","hostname":"koios-preview.themorphium.io","port":6969}],"metadata":{"url":"https://bit.ly/310ytob","hash":"1f71674f2483c9cdc3c65c77a910dd432d0ae9026157584e34380fdad3a6f44b"}},"pool1jsa3rv0dqtkv2dv2rcx349yfx6rxqyvrnvdye4ps3wxyws6q95m":{"id":"pool1jsa3rv0dqtkv2dv2rcx349yfx6rxqyvrnvdye4ps3wxyws6q95m","vrfVerificationKeyHash":"4c75e85016f939ff51b56b9e676ac7b164f36bc09f68782991c000ad54ef55e5","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1upq49hkcwpayt9dfwe3sfz94t32zqypytdp4lux7fh0uhwclxwzmm","owners":["4152ded8707a4595a976630488b55c542010245b435ff0de4ddfcbbb"],"relays":[{"type":"hostname","hostname":"cardano-preview-relay-1.syn.pizza","port":30800},{"type":"hostname","hostname":"cardano-preview-relay-2.syn.pizza","port":30800},{"type":"hostname","hostname":"cardano-preview-relay-3.syn.pizza","port":30800}],"metadata":{"url":"shorturl.at/acKO0","hash":"acba1a147fbce589cf1d556097b19e441fd2506f86417db03e5cdc06395c06ab"}},"pool1j3x329u0uxh9s9vjvsad9kx37tzal8gndz6ttxumcz4nw947djw":{"id":"pool1j3x329u0uxh9s9vjvsad9kx37tzal8gndz6ttxumcz4nw947djw","vrfVerificationKeyHash":"dccaf70188440911259f798f29caec271cb561d250fcdbe56b9eb0e3a73a12f9","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1upvzzxmzr02kw529cna76e9aga4udj7x45crxx83z2zgvqgu754de","owners":["58211b621bd5675145c4fbed64bd476bc6cbc6ad303318f112848601"],"relays":[{"type":"hostname","hostname":"relay01.preview.junglestakepool.com","port":3001}],"metadata":{"url":"https://csouza.me/jp-p.json","hash":"7fdeea9ed970f2e5eb06a7a8c272c84ce2ca2f6a48ab5912b75f25346a0acbf6"}},"pool1jnakc0ghqgu0x3ayg3yyut7hmm3f46g8ssrh4hkeaqz7vtylv84":{"id":"pool1jnakc0ghqgu0x3ayg3yyut7hmm3f46g8ssrh4hkeaqz7vtylv84","vrfVerificationKeyHash":"5d6cfbf6cb00aef9009058eec7e6a2aaa4f341d8ff0862a6cc2840c308a2f8b5","pledge":{"lovelace":50000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uzd3kkuwvul6ydz869tp8fym6602y24wqww7z5qtc2a9pnst74u6p","owners":["9b1b5b8e673fa23447d15613a49bd69ea22aae039de1500bc2ba50ce"],"relays":[],"metadata":{"url":"https://foo.bat/poolmeta.json","hash":"16ccef737d542fcc0ee71f8ed13526c7d7cd76858326cdd7ca417ab93e889bbc"}},"pool1n935yzlmu7528fx4qjf2gak0cdv2nune9cku730zg7vh707rnnd":{"id":"pool1n935yzlmu7528fx4qjf2gak0cdv2nune9cku730zg7vh707rnnd","vrfVerificationKeyHash":"829ee2ddb2984b5e23c93a8b67a7b7aa7af02da2340177ae386d54d8c7ad42ee","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/40","rewardAccount":"stake_test1uzflds3zydwqeqk28qy97zwwum7v862vm0uh4ll6uxkxrts92gtm7","owners":["93f6c222235c0c82ca38085f09cee6fcc3e94cdbf97afffae1ac61ae"],"relays":[{"type":"hostname","hostname":"pv-relays.digitalfortress.online","port":8001}],"metadata":{"url":"https://digitalfortress.online/digi3-pv.json","hash":"6588af1eb497556ea55193a3e0cc15686b95ac38695d42417ccc696063e8b21b"}},"pool1ntts25w3wvt7gjrxs58esflkge8ssel9p0l44pa3l83uqvsp5h5":{"id":"pool1ntts25w3wvt7gjrxs58esflkge8ssel9p0l44pa3l83uqvsp5h5","vrfVerificationKeyHash":"891823d960e31bb9f1fbd8c64b28771c917f46fbdc036ed29bbbef5005e780bb","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzklqrm9xmagw0t7r63mf8ce8x26yawrqcr6ux5r3x9ve5crp8sha","owners":["adf00f6536fa873d7e1ea3b49f193995a275c30607ae1a83898accd3"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSNF","hash":"8ed31aa584c62fe11967425b6596144ca7822128031d374fcc1a43e662c914f4"}},"pool1n5aacu3chuvxkm7p2mwcpdvnmkkkvpsje6mclnwj59c6x3wpghh":{"id":"pool1n5aacu3chuvxkm7p2mwcpdvnmkkkvpsje6mclnwj59c6x3wpghh","vrfVerificationKeyHash":"bad28ede267da0d5dc61af65cfa17285257d81ac106b74bd77f507a5b161498f","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/1","rewardAccount":"stake_test1upx0n32j5cne3p0n4pervdjy43j7222h656vgl2uksrxe6gxujj3l","owners":["4cf9c552a6279885f3a872363644ac65e52957d534c47d5cb4066ce9"],"relays":[{"type":"hostname","hostname":"cardano-relay.int.t-dx.com","port":3000}],"metadata":{"url":"https://bit.ly/3O7yle2","hash":"2ad5e7a64a28105e386ec12ad29c3bb6b8a28d07d69da93f11a0c99cc2f737e2"}},"pool1nk3uj4fdd6d42tx26y537xaejd76u6xyrn0ql8sr4r9tullk84y":{"id":"pool1nk3uj4fdd6d42tx26y537xaejd76u6xyrn0ql8sr4r9tullk84y","vrfVerificationKeyHash":"590be0c42cae1fa7e93ab166343a29c83237f297f6c10ea35e5c5e6cd2eb32fa","pledge":{"lovelace":1112000000},"cost":{"lovelace":413000000},"margin":"1/50","rewardAccount":"stake_test1ur9h9qtr739mhuypqmhfxvzux3g9h0tksew8w6ravaj3t8qacq6d9","owners":["c9dc49a676087ba0fb1ab1f28b209e647b4139626d732455bb7d5582","cb728163f44bbbf08106ee93305c34505bbd76865c77687d6765159c","f4cceaa5fff7b592e39519942ea8c3b823f3fee622bb3c81a5f5150f"],"relays":[{"type":"hostname","hostname":"us.netspectrum.com","port":13001}],"metadata":{"url":"http://us.netspectrum.com:13002/pool-meta-data.json","hash":"6e31d534b0d8bdde4ce9bd04ac8d7a6906b680304a3150400304c46f0f393af5"}},"pool1n6tcrkjjn7dr70e4vjmtayswl2rne947fue7w2htthaq6men4yp":{"id":"pool1n6tcrkjjn7dr70e4vjmtayswl2rne947fue7w2htthaq6men4yp","vrfVerificationKeyHash":"9792680b674d04b392cb637a223d327d7af568ef358080cea4d2e10790040f08","pledge":{"lovelace":14000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uq9f3jgmfywhgcmhtd0mv7m3qwp22ah08sd3x8s4ljylpxghkf2yx","owners":["0a98c91b491d7463775b5fb67b710382a576ef3c1b131e15fc89f099"],"relays":[{"type":"hostname","hostname":"preview.blockchainbill.lol","port":3003}],"metadata":{"url":"https://preview.blockchainbill.lol/SNSOB.metadata.json","hash":"4792d9a653baab097047724e97896697c4d1f04accd9e9d126f1786102f1e2d4"}},"pool15qlyejqxu99n2p3980wtwmne4ykzd9vn4mz7ldtncepnuh6rqeh":{"id":"pool15qlyejqxu99n2p3980wtwmne4ykzd9vn4mz7ldtncepnuh6rqeh","vrfVerificationKeyHash":"94ac627b9db9da8d083bd83a6e1e902788566b4db5ba691f5c7f12ef717ed1bf","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/be39feb0-5cba-4552-a044-68f.json","hash":"54920331d130d8949bff1fd6b3f01bc693de7d36de32fc9a29ea2ef60a65da71"}},"pool15zu40d05gy43gyyxy7svumkxyac9qy6shlpdrgyz5gh8g48qaaj":{"id":"pool15zu40d05gy43gyyxy7svumkxyac9qy6shlpdrgyz5gh8g48qaaj","vrfVerificationKeyHash":"3b18c66658a5d9dd1a2bd876f1e0b076451641c41017017ccc6b448bcf38c529","pledge":{"lovelace":70000000000},"cost":{"lovelace":4321000000},"margin":"1/25","rewardAccount":"stake_test1uqz0vs8vnxqpdcuey0qcvufn95gydj6x5g37wgy975wlfwgdhyuk4","owners":["04f640ec998016e39923c18671332d1046cb46a223e72085f51df4b9"],"relays":[{"type":"ipAddress","ipv4":"184.73.135.122","port":3002}],"metadata":{"url":"bit.ly/3Eh3p7A","hash":"9b9d00fcec79d306e3dffcc6865d4088f35b13c268e32c7a2fabb1845947f9c7"}},"pool15rneqfpzde87huszzstymzxu6f5u2jqelsaczr99e3z62dywau7":{"id":"pool15rneqfpzde87huszzstymzxu6f5u2jqelsaczr99e3z62dywau7","vrfVerificationKeyHash":"74838ee89acb2caf072cd50705f0dd0a958af9cb20ec70500ee3c2c2e800b316","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1urx0fs8j3lqfkjtmuzd64futqtucqkmlj32ufgza2xhhutgmx79n2","owners":["ccf4c0f28fc09b497be09baaa78b02f9805b7f9455c4a05d51af7e2d"],"relays":[{"type":"hostname","hostname":"gateway.adavault.com","port":4061}],"metadata":{"url":"https://adavault.com/advpreview.json","hash":"336a78f742447c0af780583059167eff24a4268dad3947373397f5ccfe6a883e"}},"pool1580a362kwnqt7v2lgun5t02u0r7dyl70x9nsy37zj46xkq8mp22":{"id":"pool1580a362kwnqt7v2lgun5t02u0r7dyl70x9nsy37zj46xkq8mp22","vrfVerificationKeyHash":"69f0a026835764345061abdd6d566ae509c1cdfa630999cdc57b5e43a6d6c6f7","pledge":{"lovelace":2000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uqnxa67e6jc4dr89kdkr0e6ucvvzucd772p9vnalrr7h0xskjsgeg","owners":["266eebd9d4b1568ce5b36c37e75cc3182e61bef282564fbf18fd779a"],"relays":[{"type":"hostname","hostname":"s2.lost-in.tech","port":3001}],"metadata":{"url":"https://cardano.lost-in.tech/LIT-Pool.metadata.json","hash":"5e30e12a869cf6f5b8c8fd2d74cccd7e0825b37719a978914877b56e50e82bf9"}},"pool152x6q0ly050yr7cnatwq0087jzwyxxlkyuch6s4xex8ljaeu0ng":{"id":"pool152x6q0ly050yr7cnatwq0087jzwyxxlkyuch6s4xex8ljaeu0ng","vrfVerificationKeyHash":"c4b14fc6e1e4a632f51e245990b0d9a75096f26ad22930df52ac06ad2dc06149","pledge":{"lovelace":5000000000},"cost":{"lovelace":170000000},"margin":"1/20","rewardAccount":"stake_test1urc970azyxew8lf0s0wdw8z5pckjxcdn63v7575v4upprks6h5yys","owners":["f05f3fa221b2e3fd2f83dcd71c540e2d2361b3d459ea7a8caf0211da"],"relays":[{"type":"hostname","hostname":"testnet-relay.xstakepool.com","port":3001}],"metadata":{"url":"https://xstakepool.com/testnet-xstakepool.json","hash":"25d14c92cd852bbe666858ba040db7d5dd0767838e604e16c12b8fb842cf89ec"}},"pool15jqsjphnxg7hcx2rvd0ryhg5xwshg7xktthj3zf70nmxx9ffjet":{"id":"pool15jqsjphnxg7hcx2rvd0ryhg5xwshg7xktthj3zf70nmxx9ffjet","vrfVerificationKeyHash":"35cf12acb20ade24b4a1b09b8b033299e0551a556519b42ca47f32511e64531e","pledge":{"lovelace":9369000000},"cost":{"lovelace":369000000},"margin":"9369/10000","rewardAccount":"stake_test1uz7ne2udchys5e3kjfzpjj2f84v63csfhhpluz80kfwegpqawzmqc","owners":["bd3cab8dc5c90a663692441949493d59a8e209bdc3fe08efb25d9404"],"relays":[{"type":"hostname","hostname":"testicles.kiwipool.org","port":9720}],"metadata":{"url":"https://bit.ly/3R870ZK","hash":"19dcf5a17af5475da21aae1046a1bdae92ebac5e06e93e8c9a41b7a844fc6af8"}},"pool15j50kmtrmy3mxm0e5dej5vka9keapqtm3gv2zq96lqgjqc6sdh3":{"id":"pool15j50kmtrmy3mxm0e5dej5vka9keapqtm3gv2zq96lqgjqc6sdh3","vrfVerificationKeyHash":"e5ae4cca1fc629ef51b88e6224dddc93d9b87eabfeee18cfc90fd7b35e396dc3","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzjqrwex060z6w0f3j87sz6cehvmw2h5hk3szz0kyth9f7sd977ss","owners":["a401bb267e9e2d39e98c8fe80b58cdd9b72af4bda30109f622ee54fa"],"relays":[],"metadata":{"url":"https://pastebin.com/raw/xDxT4v5n","hash":"da9773e26d50eea8283a80ff5b0549c28ff2ec4d64015e7532b5acc22f0c57ee"}},"pool15e04rzx0lu7hryn68l5n8n6nd9yum4rn48j64kupadc4qalulgk":{"id":"pool15e04rzx0lu7hryn68l5n8n6nd9yum4rn48j64kupadc4qalulgk","vrfVerificationKeyHash":"678c83627cbe1378f39d12b5c7bdd27a2e90358a7b80fa0cece79e39139f08b2","pledge":{"lovelace":1000000000},"cost":{"lovelace":444000000},"margin":"1/100","rewardAccount":"stake_test1up28m49ylffdnc8fwty0d5waau8udzuzv6uh0e6m0n2n5lgactsc7","owners":["547dd4a4fa52d9e0e972c8f6d1ddef0fc68b8266b977e75b7cd53a7d"],"relays":[{"type":"hostname","hostname":"ava1.sytes.net","port":6031}],"metadata":{"url":"https://avacsp.com/metadata/ava-preview-MetaData.json","hash":"c0db5e94c1dbe73a6abd0f837b8165d06709e7c02ef02ca2d7400e04ae972db5"}},"pool15ecfwjfqcc35gvpqrmut0g5hr7e0u794ywkxg5tk8rl2q4zqu9j":{"id":"pool15ecfwjfqcc35gvpqrmut0g5hr7e0u794ywkxg5tk8rl2q4zqu9j","vrfVerificationKeyHash":"c85155a3402b3d36b205b7657eb1c787f7ea9c5ed02003a39c08ebb2530453bd","pledge":{"lovelace":10000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uz5h6parv7gfk7hk3kgna07svwq5qaumrfut437965r0p4gt650jf","owners":["a97d07a367909b7af68d913ebfd0638140779b1a78bac7c5d506f0d5"],"relays":[{"type":"ipAddress","ipv4":"185.2.100.31","port":6000}],"metadata":{"url":"https://me2.do/5QGindar","hash":"13ff652f003ffde0d19c92450f89b19b056f7976f758b3e1e4f95e5ec58f10eb"}},"pool14rn9dq87dgj2z8g3lp4n0a78fewxff3gkgjkmz72ew44ym79xpp":{"id":"pool14rn9dq87dgj2z8g3lp4n0a78fewxff3gkgjkmz72ew44ym79xpp","vrfVerificationKeyHash":"3e583b72203f1659bb73653baf0e2d7850d238d4c96435eff4331060bf926801","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uz7xx6hy2xnnrmz0av0xl7qn9vdkhage7myf0nd49e7mvcg6z0smn","owners":["bc636ae451a731ec4feb1e6ff8132b1b6bf519f6c897cdb52e7db661"],"relays":[{"type":"hostname","hostname":"f7ca89d1.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://f7ca89d1.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool14fdr8cpz0qpgzkrucu2q7hst2pa3u5ssfej7kuepdq4v7lkyxg3":{"id":"pool14fdr8cpz0qpgzkrucu2q7hst2pa3u5ssfej7kuepdq4v7lkyxg3","vrfVerificationKeyHash":"896bac573601caf048566f3562e99be9c742832ad7e4527b5b1cdc330e9384c1","pledge":{"lovelace":30000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqr9uznkqeuv6e7ez79yf8us678xus3y6ac0su9d253r0eg5l4clt","owners":["065e0a760678cd67d9178a449f90d78e6e4224d770f870ad552237e5"],"relays":[{"type":"ipAddress","ipv4":"75.119.130.108","port":6000}],"metadata":{"url":"https://hamster-stake-pool.de/preview_poolmeta.json","hash":"81813b6eb7904fb8533aa51f9aebc16f14e6ade80576078b83a8b307ace6b987"}},"pool140axp85wjr7qhwtf5y9utlht6eq42n4sl8wjh6fmlu02gel0aqg":{"id":"pool140axp85wjr7qhwtf5y9utlht6eq42n4sl8wjh6fmlu02gel0aqg","vrfVerificationKeyHash":"9b0cdfd880b67152d7b808ee37f33c0e9181ebda8ecab369b239fdbfdf3ecaad","pledge":{"lovelace":45000000000},"cost":{"lovelace":170000000},"margin":"1/1","rewardAccount":"stake_test1uzyvlggps4p4c0aejtr4qqxywwp9gg9xk6f9u49s7tzcdmqstww5s","owners":["88cfa10185435c3fb992c75000c473825420a6b6925e54b0f2c586ec"],"relays":[{"type":"hostname","hostname":"adrelay.hawak.cloud","port":6000}],"metadata":{"url":"https://tinyurl.com/hawakpool","hash":"f06c26e560a1395007149ef13dc7301348a77f43f67ce9f504f0be571cc59e6e"}},"pool14cwzrv0mtr68kp44t9fn5wplk9ku20g6rv98sxggd3azg60qukm":{"id":"pool14cwzrv0mtr68kp44t9fn5wplk9ku20g6rv98sxggd3azg60qukm","vrfVerificationKeyHash":"b8b2e69a0b590af68cbf1411aad7c93c1b48346047551461ec2a2ccf9dc182d6","pledge":{"lovelace":8000000000},"cost":{"lovelace":340000000},"margin":"1/1","rewardAccount":"stake_test17r76qtu38a29387whc40a5e6da3xqrkkf87sf78kjgggals8xt5hy","owners":["69c9b2655d27e06722905f4ae9e356a18886340964baa472f29d8586"],"relays":[{"type":"hostname","hostname":"preview-node.pool.milkomeda.com","port":3001}],"metadata":{"url":"https://is.gd/Ikn7kl","hash":"8fc709584d2f7d859a902539fc28e8c9a7f6d046b8c8d89a793aad1594fbdfc2"}},"pool14u22dyym8k2g2twvgct86njg3m9cc7j2fc74yamy6672s6up7a0":{"id":"pool14u22dyym8k2g2twvgct86njg3m9cc7j2fc74yamy6672s6up7a0","vrfVerificationKeyHash":"600f54b88675a354a87bea473ac776fb2684254d55431585904b89b71ef74620","pledge":{"lovelace":200000000000},"cost":{"lovelace":170000000},"margin":"0/1","rewardAccount":"stake_test1uzpck3ssxf3cw5mxs8umex3stuf4pk5m9qyfp57ymrkc3fg0mmtsj","owners":["838b4610326387536681f9bc9a305f1350da9b280890d3c4d8ed88a5","f999c5ee8ec8de584be7f07150c00a841c8b0be6ca6acb56c2c31c43"],"relays":[{"type":"hostname","hostname":"preview.leadstakepool.com","port":3001},{"type":"hostname","hostname":"preview.leadstakepool.com","port":3002}],"metadata":{"url":"https://raw.githubusercontent.com/lead-pool/l/master/p.json","hash":"91a080cf2aa797c24efe5b26330a634209ec152a0f079ffc0b31157a6f4a6993"}},"pool14lfkzjvlp2prlwt0ykxceemhdd4ej9rc0em4xt4cnpvt2fmtg9v":{"id":"pool14lfkzjvlp2prlwt0ykxceemhdd4ej9rc0em4xt4cnpvt2fmtg9v","vrfVerificationKeyHash":"71762169bc3dfc516e39854f78e572f24d5a7ab85d42a55c1bfd4e86e0b531a7","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"19/1000","rewardAccount":"stake_test1uperlgjrwsqv0gluun7xk670lnevmlc9v3m0zxjx76p7z3q95gj3k","owners":["723fa2437400c7a3fce4fc6b6bcffcf2cdff056476f11a46f683e144"],"relays":[{"type":"ipAddress","ipv4":"184.174.32.106","port":6002}],"metadata":{"url":"https://mladenlm.github.io/poolMetadata.json","hash":"30c5b5372462def97e466b84ff8179ab80dc4deac67b61981e9db947915c8558"}},"pool1krjtqew2jg203nvnec39vt77leqyfsc8e42u4ywx534t62h9fth":{"id":"pool1krjtqew2jg203nvnec39vt77leqyfsc8e42u4ywx534t62h9fth","vrfVerificationKeyHash":"3a238800d748179b955445d9c2488125785f1e271e8d43449e292d5a7c4b7b71","pledge":{"lovelace":1000000},"cost":{"lovelace":200000000},"margin":"1/2","rewardAccount":"stake_test1upxs40dqlfrh4gkd7djhwr5qlq225c3etv66f8m0mgsahxgk45c6j","owners":["4d0abda0fa477aa2cdf365770e80f814aa62395b35a49f6fda21db99"],"relays":[{"type":"ipAddress","ipv4":"212.24.98.109","port":5333}],"metadata":{"url":"https://adawallet.io/public_files/MDS_ST_meta_v2.json","hash":"ef3aca5a37d0bc4d81c4f85da513e3565be372e9bc3ecdf6fe5cb1a5bb55bff2"}},"pool1kfzv75la3rfgrh3uly7dt5syqxf0r2n2khr7s6ylhjmnkkdfwye":{"id":"pool1kfzv75la3rfgrh3uly7dt5syqxf0r2n2khr7s6ylhjmnkkdfwye","vrfVerificationKeyHash":"0b9f2a9f73eb7d35054626b561f9b4d4d4d5040a547c0cc2beffe50829b36c93","pledge":{"lovelace":1000000000},"cost":{"lovelace":345000000},"margin":"3/25","rewardAccount":"stake_test1urgqett9quhpsjm4cygp3uf7u63tz5gzx4czf5t965xejegd67zc0","owners":["d00cad65072e184b75c11018f13ee6a2b15102357024d165d50d9965"],"relays":[{"type":"hostname","hostname":"xsecpreview.infra.getlenses.co.uk","port":3000}],"metadata":{"url":"https://tinyurl.com/bdfmuct6","hash":"afb2956e054911e178c9d5556e560155e2f663022112bc476820348d1006eb32"}},"pool1k4rdvvuhy7h927psyew9syupwddy77t4j8lc74hpgzpvv7yklwg":{"id":"pool1k4rdvvuhy7h927psyew9syupwddy77t4j8lc74hpgzpvv7yklwg","vrfVerificationKeyHash":"ff8d88fd6b39985c9ddbef0363f87ec0ae32016c62a305e2497e4b54cb161d52","pledge":{"lovelace":6000000000},"cost":{"lovelace":340000000},"margin":"3/40","rewardAccount":"stake_test1uqw2h3092ka5mctav6d07cwumxagvcm9zs2aj9g2m4n74cgcf5r9x","owners":["1cabc5e555bb4de17d669aff61dcd9ba8663651415d9150add67eae1"],"relays":[{"type":"hostname","hostname":"preview-test.ahlnet.nu","port":2102}],"metadata":{"url":"https://ahlnet.nu/pool/preview-meta.json","hash":"8f52b4840726c157c50c1b972fadb21b2f0c852e99004a48e649319218960c55"}},"pool1kkhr6m0syfgqamr3klzhj2trjd3q4vyg8trzdjxdp64nqzshwea":{"id":"pool1kkhr6m0syfgqamr3klzhj2trjd3q4vyg8trzdjxdp64nqzshwea","vrfVerificationKeyHash":"b4ea03eb58cbfa9059e0b8478f09762f002e4cebc9aae7bf6de04b9ccebb9d94","pledge":{"lovelace":100000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uzx366cdgqv9lg69y7ufw59af3y7yh9jxflnym8z8qz3pfgmef2r8","owners":["8d1d6b0d40185fa34527b89750bd4c49e25cb2327f326ce2380510a5"],"relays":[{"type":"hostname","hostname":"preview.adanorthpool.com","port":9613}],"metadata":{"url":"https://www.adanorthpool.com/ANPPREVIEW.metadata.json","hash":"e4f9a2cf26e72b93955893bbcae4a37c27c061b04ab2a8d79856350e6dc3fb26"}},"pool1kewhspt8fsxk9kx6pw2nukcrs940dkwcwh89llj233ahghexeum":{"id":"pool1kewhspt8fsxk9kx6pw2nukcrs940dkwcwh89llj233ahghexeum","vrfVerificationKeyHash":"9d009cac22c72b8200e473c71330cc5907832880a2098c1fea0affb68df5f52f","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uptdhvz442mcem2lqd3y23nlypudpdm7d32aeyn3y72d8tcs7scmy","owners":["56dbb055aab78ced5f036245467f2078d0b77e6c55dc92712794d3af","b0348c669fe3cb7446b5084a669e304dd1cff63762352e8355e14482"],"relays":[{"type":"hostname","hostname":"605691fa.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://605691fa.cardano-metadata.stagebison.net/metadata.json","hash":"c0719d1437e1bf09915b0dbfaae2e384d737e326f17d8f1ae82d6a40111a1035"}},"pool1hykgd0kw0n6vx08j8vcyu7q0q6rqkwxr7cql03vf2at9kdmlxpy":{"id":"pool1hykgd0kw0n6vx08j8vcyu7q0q6rqkwxr7cql03vf2at9kdmlxpy","vrfVerificationKeyHash":"c636a7c8aa43ee105919d24a62f0d80bdc3981de0951672e7a316cc9a0f57b74","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uz5sce2cv9kkykjqhakrvma65xhlyzt3p7n4aamexkg0jtcf54jnu","owners":["a90c6558616d625a40bf6c366fbaa1aff209710fa75ef7793590f92f"],"relays":[{"type":"hostname","hostname":"node.armadacardano.io","port":6000},{"type":"hostname","hostname":"node2.armadacardano.io","port":6000}],"metadata":{"url":"https://armadacardano.io/metadata.json","hash":"45ce75ec2304fce3afb1a8c11316cedc5a20aea417b58ca59f6ad97ea4518112"}},"pool1h2wx7wnf079jfz6vyzs9jnjczme2nlufryyw68e2fhe2x0swk3e":{"id":"pool1h2wx7wnf079jfz6vyzs9jnjczme2nlufryyw68e2fhe2x0swk3e","vrfVerificationKeyHash":"d9a1ba9598e9613974ce89526c30d70bc9763af61b86d5e28638ecfc88e837ce","pledge":{"lovelace":45000000000},"cost":{"lovelace":340000000},"margin":"1/500","rewardAccount":"stake_test1upam5e8xunaktc2qwwq3aa6wumkya75x68ce32a0dkfh60qyxhst8","owners":["7bba64e6e4fb65e14073811ef74ee6ec4efa86d1f198abaf6d937d3c"],"relays":[{"type":"ipAddress","ipv4":"159.138.55.134","port":3001},{"type":"ipAddress","ipv4":"192.168.0.105","port":3001}],"metadata":{"url":"https://raw.githubusercontent.com/mj83263/test/main/tp2.json","hash":"5ff4cd6df6afda00a70f9480b72acaa0e2271371c2e6daf89e7c53ef6192ec90"}},"pool1htdmnme5s6d824trqq33czlm82f473w04h4xghprzaj3cff53mp":{"id":"pool1htdmnme5s6d824trqq33czlm82f473w04h4xghprzaj3cff53mp","vrfVerificationKeyHash":"98a662ae890d7c2d48b8bf5fb55602c20a04d59e499d0446586189680d039a9f","pledge":{"lovelace":8000000000},"cost":{"lovelace":340000000},"margin":"1/200","rewardAccount":"stake_test1uzsapk9c9x5frdk99wqktd6udusxhe6u0qnaryxmg4cqe9clhncf4","owners":["a1d0d8b829a891b6c52b8165b75c6f206be75c7827d190db45700c97"],"relays":[{"type":"hostname","hostname":"relaynode25t.irfada.co","port":6000},{"type":"hostname","hostname":"relaynode26t.irfada.co","port":6000}],"metadata":{"url":"https://tinyurl.com/munhhxv9","hash":"dfe61ced98cfa2fd81658686ea824910f3e6a5306c89bf1bc362f54e2000927c"}},"pool1hs2ah9q0kjy8rx7rf7qdavhmxznnesfctlu8lkqzukfdsp9kfcp":{"id":"pool1hs2ah9q0kjy8rx7rf7qdavhmxznnesfctlu8lkqzukfdsp9kfcp","vrfVerificationKeyHash":"9cd4eab04ea0073076b33c6501787d932edd031f49daa0c0fdecc4774a2ef977","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uzuahv2t7qhvgshhsnj47xhmh32n6hhpgjk5e296kwyr8lq5fvd5s","owners":["b9dbb14bf02ec442f784e55f1afbbc553d5ee144ad4ca8bab38833fc"],"relays":[{"type":"hostname","hostname":"c-pv-rn01.liv.io","port":30002},{"type":"hostname","hostname":"c-pv-rn02.liv.io","port":30002}],"metadata":{"url":"https://liv.io/poolMetaData.json","hash":"66309fa9a6726eaf1ede2bd73b1ffe02dcbc0f966730221b0cbc71702bb1742a"}},"pool1h7c2jq3pmvn3f8jht4ulhgha3h60k6syu3rw6pmkfrhqs9j7m0l":{"id":"pool1h7c2jq3pmvn3f8jht4ulhgha3h60k6syu3rw6pmkfrhqs9j7m0l","vrfVerificationKeyHash":"941c6ac6afb53de451e95ec203d6093ce6c8ef0fd58e8a78e406ac3bb668c796","pledge":{"lovelace":1000000000000},"cost":{"lovelace":340000000},"margin":"1/25","rewardAccount":"stake_test1uqkn6dhxl7mg542afm858jxudl7cwd9f0gys3qkuh3al5eq5zzhss","owners":["2d3d36e6ffb68a555d4ecf43c8dc6ffd8734a97a090882dcbc7bfa64"],"relays":[{"type":"hostname","hostname":"relay.test.lidonation.com","port":3010}],"metadata":{"url":"https://test.lidonation.com/metadata.json","hash":"edc82ecfb1cabeb15cb122bd6a65b6de6006e2201617e3c8dfdf8cc652baacfe"}},"pool1hlgaznlja8jau6wg3u4curvs7ng6yhxaxa2urp7qylxkc2e4pjk":{"id":"pool1hlgaznlja8jau6wg3u4curvs7ng6yhxaxa2urp7qylxkc2e4pjk","vrfVerificationKeyHash":"f727fdc0e656c1faea14c812b9cf7648795f5b606f6428f6e8dd68d0f729514d","pledge":{"lovelace":4000000000},"cost":{"lovelace":340000000},"margin":"3/200","rewardAccount":"stake_test1uzpp6e09x70k4wu4ccwujgwfdjwluf4nzyekkaa2l0dlgjq07ax2w","owners":["821d65e5379f6abb95c61dc921c96c9dfe26b311336b77aafbdbf448"],"relays":[{"type":"ipAddress","ipv4":"51.255.82.47","port":6000}],"metadata":{"url":"http://config.ada-staking.fr/metadatas_preview.json","hash":"86fd4e3118fe835008a699f339ec111ac35682de1d449b15255544b1570b601f"}},"pool1cyqx4ecp36gkca407ml2hf9pqauz3d3qchkpxndlnvqp60j2339":{"id":"pool1cyqx4ecp36gkca407ml2hf9pqauz3d3qchkpxndlnvqp60j2339","vrfVerificationKeyHash":"1764a62306c3f165ab2a890709c9b5c17559cfbadf77923948d3dc8fa41bcdf6","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1up0me0jesha4wvnnn5j28tdkdqpk0ufdwa8fk9wdl4q9kts8rpqh9","owners":["5fbcbe5985fb5732739d24a3adb6680367f12d774e9b15cdfd405b2e"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSNG","hash":"de0fcdf1da51661d27fbf97ce6e78d71a038e5582e90659eb216c19d66738cfa"}},"pool1cf88r4wgq4m2pa7phq6hevg798n0gfkteeq52vcvum8hc5czxas":{"id":"pool1cf88r4wgq4m2pa7phq6hevg798n0gfkteeq52vcvum8hc5czxas","vrfVerificationKeyHash":"fc012f1cd6346ba64f1faed6ad9676769d1cb12c46901c8b2c12f6bb71d90aed","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1up536agqy6nr5u0gpddwjlx5m2r9sevhd4nwp5su8ktg4wqlrp2vc","owners":["691d750026a63a71e80b5ae97cd4da865865976d66e0d21c3d968ab8"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/RSPO3","hash":"07945a19eb6413ce7b8523495d7670c3d2b6ce90f75a54c023845a87fdde2fb3"}},"pool1cv9fr477zeznqrk8uxa5hh72tsjukkuqtnet7wgyxx3rq700kl5":{"id":"pool1cv9fr477zeznqrk8uxa5hh72tsjukkuqtnet7wgyxx3rq700kl5","vrfVerificationKeyHash":"b1ab6692d0af93c5e61e99f4ba39a5a10352b729fe370145e35e5eb39bc53b13","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1upv2favfz6vqs782yg9kc8sxdely9g3dqd4w4v492jw6hvcypj9hu","owners":["58a4f58916980878ea220b6c1e066e7e42a22d036aeab2a5549dabb3"],"relays":[{"type":"hostname","hostname":"previewrelay.stakepoolcentral.com","port":15654}],"metadata":{"url":"https://bi-preview.stakepoolcentral.com/CENT.preview.json","hash":"fb6a7bdf6c6827d16c33b1173cb436897cdad7a3fe399c01813797180fe97db3"}},"pool1cwsvslzd5y2rp9qt6ne6hhrwdxuweupdfy243erke3euytp7j5m":{"id":"pool1cwsvslzd5y2rp9qt6ne6hhrwdxuweupdfy243erke3euytp7j5m","vrfVerificationKeyHash":"654ed6220e9cc5fd5ceb71f1bc1b4cf34e1826eea3261ba595cc290e9469a79f","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"1/1","rewardAccount":"stake_test1urk948umhqw2z6c95r0dhdr62898urgf46y2plpzre2fe7qzntp6f","owners":["ec5a9f9bb81ca16b05a0dedbb47a51ca7e0d09ae88a0fc221e549cf8"],"relays":[{"type":"hostname","hostname":"preview.relays.liqwid.finance","port":3001}],"metadata":{"url":"https://lqwdpool.s3.amazonaws.com/metadata","hash":"9af8ffcc01e792191a220e45b1342178ccd65ac6ce721ee3c37c3614ce18c2a4"}},"pool1ceact5c2pt4ynn5nwv2rqm04krzsm4jd26r468mdqannv5crxd6":{"id":"pool1ceact5c2pt4ynn5nwv2rqm04krzsm4jd26r468mdqannv5crxd6","vrfVerificationKeyHash":"c2075042ece1ad9b41000c53598349ec2735c649f456f3836901ade5b31eca10","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uq0r8cvtjnz8y0kw4x09rv3fk8gev98gp5fg28u0zk0kaqgwxl5eq","owners":["1e33e18b94c4723ecea99e51b229b1d19614e80d12851f8f159f6e81"],"relays":[{"type":"hostname","hostname":"9caee114.cardano-relay.stagebison.net","port":1338}],"metadata":{"url":"https://9caee114.cardano-metadata.stagebison.net/metadata.json","hash":"985e4efc3b6a10c375968c1de0a138fc75bd357d3e1ffa581aafbd96a43d37a5"}},"pool1cuxthc4lyescly7lq4tgvf72td75l2hrm8zmks2qnmffkqvpsyn":{"id":"pool1cuxthc4lyescly7lq4tgvf72td75l2hrm8zmks2qnmffkqvpsyn","vrfVerificationKeyHash":"46b2dca70839f8515b2d65cb7abe6c251aef8f0221025dc30c4b63af7bf355e3","pledge":{"lovelace":50000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1upedrdplfruuaplyaet524e4x6nxus2z3hss8gnwep62eqqsq4mym","owners":["72d1b43f48f9ce87e4ee5745573536a66e41428de103a26ec874ac80"],"relays":[{"type":"hostname","hostname":"172.30.100.12","port":6000},{"type":"hostname","hostname":"172.30.100.10","port":6000}],"metadata":{"url":"https://tinyurl.com/DVJMDG","hash":"56949b92b173ecdc5852d9fe5946411f384a1ef1659a26840f4467ffd1a62fb0"}},"pool1epeq86e8vuuar86kk9hgtn6ty3yzcjun5nrm2xyysfl07fsrwc4":{"id":"pool1epeq86e8vuuar86kk9hgtn6ty3yzcjun5nrm2xyysfl07fsrwc4","vrfVerificationKeyHash":"09f8f0bcd8dba98f8d0d5cf76624610eda099fcfd813df66b43ce23a3be7e35f","pledge":{"lovelace":9000000},"cost":{"lovelace":340000000},"margin":"9/100","rewardAccount":"stake_test1uza6wgdaec5kulpd5ft2xtchcfhgry6te8az8h5r2xzp7kgxc3hvp","owners":["bba721bdce296e7c2da256a32f17c26e81934bc9fa23de8351841f59"],"relays":[{"type":"ipAddress","ipv4":"127.0.0.1","port":80}],"metadata":{"url":"https://foo.bat/poolmeta.json","hash":"47fa1c955765325622a3d1bcff79d78ce719a8823ee3169998348cf585edc469"}},"pool1ez9khv2gx82mqrnj0qenr47dy8grecm8qkkrtnn69wzzwkvc9l6":{"id":"pool1ez9khv2gx82mqrnj0qenr47dy8grecm8qkkrtnn69wzzwkvc9l6","vrfVerificationKeyHash":"30ff40541e2c155acfcdfa844069e705dee1ae8eef9bdcde22de465de6fa8fdd","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"3/20","rewardAccount":"stake_test1up3pxcv3etz7d8h5e6csly3yggnmnwrgqrvhhjsqak7828ck4ytys","owners":["62136191cac5e69ef4ceb10f92244227b9b86800d97bca00edbc751f"],"relays":[{"type":"hostname","hostname":"c-pv-rn01.liv.io","port":30002},{"type":"hostname","hostname":"c-pv-rn02.liv.io","port":30002}],"metadata":{"url":"https://liv.io/poolMetaData.json","hash":"66309fa9a6726eaf1ede2bd73b1ffe02dcbc0f966730221b0cbc71702bb1742a"}},"pool1erufgazt3scqvjvsqv7ehayfscj93llzu3e6lknh2m6d5xcfjdr":{"id":"pool1erufgazt3scqvjvsqv7ehayfscj93llzu3e6lknh2m6d5xcfjdr","vrfVerificationKeyHash":"ee04d2c090ad7cfb572b32776eb694f336b2e26048a0423de1d66241deadeac8","pledge":{"lovelace":19000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqevz4f8d5z9pv7jx8rtlvxascwqx7v6ygrmf4kj2vta43q7kjpzk","owners":["32c155276d0450b3d231c6bfb0dd861c03799a2207b4d6d25317dac4"],"relays":[{"type":"hostname","hostname":"preview-testnet-relay.cardanistas.io","port":3001}],"metadata":{"url":"https://stakepool.page.link/cards-preview-testnet-metadata","hash":"ce0eb65620e544b8614517f495fd0bd371a6a5ee70c3ddc6b210c3dff0a3f8b3"}},"pool1erajsxw8ejry8flz6gwsd885dmx9uv6k9wd8dl5vme7cxrzv9hl":{"id":"pool1erajsxw8ejry8flz6gwsd885dmx9uv6k9wd8dl5vme7cxrzv9hl","vrfVerificationKeyHash":"b327686ee38df980c15a5c9f9eeefeb5a03f5079531805cfead05a33739d23b4","pledge":{"lovelace":5000000000},"cost":{"lovelace":340000000},"margin":"3/20","rewardAccount":"stake_test1upnsszyt4g7wtl4s729kqysjph9mpv9f8hy5tk2srxr5swqnl38cl","owners":["6708088baa3ce5feb0f28b6012120dcbb0b0a93dc945d95019874838"],"relays":[{"type":"hostname","hostname":"g5.datadyne.earth","port":3005}],"metadata":{"url":"http://datadyne.earth/cardano/dataDyneCardanoPool.json","hash":"23f3b6da129943598cc39d57de2569810e5564558f1db8ab0bb80bd85194b3c4"}},"pool1e8sfzuvrpqm9t42e4tekfeygs9pk8uwja0qewxxpeyxwg5hvvcn":{"id":"pool1e8sfzuvrpqm9t42e4tekfeygs9pk8uwja0qewxxpeyxwg5hvvcn","vrfVerificationKeyHash":"a6b8428cc8ef74f793adb8469e2a36b7ae063186f0b314f837397d71ae6bf974","pledge":{"lovelace":15000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1ur6paxqxatgnvwjedszllqn54wd0t0xu9tq7lj8qjx4py2su8z4zw","owners":["f41e9806ead1363a596c05ff8274ab9af5bcdc2ac1efc8e091aa122a"],"relays":[{"type":"hostname","hostname":"75.119.159.254","port":3001}],"metadata":{"url":"https://raw.githubusercontent.com/TurboEgon/ada/master/md.json","hash":"9e02e9270ef85cc9415878d079a9237f2d55a924438b5cbf03850d894130d7b2"}},"pool1et694n52r9scvec3n32jej0juh4za6xucaj3zy822wajkegmdh3":{"id":"pool1et694n52r9scvec3n32jej0juh4za6xucaj3zy822wajkegmdh3","vrfVerificationKeyHash":"7d96da7d962d2bf0b372f5626e34b124bd38e8996d1d8880ec902b12b3a6a47d","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1ursgmmafa26uqmacut9k9ewgxrja60gv5gxlevrgevmx28gm8c59h","owners":["e6f0fb6aa711a3ce9f89d3d85d75e9215d990586b899aa80837744ef"],"relays":[{"type":"ipAddress","ipv4":"1.1.1.1","port":11}],"metadata":{"url":"http://baidu.com/","hash":"5418650706007cbfb0f784cb6a4a274c3c00ef4345e76cb053c3046cf481e74b"}},"pool1ewxvkzqnvfzaf48092n4t2crdventhxhtmpvydxnsnj322qc47c":{"id":"pool1ewxvkzqnvfzaf48092n4t2crdventhxhtmpvydxnsnj322qc47c","vrfVerificationKeyHash":"9842080c08dfce55e9d6758b9c57c51a83003c29920cbb94a828399f2472bc64","pledge":{"lovelace":5000000000},"cost":{"lovelace":500000000},"margin":"392699/12500000","rewardAccount":"stake_test1upp6fr9evvqcprgr57vq0u9mdwxck2whdlyjhve750xl29gu5zexv","owners":["43a48cb96301808d03a79807f0bb6b8d8b29d76fc92bb33ea3cdf515"],"relays":[{"type":"hostname","hostname":"preview.canadastakes.ca","port":5002}],"metadata":{"url":"https://www.canadastakes.ca/metadata/can1-preview-metadata.json","hash":"756e0c7c2640e526c055d0fe4eb453c0c2e2c3af85138a99a8e0d74ef9c0eeb3"}},"pool1ewed82f7tdluggkj2qsrajyjakzqewj3e37p25cddurtwejl6tz":{"id":"pool1ewed82f7tdluggkj2qsrajyjakzqewj3e37p25cddurtwejl6tz","vrfVerificationKeyHash":"dca941225e309e0aa7a4ca3a2f49280fa860098a17ab231a5e9b4347a0f2d241","pledge":{"lovelace":167369000000},"cost":{"lovelace":369000000},"margin":"9369/10000","rewardAccount":"stake_test1uzn99jy8eud3f4jp7pg6natdt3mn76mn33fx5na0a9utk7q03ttkv","owners":["a652c887cf1b14d641f051a9f56d5c773f6b738c526a4fafe978bb78"],"relays":[{"type":"hostname","hostname":"testicles.kiwipool.org","port":9720}],"metadata":{"url":"https://bit.ly/3R870ZK","hash":"19dcf5a17af5475da21aae1046a1bdae92ebac5e06e93e8c9a41b7a844fc6af8"}},"pool1ekezegcepqmhwppzdj7mm5cm26uz6kzmf4l9r8s3lx4kw6y2veh":{"id":"pool1ekezegcepqmhwppzdj7mm5cm26uz6kzmf4l9r8s3lx4kw6y2veh","vrfVerificationKeyHash":"c6cdbfe1e04a602a85be83b553a44657a8dd69835d14255bc820f754b38d55b3","pledge":{"lovelace":555000000},"cost":{"lovelace":350000000},"margin":"3/20","rewardAccount":"stake_test1uqgvynv9sx5kvlpn5a2zs2y6c9hfwxzuwwlntq0s2uqdahspm9ss4","owners":["10c24d8581a9667c33a75428289ac16e97185c73bf3581f05700dede"],"relays":[{"type":"ipAddress","ipv4":"185.161.193.105","port":6012}],"metadata":{"url":"https://clio.one/metadata/clio1_testnet.json","hash":"47530ba97c12e2ac40462e9c86eeb07ea555877d2a1f9d74b6ff8471839267d8"}},"pool1eh39zxmk8z4hxndc2dx6awu6yfpufmckjnyzlpdcsfd7jf2qxtm":{"id":"pool1eh39zxmk8z4hxndc2dx6awu6yfpufmckjnyzlpdcsfd7jf2qxtm","vrfVerificationKeyHash":"04c92fa6798809d11f840b1b15bf94f4a1ca9faebc92b82453741b453c700f6c","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1uzz4zhcllemvlf6n5yr5nuyxrpws3k06nrs6cn200900m8qtufxcz","owners":["85515f1ffe76cfa753a10749f086185d08d9fa98e1ac4d4f795efd9c"],"relays":[{"type":"hostname","hostname":"relay1.afica.io","port":3001}],"metadata":{"url":"https://bit.ly/preview_afica_metadata","hash":"54467a19dd5d5379e1baf0112ce5c2c478d43b53629ba2440e4ad66a50b5cfa4"}},"pool1ecc3gej4jsaskjfq6phxkcklx8l0qtvalyzeefp9shmvj86hchr":{"id":"pool1ecc3gej4jsaskjfq6phxkcklx8l0qtvalyzeefp9shmvj86hchr","vrfVerificationKeyHash":"dc0c2cf51a1033db6cdae7a856d78989ea373d41567b4bd30e850021d84b8843","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uq6pyvmjrxem8gftst2v23adw5trzvxanhz9vv3p4ng9qkqgwyflc","owners":["3412337219b3b3a12b82d4c547ad75163130dd9dc4563221acd05058"],"relays":[{"type":"hostname","hostname":"relay1.cardano.teamplay.studio","port":6000}],"metadata":{"url":"https://tinyurl.com/2p93ec5b","hash":"6bfbe784117723dbd72811f1ac85acfe49d5ca913102320ae012f39533a97a96"}},"pool1elet8uart9cuw3lmntqhfn2f44rf52dg6v5ppzkcysxx268s43n":{"id":"pool1elet8uart9cuw3lmntqhfn2f44rf52dg6v5ppzkcysxx268s43n","vrfVerificationKeyHash":"e10abc12be25311013a194e97766854c732f0bad09ff6c8bf3554e30f1d21d02","pledge":{"lovelace":9000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1upyrg0gn898nnfeal4c8j0536d9hrdlh82cu9kd39s26mgsd90gfn","owners":["48343d13394f39a73dfd70793e91d34b71b7f73ab1c2d9b12c15ada2"],"relays":[{"type":"hostname","hostname":"1.tcp.au.ngrok.io","port":25432}],"metadata":{"url":"https://t.ly/IT5j2","hash":"d79139620ec27edc094bbf79051bb0b97e599d1826f9545718786a4f9ae4eed0"}},"pool16z5ej7zasdtuljm8r0s5k8pszdm8r7argy7aq0v4czv05kyez76":{"id":"pool16z5ej7zasdtuljm8r0s5k8pszdm8r7argy7aq0v4czv05kyez76","vrfVerificationKeyHash":"bf219f9491ead9d95d362259f14e6ac78e68f3e7b06972b631ba8ac80a82b1af","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"3/10","rewardAccount":"stake_test1up8yrvxz9vvc54jh3xhau9n4hgvp004yj2xgnxrsx665e6qvf8nhl","owners":["4e41b0c22b198a565789afde1675ba1817bea4928c89987036b54ce8"],"relays":[{"type":"hostname","hostname":"beta.stake-cardano-pool.com","port":7002}],"metadata":{"url":"https://bit.ly/prevRCADA","hash":"28b7537b13a8954f80ca50022dce103252a2d64262e62b17847482ff8b474ca0"}},"pool16y556gh885fw5nky8f8qmfwjeer7l8d2wjr8cl7f5vd8x7zgh0d":{"id":"pool16y556gh885fw5nky8f8qmfwjeer7l8d2wjr8cl7f5vd8x7zgh0d","vrfVerificationKeyHash":"968a613baf8ec8e434b663e0a1fdf1c710a7b760a67dfb15e8ede88b818236e9","pledge":{"lovelace":5000000000},"cost":{"lovelace":4321000000},"margin":"1/25","rewardAccount":"stake_test1uppyxzrrhyfh5ja2tgfm87u8h36xgr3a6d6p2ljztpfew8snugder","owners":["42430863b9137a4baa5a13b3fb87bc74640e3dd374157e425853971e"],"relays":[{"type":"ipAddress","ipv4":"123.121.123.121","port":3000}],"metadata":{"url":"https://git.io/JJWdJ","hash":"c5c38833176e2d575bd8693e206e3af2e1088e556def86cae9f6c2fc45579f36"}},"pool16dy6cwrdthfmhn85h56se7dmhp2m8vhg928lvg073r7dwkjvtpg":{"id":"pool16dy6cwrdthfmhn85h56se7dmhp2m8vhg928lvg073r7dwkjvtpg","vrfVerificationKeyHash":"a377abb415ee8e8ae9a15a2a68aa9800261c7ffc77ac9380d416703e7fed9ac8","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/b44bf76a-f93d-491d-bffe-ebf.json","hash":"e0f5672cbb37d0564f5ba3f68fad2ea15484b65ece509500b27213a597a7df03"}},"pool16sjj3ykqznw2pd2m2ug00k0fujtqsmq4amfeeewqzvk7622xetd":{"id":"pool16sjj3ykqznw2pd2m2ug00k0fujtqsmq4amfeeewqzvk7622xetd","vrfVerificationKeyHash":"0cd296f8c5f1337827cacf997a68fc4e700e79632a72ef341419464cea335f87","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1up6g3hdqewdu96xcsaszvfg2jz422aq604ukkaw8cp686xcjnchlw","owners":["7488dda0cb9bc2e8d8876026250a90aaa5741a7d796b75c7c0747d1b"],"relays":[{"type":"hostname","hostname":"preview.happystaking.io","port":3003}],"metadata":{"url":"https://happystaking.io/poolMetadataPreview.json","hash":"cafacba1d7a1e22665204fd41daf451d767e5bb684856b5f58e70511cf8ac076"}},"pool16hphjcfga9jhk5j3rsgmys83kza983utn3zv9jwhjgpe2ah4j8x":{"id":"pool16hphjcfga9jhk5j3rsgmys83kza983utn3zv9jwhjgpe2ah4j8x","vrfVerificationKeyHash":"42b2725232523538f75c49436958209eeec9b0bd081b847816996c3faf1a3ed1","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"3/20","rewardAccount":"stake_test1uzxp3ahlzepch6r7vk43cwjsmyjvp7zvqy6973nw2ejktksa5yrqu","owners":["8c18f6ff16438be87e65ab1c3a50d924c0f84c01345f466e566565da"],"relays":[{"type":"ipAddress","ipv4":"168.138.37.117","port":6000}],"metadata":{"url":"https://tinyurl.com/yc3brjd5","hash":"13538c6980dd25aef3cad66fe9534145168e94e88bdb2db73f469b7b3e2faaeb"}},"pool16e3m59evvjmxsnyu2xqf5ns4zgcdc9m4fpm29avrc5y6qdnhzs6":{"id":"pool16e3m59evvjmxsnyu2xqf5ns4zgcdc9m4fpm29avrc5y6qdnhzs6","vrfVerificationKeyHash":"d35ac02a0872f631f2eeca690a00578d2522af70ee749c75a696b458dfc74a3b","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/200","rewardAccount":"stake_test1ure4jcjcvf0np3hfen3ngfvgqymmur783tdmjw0hnrf4q8s52ymvc","owners":["f3596258625f30c6e9cce33425880137be0fc78adbb939f798d3501e"],"relays":[{"type":"hostname","hostname":"relay1.afica.io","port":3001}],"metadata":{"url":"http://metadata.afica.io/preview.json","hash":"54467a19dd5d5379e1baf0112ce5c2c478d43b53629ba2440e4ad66a50b5cfa4"}},"pool1mykwc7325c2wrur785z22wj6c0fust2ttf6pvt5rh6rtjf2pemg":{"id":"pool1mykwc7325c2wrur785z22wj6c0fust2ttf6pvt5rh6rtjf2pemg","vrfVerificationKeyHash":"fa730318b97a085aa8722dbb7a2fd59ae35942f880e01c9c8b462d81c84dc4cc","pledge":{"lovelace":9069000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1urdcnx276w4g3h8mgdusutj3wc0uhflgt99ucemgfafd2fqmjjw3u","owners":["db89995ed3aa88dcfb43790e2e51761fcba7e8594bcc67684f52d524"],"relays":[{"type":"ipAddress","ipv4":"194.60.201.143","port":6001}],"metadata":{"url":"https://cardanotech.io/sancho/poolMetaData.json","hash":"ccb6217c050e86cc6128b6c40e9daf5650daeb40225c26abade57c22d68ce7b6"}},"pool1m80zlt567eqfessn6pvll5puhl049fkce0w55nmgx84mv74mrqa":{"id":"pool1m80zlt567eqfessn6pvll5puhl049fkce0w55nmgx84mv74mrqa","vrfVerificationKeyHash":"9255fd57d5e228c2228181d99087ab6551eb7d27fc5294813a48c3f1d2327d18","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1upzkdmu99wpclw7h9v8hvdd09vwygyj77qsma0gnef2znwqpk8aff","owners":["4566ef852b838fbbd72b0f7635af2b1c44125ef021bebd13ca5429b8"],"relays":[{"type":"hostname","hostname":"5.161.205.147","port":3001}],"metadata":{"url":"https://udknow.github.io/extend.github.io/pool_MetaData.json","hash":"f7f5329cbaf15b781d1a97f0f596697065f7c453aa2baf3ac034a67c2ac6d0be"}},"pool1mfwwn7k6h4k0qnrn4q4ck0l6lunra8fyvawalt6cpjvp6a253da":{"id":"pool1mfwwn7k6h4k0qnrn4q4ck0l6lunra8fyvawalt6cpjvp6a253da","vrfVerificationKeyHash":"c3e92038b50de0e70bd3066f83c067e1726f126a6cc4c9044f3c87582194bee6","pledge":{"lovelace":1000000},"cost":{"lovelace":568800000},"margin":"1/1","rewardAccount":"stake_test1urull23za5j968nez2952k0fpdzk49raz5qvadyer7d8fxqtpzyfh","owners":["f9ffaa22ed245d1e79128b4559e90b456a947d1500ceb4991f9a7498"],"relays":[{"type":"ipAddress","ipv4":"142.132.218.54","port":6001}],"metadata":{"url":"https://www.roastfrog.com/testpoolMetadata.json","hash":"f03b6faa03747b3657b1e5dd6c2f400421a609529654dbd1c1cfe6a774c5bd19"}},"pool1mfc42za8tj74zc66ez3slwtq4mumdl7yrylaxajd5xugujmhd0c":{"id":"pool1mfc42za8tj74zc66ez3slwtq4mumdl7yrylaxajd5xugujmhd0c","vrfVerificationKeyHash":"5261e39dc3a6a2c1107bded7a5cce9f9e5ba273d92b3832d028c24a23b83db48","pledge":{"lovelace":123000000},"cost":{"lovelace":171000000},"margin":"27/625","rewardAccount":"stake_test1uzckcmv9m39sx0jdvjn5snd8pkhtzwjed50tr9ayjcjdvfctmyegm","owners":["b16c6d85dc4b033e4d64a7484da70daeb13a596d1eb197a49624d627"],"relays":[{"type":"ipAddress","ipv4":"95.216.173.194","port":16000}],"metadata":{"url":"https://raw.githubusercontent.com/hodlonaut/a/master/t1.json","hash":"81986b8f246cb39979af55fc01215f193df2dc07107989b886e131633e880e43"}},"pool1m3d2flwq8kt6ys0e973xwawd042dnn6vfu82p8efyqsvu4wttaq":{"id":"pool1m3d2flwq8kt6ys0e973xwawd042dnn6vfu82p8efyqsvu4wttaq","vrfVerificationKeyHash":"e40dfd70145e63f2eb76398181f9e2f9b9f24aff6800228aa7ff1beef2a3c30c","pledge":{"lovelace":100000000},"cost":{"lovelace":345000000},"margin":"3/20","rewardAccount":"stake_test1ups3a2wv5lnrwusv06zxqrjpga4gwzuuw86y8vh23t9uhgsxarnft","owners":["611ea9cca7e637720c7e84600e41476a870b9c71f443b2ea8acbcba2"],"relays":[{"type":"hostname","hostname":"ada01.liv.io","port":30002}],"metadata":{"url":"liv.io/poolMetaData.json","hash":"78409be753a669ae5eb8c81ee7f3f1a48e8a265ebc6814e6247af4440d50b515"}},"pool1mndner6ppa2ww3zuahk8zg7tv4m235qtrt8tfne4jfl9k7kt8fd":{"id":"pool1mndner6ppa2ww3zuahk8zg7tv4m235qtrt8tfne4jfl9k7kt8fd","vrfVerificationKeyHash":"1077d0e618747203a2c133c9c758f9201a6666c8b342571650b441ed79a8b435","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzdz78y403tg3vr4qs5yz24yxdn5mg5knl09wnyta8sn6ds6xq8dv","owners":["9a2f1c957c5688b0750428412aa433674da2969fde574c8be9e13d36"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/LXSP2","hash":"8c3c4274796876b709eb9fc24b0ed08cdefd0574a011626c307ec83789dd0f61"}},"pool1m4n62kp59efunmu49qfyu38y8g6t9t3mgv4229z0lmpy6fxzdsv":{"id":"pool1m4n62kp59efunmu49qfyu38y8g6t9t3mgv4229z0lmpy6fxzdsv","vrfVerificationKeyHash":"78042dd9de14cb768582a928c234c4bda3c58ce993a2fb67e575eb5035a15335","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzmundjjeta9g6lkszul9zqvnnhnfjgqqkra5a6sfykljfq89ydly","owners":["b7c9b652cafa546bf680b9f2880c9cef34c9000587da7750492df924"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSNB","hash":"c15f332d03f1660ac02c025bd89bbb03b313d11f3c8e8a3c3f331709e422e56d"}},"pool1ufzepz9ugl5f72d3d4lk29x43uxexmae79dxj766s6pgu9axvav":{"id":"pool1ufzepz9ugl5f72d3d4lk29x43uxexmae79dxj766s6pgu9axvav","vrfVerificationKeyHash":"8eeabd1fa1f3b29dd9939e75e8ca450f88d77ec6be1f1a038515b0f0460e5312","pledge":{"lovelace":4567},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1upznunn78q5v6myxfmmgfe6czuhszmnwwpvszr2w8sf4aggtdp3ck","owners":["3b957bf2d0a2299394ce7dd21dd42ff0cb2ee8d517b0b2d297e31828","453e4e7e3828cd6c864ef684e758172f016e6e7059010d4e3c135ea1","5fe8542e18bde2f7469871e89b39839db8b782df86cf68b036450b73"],"relays":[],"metadata":{"url":"https://www.updated_location.com","hash":"997efa7ae731f7d203d790985f7ddf6ce37fe07944e2633e9acc386dae553dbe"}},"pool1u2pl6kx4yc77lnyapnveykkpnj07fmc7pd66fa40fvx3khw7cua":{"id":"pool1u2pl6kx4yc77lnyapnveykkpnj07fmc7pd66fa40fvx3khw7cua","vrfVerificationKeyHash":"b015beeb402d42c1607f69634ed3e53962354246f15e64073697aa03c704955b","pledge":{"lovelace":1000000000000},"cost":{"lovelace":500000000},"margin":"1/1","rewardAccount":"stake_test1urfjhemxd66mhxds7g6w07gsfy6dx2fheh6jv7zyd88l54qxghsqh","owners":["9b4052824b5cd89bb9c74ebe9405fbabf76003c5753e35d3bcc86531"],"relays":[{"type":"hostname","hostname":"preview-node.play.dev.cardano.org","port":3001}]},"pool1uk72vv6l3c4l83hw22crx9ytug7ud97grqg8am5p0qv45aa4ymr":{"id":"pool1uk72vv6l3c4l83hw22crx9ytug7ud97grqg8am5p0qv45aa4ymr","vrfVerificationKeyHash":"9003483796788e265a27728db0f83eb9bd41739f821924e286629999e10a88e5","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1urmdhhr5qhr5rgrsnw7wa2kernuahyemrr4pqta3lke6jxguxf7n4","owners":["f6dbdc7405c741a0709bbceeaad91cf9db933b18ea102fb1fdb3a919"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/RSPO4","hash":"611a69c0d90dbff124db9e3f5b21c846958e340fee72ed00bceb6e5e1f429a66"}},"pool1uh5xdjv70q5eyl5z644p23mvhd3dx0gwr8pjnlj9pwd3jgkvd0e":{"id":"pool1uh5xdjv70q5eyl5z644p23mvhd3dx0gwr8pjnlj9pwd3jgkvd0e","vrfVerificationKeyHash":"335399acf3228243efb0fec0e43f18d61a496d4fd740fd800f9b91b5fa7d0540","pledge":{"lovelace":100000000},"cost":{"lovelace":345000000},"margin":"3/4","rewardAccount":"stake_test1upv6ppwktpx45y3x4msy20fpm0fyyt4g6d9xh4ntlf9tykqyulqzd","owners":["59a085d6584d5a1226aee0453d21dbd2422ea8d34a6bd66bfa4ab258"],"relays":[{"type":"hostname","hostname":"lion474.duckdns.org","port":6000}],"metadata":{"url":"https://tinyurl.com/pkmer3hs","hash":"00ab354051a92cecb843d473c1bce7057e8d922c2f790da4326d1e4daff323e2"}},"pool1uh5sc3v77el8egy6rgz59mdgv0097j7nx3usrrkagvmsy6074k0":{"id":"pool1uh5sc3v77el8egy6rgz59mdgv0097j7nx3usrrkagvmsy6074k0","vrfVerificationKeyHash":"ae3c85580444e5a30cfad07b6a70e004c1875faf87851a06ce756e5ed42ee8f4","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uzds77htp7kk5txdk5e2zntrejgmv5gum445n26ygawv40ghak4zs","owners":["9b0f7aeb0fad6a2ccdb532a14d63cc91b6511cdd6b49ab44475ccabd"],"relays":[{"type":"hostname","hostname":"sp.altzpool.com","port":5001}],"metadata":{"url":"https://altzpool.com/WALTZ/poolmeta.json","hash":"5c8ab40789c4fdc8aeb4684deda3c85aa0202078e0f2d575977f76351da9e771"}},"pool1ayc7a29ray6yv4hn7ge72hpjafg9vvpmtscnq9v8r0zh7azas9c":{"id":"pool1ayc7a29ray6yv4hn7ge72hpjafg9vvpmtscnq9v8r0zh7azas9c","vrfVerificationKeyHash":"4888af16310dc9dd2600001ae7d5fc571cd15d38ffb47c802aac599f916207e0","pledge":{"lovelace":125000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1uzs5rxys8qy5jnr9g0mkj860ms5n92nrykmrgyumpf2ytmsejj4m6","owners":["a14198903809494c6543f7691f4fdc2932aa6325b634139b0a5445ee"],"relays":[{"type":"ipAddress","ipv4":"207.180.211.199","port":6007}],"metadata":{"url":"https://git.io/JW7b5","hash":"7296d38d3c67d769c38924679e132e7d9098e70891d7574cc5cf053574305629"}},"pool1agzq8htqr80dr0wu6ppvm4azkrmhelg4jy4x4qes9n5cuau7esc":{"id":"pool1agzq8htqr80dr0wu6ppvm4azkrmhelg4jy4x4qes9n5cuau7esc","vrfVerificationKeyHash":"fb27957133f79e8e308e0bb47f26a3b8c9c6ada920a4b1121410d55ad4f2f90a","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1urdj5j3jtsj9lsf6xdz27dzxfw92ezj34v5d0qhcrx4ztysksexxe","owners":["db2a4a325c245fc13a3344af34464b8aac8a51ab28d782f819aa2592"],"relays":[{"type":"hostname","hostname":"topo-test.topopool.com","port":3010}],"metadata":{"url":"https://cardanostakehouse.com/187d7406-a87e-449e-8849-9a8.json","hash":"68d0f12660b653892627f2c26c5206dd7cec9fe5c28680f30130aee36188cefd"}},"pool1ag29qua3amyl7fszngeqxnrxpamu6rychrxjjuju5e0tskdpwka":{"id":"pool1ag29qua3amyl7fszngeqxnrxpamu6rychrxjjuju5e0tskdpwka","vrfVerificationKeyHash":"a06673f1adeb90f1c228becf0d7467f750aa2ff22380297b92cba4af98c1f2ac","pledge":{"lovelace":10000000000},"cost":{"lovelace":340000000},"margin":"1/100","rewardAccount":"stake_test1upglkzseasr52vrwa8lyuare8vrlsgj7gd7u7qcapfr4rtcxzny4g","owners":["51fb0a19ec0745306ee9fe4e74793b07f8225e437dcf031d0a4751af"],"relays":[{"type":"ipAddress","ipv4":"144.126.157.40","port":3005}],"metadata":{"url":"https://onecommunityada.com/public/poolmeta-preview-v01.json","hash":"13789ef22250148bba4158df16011318b63a18110d64f2b449bb10df5648f2d6"}},"pool1ad2pw6ch9rpktqt4yfr5qlgt4z87g4v2lky067khwfe9khq246w":{"id":"pool1ad2pw6ch9rpktqt4yfr5qlgt4z87g4v2lky067khwfe9khq246w","vrfVerificationKeyHash":"6c3788da12fce689f7e7d6f50814ad1b21a2ec41f2689bd12770b72958d62689","pledge":{"lovelace":2000000000},"cost":{"lovelace":340000000},"margin":"1/50","rewardAccount":"stake_test1uqyjm25xx2jv62fydccgx036ahs7c5fvwl9a2vpempeemgcj594y7","owners":["092daa8632a4cd29246e30833e3aede1ec512c77cbd53039d8739da3"],"relays":[{"type":"ipAddress","ipv4":"159.203.25.174","port":6000}],"metadata":{"url":"https://tinyurl.com/uakazrpv","hash":"afdf5aa90ad33073ed75f0a72bc72b952e774deac00e7f4cb1020bfb7c6e91ef"}},"pool1aw4ylpwdt6dll08jzkqtpa00rvxpqj8k04g6kdyumwk9cyrqpk8":{"id":"pool1aw4ylpwdt6dll08jzkqtpa00rvxpqj8k04g6kdyumwk9cyrqpk8","vrfVerificationKeyHash":"168dc3fcbe016160b0bb58e60880b2cc422d63937a944e9522bd3c1847f429f0","pledge":{"lovelace":10000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uz2equk92h9kfjj3v80ls23t4hx4r4n3mwr8tcddgpc9ldcn3cvfz","owners":["959072c555cb64ca5161dff82a2badcd51d671db8675e1ad40705fb7"],"relays":[{"type":"ipAddress","ipv4":"190.225.246.140","port":6000}],"metadata":{"url":"https://t.ly/W1Nni","hash":"167d5e2610687507e54ed74f89c5705a09375e89199ed5c8fbd980a26ad84a7d"}},"pool1a3pepkeacs59d3lqfmk6hks4qc7k84xqsc4q664lpxfvyq9lf5f":{"id":"pool1a3pepkeacs59d3lqfmk6hks4qc7k84xqsc4q664lpxfvyq9lf5f","vrfVerificationKeyHash":"1786535ea1a4e6ee4addea9ea255643515698bfe927b7a631402a274172685ae","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqxcefkp07zelmy36y3jdpzajxz2w053h027sknlk4fkklqe96s62","owners":["0d8ca6c17f859fec91d12326845d9184a73e91bbd5e85a7fb5536b7c"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/LXSP4","hash":"2d9ef4dab347f7151dbdb884f61dbeb1d1322655d0835a002cba7072dc2baa41"}},"pool1a6ug5gelydu29djkuvxl869257e7v4d3zwqwt69ygu7dcfts59j":{"id":"pool1a6ug5gelydu29djkuvxl869257e7v4d3zwqwt69ygu7dcfts59j","vrfVerificationKeyHash":"1c3ba4a44d07d779d3b699936ead18a3dd9b20eeaa25281df144c404b611f864","pledge":{"lovelace":1000000000},"cost":{"lovelace":170000000},"margin":"1/100","rewardAccount":"stake_test1uqrw4g3al234sqskw87z6t45k42z2t9qyp9jyeec83wm0csq2u08c","owners":["06eaa23dfaa358021671fc2d2eb4b554252ca0204b2267383c5db7e2"],"relays":[{"type":"hostname","hostname":"testnet.valhallapool.net","port":3000}],"metadata":{"url":"https://raw.githubusercontent.com/t0m3kf/v/main/testnet.json","hash":"1d707d6861b2fdb6b46321270e40ea01ff9a49acc3858b5499b5f33fa4f3bebf"}},"pool1a7h89sr6ymj9g2a9tm6e6dddghl64tp39pj78f6cah5ewgd4px0":{"id":"pool1a7h89sr6ymj9g2a9tm6e6dddghl64tp39pj78f6cah5ewgd4px0","vrfVerificationKeyHash":"1d8199fd0a82c29b242d62f6aca7d166200e47c0596fab5b1d4cf56399b6eded","pledge":{"lovelace":100000000000},"cost":{"lovelace":340000000},"margin":"1/10","rewardAccount":"stake_test1uqd2nz8ugrn6kwkflvmt9he8dr966dszfmm5lt66qdmn28qt4wff9","owners":["1aa988fc40e7ab3ac9fb36b2df2768cbad36024ef74faf5a0377351c"],"relays":[{"type":"hostname","hostname":"prv-relay1.apexpool.info","port":3001}],"metadata":{"url":"https://apexpool.info/preview/poolmetadata.json","hash":"a207f23a6255eeb0b508945e5170b169eb5c3220109d7fa17a7d88d462c8a199"}},"pool1alaz72lzlude9flwewegv530za5pl0uuakxa02kdyddv67wpkwj":{"id":"pool1alaz72lzlude9flwewegv530za5pl0uuakxa02kdyddv67wpkwj","vrfVerificationKeyHash":"d2c415e4eb5c7295a10d17b1eecc7791f6217f0dfcf298e83eba53f44a792362","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"19/1000","rewardAccount":"stake_test1ur2pejlgfqa5e4stqg529tqj06k6gamweaawgphvewkdgtqqkuwlr","owners":["d41ccbe8483b4cd60b0228a2ac127eada4776ecf7ae406eccbacd42c"],"relays":[{"type":"ipAddress","ipv4":"194.163.158.69","port":6002}],"metadata":{"url":"https://solidsnakedev.github.io/poolMetadata.json","hash":"66e626854b9d86d419cba818f04e4958247cb7d613d55959cb8df924bdb99c03"}},"pool17wdfwsyksx7femcxzx7ycf84maqvdf3fmr7z92h2xguy7eanvdf":{"id":"pool17wdfwsyksx7femcxzx7ycf84maqvdf3fmr7z92h2xguy7eanvdf","vrfVerificationKeyHash":"b5ad4eb8d4d7d07c993670d34e475a0ebd3553b297eaec49f297645365f3319e","pledge":{"lovelace":19000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uzu4m5xsmd0lw2y7n3rrh70feevp5sghqk9nmkr30f0yyjcx0eu53","owners":["b95dd0d0db5ff7289e9c463bf9e9ce581a4117058b3dd8717a5e424b"],"relays":[{"type":"hostname","hostname":"preview-testnet-relay.junostakepool.com","port":4521},{"type":"hostname","hostname":"passive-preview-testnet-relay.junostakepool.com","port":4531}],"metadata":{"url":"https://junostakepool.com/juno-testnet.metadata.json","hash":"3a0d397aa9bf08753197678d93ee2f615daa4727671497bfd69fabd84c63d907"}},"pool17njlrn0jgdw626utskz0zmrnduz9ra8d3al6aw5hvszxkx88q2r":{"id":"pool17njlrn0jgdw626utskz0zmrnduz9ra8d3al6aw5hvszxkx88q2r","vrfVerificationKeyHash":"392d334b0670323093e6cf60edf36961e4005de35b2c86f01e41ce2f7428837a","pledge":{"lovelace":1000000000},"cost":{"lovelace":340000000},"margin":"1/1","rewardAccount":"stake_test1urmklja3h07ndxxrg6eu950x9glzws3gcu7wpphz2cdgujql0rxpn","owners":["10d1fd3cc499c8651bc9344fabe05739fa3e5777145eb638d39dc449"],"relays":[{"type":"ipAddress","ipv4":"210.54.38.228","port":4020}],"metadata":{"url":"https://bit.ly/3vlDN4w","hash":"ff6cdb1fba6074de46d95e0f878d9683d2ce2cf3acb57e6a4fdb9d97af8fe739"}},"pool17navl486tuwjg4t95vwtlqslx9225x5lguwuy6ahc58x5dnm9ma":{"id":"pool17navl486tuwjg4t95vwtlqslx9225x5lguwuy6ahc58x5dnm9ma","vrfVerificationKeyHash":"f4c30ed620cf34f18f8a03e87a178fa01dcd21f07aeaab8c69bd1ad168177b1a","pledge":{"lovelace":100000000},"cost":{"lovelace":340000000},"margin":"1/40","rewardAccount":"stake_test1urwheaxgd4llq93s85tlnazqtzqpgrxy3nagtagl97xswug363ct0","owners":["dd7cf4c86d7ff016303d17f9f4405880140cc48cfa85f51f2f8d0771"],"relays":[{"type":"hostname","hostname":"pv-relays.digitalfortress.online","port":8001}],"metadata":{"url":"https://digitalfortress.online/digi2-pv.json","hash":"9b7e689634956d37e264f89a9ff1dc9cc38f3f4feb2984193ba55b75fbbe4edc"}},"pool175vq9hqwm9c39uk085xefkr6frtejxcqsf6gh9kh2jaavttrv2p":{"id":"pool175vq9hqwm9c39uk085xefkr6frtejxcqsf6gh9kh2jaavttrv2p","vrfVerificationKeyHash":"54b1898f88cf3e41f0b2d961132a6d35aee6e6c1cd06b10676d07eaaddb739f2","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1uqy849fm6tqp8vvn69tmvtgnc26kkre9xhu236kxf2mpgcg4lusqv","owners":["087a953bd2c013b193d157b62d13c2b56b0f2535f8a8eac64ab61461"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/RSPO6","hash":"7fd82335e38dff9fcf4d7cbc685bc81120b34a8138a5f63ac49bbe34e52f5adf"}},"pool1lqj075ak5u2j9wul3kccll7jg6we27jkeuqwpjctmj9qstcxz2l":{"id":"pool1lqj075ak5u2j9wul3kccll7jg6we27jkeuqwpjctmj9qstcxz2l","vrfVerificationKeyHash":"51e8282e2675e4b384ca03ee2b001d3d430349a80b8c5147215f77a5739a66ba","pledge":{"lovelace":500000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1urvkry4v3ncrhzjhmwg0uluerrr0rx43eh3pafq75ufucpcherj5s","owners":["d96192ac8cf03b8a57db90fe7f9918c6f19ab1cde21ea41ea713cc07"],"relays":[{"type":"ipAddress","ipv4":"0.0.0.0","port":3533}],"metadata":{"url":"https://example.com/SSNC","hash":"ccd9b7349e6a97c5f670f93225c9596bff725a63f7f4f1a42f5ea1367c639a80"}},"pool1l9u9ss9xtww8qkt4zqda84z945f6tgq4753jqhtdr4r8yaw7d6g":{"id":"pool1l9u9ss9xtww8qkt4zqda84z945f6tgq4753jqhtdr4r8yaw7d6g","vrfVerificationKeyHash":"d510044198082bb3852d56c29d0901dfc7f2fe7cc9958fffdb2c0a10ca378495","pledge":{"lovelace":0},"cost":{"lovelace":340000000},"margin":"1/1","rewardAccount":"stake_test1up3pv0r49hevqvc23q7zfwnza6d0vs3qhf4w9lhg9w93c7qegmfv6","owners":["62163c752df2c0330a883c24ba62ee9af64220ba6ae2fee82b8b1c78"],"relays":[{"type":"ipAddress","ipv4":"18.219.254.123","port":3001}],"metadata":{"url":"https://tinyurl.com/ye2zvyf4","hash":"60586988c5245b4eb59aff8110da9ebe57d4c7e37aaf6e6a3587523aa14fdee1"}},"pool1l8k45jgjd58jcg84pclvhzwqt2ql9xk65xc5svggdkslswwlh37":{"id":"pool1l8k45jgjd58jcg84pclvhzwqt2ql9xk65xc5svggdkslswwlh37","vrfVerificationKeyHash":"28c7be4bfae439c34bbd00ee1f38fbdd6da7699348e1a2d8cc8f5a5f37ec0e0e","pledge":{"lovelace":20000000000},"cost":{"lovelace":340000000},"margin":"0/1","rewardAccount":"stake_test1upzyxqc689puxvznynchysv368j4jwjvghzszqsx4fsnsasec99jl","owners":["4443031a3943c3305324f1724191d1e5593a4c45c5010206aa613876"],"relays":[],"metadata":{"url":"http://bit.ly/rabbitholepools","hash":"618d89696eea579b5e4402f220109785e9039181d5a46fc7fff45e035a8cab61"}},"pool1l5u4zh84na80xr56d342d32rsdw62qycwaw97hy9wwsc6axdwla":{"id":"pool1l5u4zh84na80xr56d342d32rsdw62qycwaw97hy9wwsc6axdwla","vrfVerificationKeyHash":"39cf4275b0751ee453aee1737c97466543250ec50932dfa0a109a99c9678752b","pledge":{"lovelace":127813888409},"cost":{"lovelace":340000000},"margin":"1/20","rewardAccount":"stake_test1uzwfmyp6jjyupe3pf3h80k5j0p3pzxzn0gf5544p7qzmhmsat2s3z","owners":["9c9d903a9489c0e6214c6e77da9278621118537a134a56a1f005bbee"],"relays":[{"type":"hostname","hostname":"preview.euskalstakepool.win","port":6001}],"metadata":{"url":"https://git.io/JiZgb","hash":"2e421355eb7b4499dd8f0bca206178131f4c9ad90e2bf369ae78aa0c7c4d9472"}},"pool1leml52hm4fcp3hhe4zye08qz27llhj7d339p3gs0tl85cstx59q":{"id":"pool1leml52hm4fcp3hhe4zye08qz27llhj7d339p3gs0tl85cstx59q","vrfVerificationKeyHash":"9bce3347843eea739fe6978c347f08dd6de43443f1964369c42778b874c42783","pledge":{"lovelace":65000000000},"cost":{"lovelace":340000000},"margin":"3/100","rewardAccount":"stake_test1urpj2lxml8ml6dqv58l3f7skw4389e0vq7s22sl8zgekmmcy97awy","owners":["c3257cdbf9f7fd340ca1ff14fa16756272e5ec07a0a543e712336def"],"relays":[{"type":"hostname","hostname":"previewrelay1.intertreecryptoconsultants.com","port":6000}],"metadata":{"url":"https://tinyurl.com/intrtpreview","hash":"b9e21ae6844cd61c812c3d5aec7dbe6f8099962fe1e952d51f297258ba89879f"}},"pool1lleyxf5xxaxg633c2thh5ttjrf4qxrm3cqaw53kmp7e5q2nlg38":{"id":"pool1lleyxf5xxaxg633c2thh5ttjrf4qxrm3cqaw53kmp7e5q2nlg38","vrfVerificationKeyHash":"3256df2b38272c09c93044fa2702d5ffb1f38c5a2145dc3cb94d5800b28accce","pledge":{"lovelace":100000000000},"cost":{"lovelace":340000000},"margin":"3/10","rewardAccount":"stake_test1uzdgxac7lcan0v7qr4tre4v8aeurwtgk3cszpthf3fra68gc7wnk2","owners":["9a83771efe3b37b3c01d563cd587ee78372d168e2020aee98a47dd1d"],"relays":[{"type":"ipAddress","ipv4":"73.222.0.99","port":3001}],"metadata":{"url":"https://tinyurl.com/6br33xwj","hash":"12b539568a42859dd8a2fe2e9c9ab3095ca4f8dedbb8899f9943ecd54dc16047"}}},"method":"queryLedgerState/stakePools","jsonrpc":"2.0","id":"queryLedgerState/stakePools-3rvj1ml27d5loixowwa","error":null} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryNetwork-startTime-02fa6f9e7ed04ebfe3294c7648be54d5.json b/fixtures/test/ogmios/queryNetwork-startTime-02fa6f9e7ed04ebfe3294c7648be54d5.json deleted file mode 100644 index a70856486..000000000 --- a/fixtures/test/ogmios/queryNetwork-startTime-02fa6f9e7ed04ebfe3294c7648be54d5.json +++ /dev/null @@ -1 +0,0 @@ -{"result":"2022-10-25T00:00:00Z","method":"queryNetwork/startTime","jsonrpc":"2.0","id":"queryNetwork/startTime-3rvj1ml27d5loixoww6","error":null} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryNetwork-startTime-1a911197c5149cd582be4cbf5a651817.json b/fixtures/test/ogmios/queryNetwork-startTime-1a911197c5149cd582be4cbf5a651817.json new file mode 100644 index 000000000..5273a4280 --- /dev/null +++ b/fixtures/test/ogmios/queryNetwork-startTime-1a911197c5149cd582be4cbf5a651817.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryNetwork/startTime","result":"2022-10-25T00:00:00Z","id":"queryNetwork/startTime-hfkg1vgolxm0w653"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryNetwork-startTime-5185237542c7c8a6810aeb0fe74b3b40.json b/fixtures/test/ogmios/queryNetwork-startTime-5185237542c7c8a6810aeb0fe74b3b40.json new file mode 100644 index 000000000..c0dbb56e6 --- /dev/null +++ b/fixtures/test/ogmios/queryNetwork-startTime-5185237542c7c8a6810aeb0fe74b3b40.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryNetwork/startTime","result":"2022-10-25T00:00:00Z","id":"queryNetwork/startTime-hfkgnvkflxdivdsi"} diff --git a/fixtures/test/ogmios/queryNetwork-tip-0175559aa0cbb9d1a23217a7152cc76f.json b/fixtures/test/ogmios/queryNetwork-tip-0175559aa0cbb9d1a23217a7152cc76f.json new file mode 100644 index 000000000..bcf53b0c3 --- /dev/null +++ b/fixtures/test/ogmios/queryNetwork-tip-0175559aa0cbb9d1a23217a7152cc76f.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryNetwork/tip","result":{"slot":31932656,"id":"4088d6aad9edebce1047e09259981a52ebdec26904d632090f643811cd137556"},"id":"queryNetwork/tip-hfkgvfollxkiih0l"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryNetwork-tip-145d4ffd82a9c88c79bdb0f629aa3d3d.json b/fixtures/test/ogmios/queryNetwork-tip-145d4ffd82a9c88c79bdb0f629aa3d3d.json new file mode 100644 index 000000000..60b426970 --- /dev/null +++ b/fixtures/test/ogmios/queryNetwork-tip-145d4ffd82a9c88c79bdb0f629aa3d3d.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","method":"queryNetwork/tip","result":{"slot":10577883,"id":"fdfe97a8576b33f2472d793059f2f4d46b26ae3549d54becdaf28bb1dadf3fb9"},"id":"queryNetwork/tip-hfkg8z8vlxlxx1j9"} \ No newline at end of file diff --git a/fixtures/test/ogmios/queryNetwork-tip-fbd01538064b3ef7b5e3a703dddcb32b.json b/fixtures/test/ogmios/queryNetwork-tip-fbd01538064b3ef7b5e3a703dddcb32b.json deleted file mode 100644 index 9bf66db46..000000000 --- a/fixtures/test/ogmios/queryNetwork-tip-fbd01538064b3ef7b5e3a703dddcb32b.json +++ /dev/null @@ -1 +0,0 @@ -{"result":{"slot":32379177,"id":"5f88efad29d47924ac3c275ad44ec1e1163d04c9e6d98927b1389ae87325a418"},"method":"queryNetwork/tip","jsonrpc":"2.0","id":"queryNetwork/tip-3rvj1ml27d5loixoww4","error":null} \ No newline at end of file diff --git a/flake.lock b/flake.lock index 3a8562dcd..e7e3f484a 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1702742788, - "narHash": "sha256-lSU0M27LC0d60cJ2C2Kdo6gBwTCCYRiALbD528CoTtc=", + "lastModified": 1721915212, + "narHash": "sha256-itkbLG6DUX/L5XuoSXFPgPBf+9lFOM3ufc1T4BU4MYM=", "owner": "input-output-hk", "repo": "cardano-haskell-packages", - "rev": "4a236a8ad9e3c6d20235de27eacbe3d4de72479c", + "rev": "2126fa53c45842719ee38040f4d5bee8fb17a09d", "type": "github" }, "original": { @@ -18,6 +18,23 @@ } }, "CHaP_2": { + "flake": false, + "locked": { + "lastModified": 1702906471, + "narHash": "sha256-br+hVo3R6nfmiSEPXcLKhIX4Kg5gcK2PjzjmvQsuUp8=", + "owner": "IntersectMBO", + "repo": "cardano-haskell-packages", + "rev": "48a359ac3f1d437ebaa91126b20e15a65201f004", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "ref": "repo", + "repo": "cardano-haskell-packages", + "type": "github" + } + }, + "CHaP_3": { "flake": false, "locked": { "lastModified": 1686070892, @@ -34,14 +51,14 @@ "type": "github" } }, - "CHaP_3": { + "CHaP_4": { "flake": false, "locked": { - "lastModified": 1695160702, - "narHash": "sha256-+Mfc6eGA1ZwQ/ZjKzMoMWkHzd+sgR1JbxY0i849HjEU=", + "lastModified": 1702593630, + "narHash": "sha256-IWu27+sfPtazjIZiWLUm8G4BKvjXmIL+/1XT/ETnfhg=", "owner": "input-output-hk", "repo": "cardano-haskell-packages", - "rev": "9932690af3713ef034c928850252eb1b88450ee6", + "rev": "9783a177efcea5beb8808aab7513098bdab185ba", "type": "github" }, "original": { @@ -51,18 +68,18 @@ "type": "github" } }, - "CHaP_4": { + "CHaP_5": { "flake": false, "locked": { - "lastModified": 1694601145, - "narHash": "sha256-p7ZxorrOvoow6N+JKvfrCiRYFtUSPiEMgt8MR+rcTT4=", - "owner": "input-output-hk", + "lastModified": 1721831314, + "narHash": "sha256-I1j5HPSbbh3l1D0C9oP/59YB4e+64K9NDRl7ueD1c/Y=", + "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "e8298604717dbaa311c1e42e021b571670f4b039", + "rev": "8815ee7598bc39a02db8896b788f69accf892790", "type": "github" }, "original": { - "owner": "input-output-hk", + "owner": "intersectmbo", "ref": "repo", "repo": "cardano-haskell-packages", "type": "github" @@ -84,6 +101,22 @@ "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": { @@ -180,9 +213,41 @@ "type": "github" } }, + "HTTP_8": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "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_9" + "nixpkgs": "nixpkgs_38" }, "locked": { "lastModified": 1641576265, @@ -200,8 +265,8 @@ }, "agenix-cli": { "inputs": { - "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_10" + "flake-utils": "flake-utils_21", + "nixpkgs": "nixpkgs_39" }, "locked": { "lastModified": 1641404293, @@ -219,8 +284,8 @@ }, "agenix-cli_2": { "inputs": { - "flake-utils": "flake-utils_7", - "nixpkgs": "nixpkgs_12" + "flake-utils": "flake-utils_22", + "nixpkgs": "nixpkgs_41" }, "locked": { "lastModified": 1641404293, @@ -238,8 +303,8 @@ }, "agenix-cli_3": { "inputs": { - "flake-utils": "flake-utils_18", - "nixpkgs": "nixpkgs_41" + "flake-utils": "flake-utils_33", + "nixpkgs": "nixpkgs_70" }, "locked": { "lastModified": 1641404293, @@ -257,7 +322,7 @@ }, "agenix_2": { "inputs": { - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_40" }, "locked": { "lastModified": 1641576265, @@ -350,7 +415,7 @@ }, "agenix_6": { "inputs": { - "nixpkgs": "nixpkgs_40" + "nixpkgs": "nixpkgs_69" }, "locked": { "lastModified": 1641576265, @@ -418,7 +483,7 @@ "alejandra": { "inputs": { "flakeCompat": "flakeCompat", - "nixpkgs": "nixpkgs_35" + "nixpkgs": "nixpkgs_64" }, "locked": { "lastModified": 1646360966, @@ -434,6 +499,51 @@ "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": { @@ -482,6 +592,22 @@ "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": { @@ -530,28 +656,61 @@ "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_2", + "blank": "blank_6", "capsules": "capsules", "data-merge": "data-merge", "deploy": "deploy_2", - "fenix": "fenix_4", - "hydra": "hydra_3", - "n2c": "n2c_2", - "nix": "nix_5", - "nixpkgs": "nixpkgs_29", + "fenix": "fenix_6", + "hydra": "hydra_7", + "n2c": "n2c_5", + "nix": "nix_10", + "nixpkgs": "nixpkgs_58", "nixpkgs-docker": "nixpkgs-docker", - "nixpkgs-unstable": "nixpkgs-unstable_3", + "nixpkgs-unstable": "nixpkgs-unstable_8", "nomad-driver-nix": "nomad-driver-nix_2", "nomad-follower": "nomad-follower_2", - "ops-lib": "ops-lib_3", + "ops-lib": "ops-lib_5", "ragenix": "ragenix_3", - "std": "std_2", - "terranix": "terranix_2", - "utils": "utils_12" + "std": "std_6", + "terranix": "terranix_3", + "utils": "utils_17" }, "locked": { "lastModified": 1661790449, @@ -629,20 +788,20 @@ "inputs": { "agenix": "agenix_2", "agenix-cli": "agenix-cli_2", - "blank": "blank_3", + "blank": "blank_7", "deploy": "deploy", - "fenix": "fenix_2", - "hydra": "hydra_2", - "nix": "nix_2", - "nixpkgs": "nixpkgs_15", - "nixpkgs-unstable": "nixpkgs-unstable_2", + "fenix": "fenix_4", + "hydra": "hydra_6", + "nix": "nix_7", + "nixpkgs": "nixpkgs_44", + "nixpkgs-unstable": "nixpkgs-unstable_7", "nomad": "nomad", "nomad-driver-nix": "nomad-driver-nix", "nomad-follower": "nomad-follower", - "ops-lib": "ops-lib_2", + "ops-lib": "ops-lib_4", "ragenix": "ragenix", - "terranix": "terranix", - "utils": "utils_7", + "terranix": "terranix_2", + "utils": "utils_12", "vulnix": "vulnix" }, "locked": { @@ -663,20 +822,20 @@ "inputs": { "agenix": "agenix_6", "agenix-cli": "agenix-cli_3", - "blank": "blank_4", + "blank": "blank_8", "deploy": "deploy_3", - "fenix": "fenix_6", - "hydra": "hydra_4", - "nix": "nix_9", - "nixpkgs": "nixpkgs_44", - "nixpkgs-unstable": "nixpkgs-unstable_4", + "fenix": "fenix_8", + "hydra": "hydra_8", + "nix": "nix_14", + "nixpkgs": "nixpkgs_73", + "nixpkgs-unstable": "nixpkgs-unstable_9", "nomad": "nomad_2", "nomad-driver-nix": "nomad-driver-nix_3", "nomad-follower": "nomad-follower_3", - "ops-lib": "ops-lib_4", + "ops-lib": "ops-lib_6", "ragenix": "ragenix_4", - "terranix": "terranix_3", - "utils": "utils_21", + "terranix": "terranix_4", + "utils": "utils_26", "vulnix": "vulnix_2" }, "locked": { @@ -768,6 +927,51 @@ "type": "github" } }, + "blank_6": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "blank", + "type": "github" + } + }, + "blank_7": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "blank", + "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" @@ -787,6 +991,25 @@ "type": "github" } }, + "blockfrost_2": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1716466734, + "narHash": "sha256-h1LdfN/2KlD/XRjgj7rDNRInxSKZCOx6OF4jak/3c/E=", + "owner": "blockfrost", + "repo": "blockfrost-backend-ryo", + "rev": "7204204615be69b2f298ddf11f9a23dbbb184e55", + "type": "github" + }, + "original": { + "owner": "blockfrost", + "ref": "v2.0.3", + "repo": "blockfrost-backend-ryo", + "type": "github" + } + }, "blst": { "flake": false, "locked": { @@ -821,32 +1044,134 @@ "type": "github" } }, - "byron-chain": { + "blst_3": { "flake": false, "locked": { - "lastModified": 1557232434, - "narHash": "sha256-2rclcOjIVq0lFCdYAa8S9imzZZHqySn2LZ/O48hUofw=", - "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", - "rev": "a31ac7534ec855b715b9a6bb6a06861ee94935d9", + "lastModified": 1656163412, + "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", + "owner": "supranational", + "repo": "blst", + "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", + "owner": "supranational", + "repo": "blst", + "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" } }, - "cabal-32": { + "blst_4": { "flake": false, "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", - "owner": "haskell", - "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", - "type": "github" - }, + "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, + "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", + "owner": "supranational", + "repo": "blst", + "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", + "type": "github" + }, + "original": { + "owner": "supranational", + "ref": "v0.3.11", + "repo": "blst", + "type": "github" + } + }, + "blst_7": { + "flake": false, + "locked": { + "lastModified": 1691598027, + "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", + "owner": "supranational", + "repo": "blst", + "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", + "type": "github" + }, + "original": { + "owner": "supranational", + "ref": "v0.3.11", + "repo": "blst", + "type": "github" + } + }, + "byron-chain": { + "flake": false, + "locked": { + "lastModified": 1557232434, + "narHash": "sha256-2rclcOjIVq0lFCdYAa8S9imzZZHqySn2LZ/O48hUofw=", + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "rev": "a31ac7534ec855b715b9a6bb6a06861ee94935d9", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "type": "github" + } + }, + "cabal-32": { + "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_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", @@ -956,6 +1281,40 @@ "type": "github" } }, + "cabal-32_8": { + "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_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": { @@ -973,14 +1332,31 @@ "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": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", "owner": "haskell", "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", "type": "github" }, "original": { @@ -993,11 +1369,11 @@ "cabal-34_3": { "flake": false, "locked": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", "owner": "haskell", "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", "type": "github" }, "original": { @@ -1008,6 +1384,40 @@ } }, "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, @@ -1024,7 +1434,7 @@ "type": "github" } }, - "cabal-34_5": { + "cabal-34_7": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1041,14 +1451,14 @@ "type": "github" } }, - "cabal-34_6": { + "cabal-34_8": { "flake": false, "locked": { - "lastModified": 1645834128, - "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", + "lastModified": 1640353650, + "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", "owner": "haskell", "repo": "cabal", - "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", + "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", "type": "github" }, "original": { @@ -1058,7 +1468,7 @@ "type": "github" } }, - "cabal-34_7": { + "cabal-34_9": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1092,14 +1502,14 @@ "type": "github" } }, - "cabal-36_2": { + "cabal-36_10": { "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": { @@ -1109,14 +1519,14 @@ "type": "github" } }, - "cabal-36_3": { + "cabal-36_2": { "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": { @@ -1126,14 +1536,14 @@ "type": "github" } }, - "cabal-36_4": { + "cabal-36_3": { "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": { @@ -1143,14 +1553,14 @@ "type": "github" } }, - "cabal-36_5": { + "cabal-36_4": { "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": { @@ -1160,7 +1570,7 @@ "type": "github" } }, - "cabal-36_6": { + "cabal-36_5": { "flake": false, "locked": { "lastModified": 1669081697, @@ -1177,7 +1587,7 @@ "type": "github" } }, - "cabal-36_7": { + "cabal-36_6": { "flake": false, "locked": { "lastModified": 1641652457, @@ -1194,32 +1604,113 @@ "type": "github" } }, - "capsules": { - "inputs": { - "bitte": "bitte_2", - "iogo": "iogo", - "nixpkgs": "nixpkgs_23", - "ragenix": "ragenix_2" - }, + "cabal-36_7": { + "flake": false, "locked": { - "lastModified": 1658156716, - "narHash": "sha256-c1lH7PIN0rTKdGgosD5fCsHoAklAtGR/E1DFT2exIkM=", - "owner": "input-output-hk", - "repo": "devshell-capsules", - "rev": "88348a415130cee29ce187140e6f57d94d843d54", + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "devshell-capsules", - "type": "github" + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_8": { + "flake": false, + "locked": { + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_9": { + "flake": false, + "locked": { + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "call-flake": { + "locked": { + "lastModified": 1687380775, + "narHash": "sha256-bmhE1TmrJG4ba93l9WQTLuYM53kwGQAjYHRvHOeuxWU=", + "owner": "divnix", + "repo": "call-flake", + "rev": "74061f6c241227cd05e79b702db9a300a2e4131a", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "call-flake", + "type": "github" + } + }, + "capkgs": { + "locked": { + "lastModified": 1697123727, + "narHash": "sha256-uSXZAELJF5EfivH9qyLssBUAvhcf3RM9sKhD3W2mdhc=", + "owner": "input-output-hk", + "repo": "capkgs", + "rev": "b197e225592dfe38afb80c94b628d99968c0541d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "capkgs", + "type": "github" + } + }, + "capsules": { + "inputs": { + "bitte": "bitte_2", + "iogo": "iogo", + "nixpkgs": "nixpkgs_52", + "ragenix": "ragenix_2" + }, + "locked": { + "lastModified": 1658156716, + "narHash": "sha256-c1lH7PIN0rTKdGgosD5fCsHoAklAtGR/E1DFT2exIkM=", + "owner": "input-output-hk", + "repo": "devshell-capsules", + "rev": "88348a415130cee29ce187140e6f57d94d843d54", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "devshell-capsules", + "type": "github" } }, "capsules_2": { "inputs": { "bitte": "bitte_3", "iogo": "iogo_2", - "nixpkgs": "nixpkgs_52", + "nixpkgs": "nixpkgs_81", "ragenix": "ragenix_5" }, "locked": { @@ -1238,17 +1729,20 @@ }, "cardano-automation": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_4", "haskellNix": [ - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "haskellNix" ], "nixpkgs": [ - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "nixpkgs" ], "tullia": [ - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "tullia" ] }, @@ -1266,5424 +1760,9858 @@ "type": "github" } }, - "cardano-configurations": { - "flake": false, + "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": 1699561895, - "narHash": "sha256-bLNN6lJUe5dR1EOdtDspReE2fu2EV7hQMHFGDinxf5Y=", + "lastModified": 1679408951, + "narHash": "sha256-xM78upkrXjRu/739V/IxFrA9m+6rvgOiolt4ReKLAog=", "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "d952529afdfdf6d53ce190b1bf8af990a7ae9590", + "repo": "cardano-automation", + "rev": "628f135d243d4a9e388c187e4c6179246038ee72", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "d952529afdfdf6d53ce190b1bf8af990a7ae9590", + "repo": "cardano-automation", "type": "github" } }, - "cardano-configurations_2": { - "flake": false, + "cardano-automation_3": { + "inputs": { + "flake-utils": "flake-utils_16", + "haskellNix": [ + "cardano-node", + "haskellNix" + ], + "nixpkgs": [ + "cardano-node", + "nixpkgs" + ], + "tullia": "tullia_3" + }, "locked": { - "lastModified": 1694019972, - "narHash": "sha256-TQEvb6W2VlOWxqIFa4r8UFBVbu82Bb2hRaDtN5Zbiuk=", + "lastModified": 1679408951, + "narHash": "sha256-xM78upkrXjRu/739V/IxFrA9m+6rvgOiolt4ReKLAog=", "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "65ef979cf69f420efca0a7aaf0412a610bc48097", + "repo": "cardano-automation", + "rev": "628f135d243d4a9e388c187e4c6179246038ee72", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-configurations", + "repo": "cardano-automation", "type": "github" } }, - "cardano-explorer-app": { + "cardano-configurations": { "flake": false, "locked": { - "lastModified": 1655291958, - "narHash": "sha256-OByt95cIJrA8pXsvCztsWmFcDaQaSYGohSOHoaZWKJs=", + "lastModified": 1721870874, + "narHash": "sha256-qiReN+xxtbb4kEfdIWbBcqcJpPGD8he0p/TVD7U3CqM=", "owner": "input-output-hk", - "repo": "cardano-explorer-app", - "rev": "a65938afe159adb1d1e2808305a7316738f5e634", + "repo": "cardano-configurations", + "rev": "7969a73e5c7ee1f3b2a40274b34191fdd8de170b", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "fix-nix-system", - "repo": "cardano-explorer-app", + "repo": "cardano-configurations", + "rev": "7969a73e5c7ee1f3b2a40274b34191fdd8de170b", "type": "github" } }, - "cardano-graphql": { + "cardano-configurations-8.1.1": { "flake": false, "locked": { - "lastModified": 1657201429, - "narHash": "sha256-kx8Pe5HllnJceQHsBDB4hHcEQNSiq8D+OFFkRuuUFQE=", + "lastModified": 1692193634, + "narHash": "sha256-cKw+iXKoMNrfN8M34/CtUelUZVLktVtzNzOYHI20dC0=", "owner": "input-output-hk", - "repo": "cardano-graphql", - "rev": "ffb40028f51e23983c2ae27693bbdcd152208d9d", + "repo": "cardano-configurations", + "rev": "9b69b59ef2fb2838855017f19af57b38c5d4abe4", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-graphql", + "repo": "cardano-configurations", + "rev": "9b69b59ef2fb2838855017f19af57b38c5d4abe4", "type": "github" } }, - "cardano-mainnet-mirror": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, + "cardano-configurations-8.7.3": { + "flake": false, "locked": { - "lastModified": 1642701714, - "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", + "lastModified": 1702085095, + "narHash": "sha256-IJChESftdO2tj2pRB+82xMaLP/RqyKHzttE7QMLqvBQ=", "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", - "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", + "repo": "cardano-configurations", + "rev": "21249e0d5c68b4e8f3661b250aa8272a8785d678", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "nix", - "repo": "cardano-mainnet-mirror", + "repo": "cardano-configurations", + "rev": "21249e0d5c68b4e8f3661b250aa8272a8785d678", "type": "github" } }, - "cardano-node": { + "cardano-db-sync": { "inputs": { "CHaP": "CHaP_2", - "cardano-automation": "cardano-automation", - "cardano-mainnet-mirror": "cardano-mainnet-mirror", - "customConfig": "customConfig", - "em": "em", - "empty-flake": "empty-flake", - "flake-compat": "flake-compat", + "cardano-parts": "cardano-parts", + "flake-compat": "flake-compat_4", "hackageNix": "hackageNix", "haskellNix": "haskellNix", - "hostNixpkgs": [ - "cardano-node", - "nixpkgs" - ], "iohkNix": "iohkNix", - "nix2container": "nix2container", "nixpkgs": [ - "cardano-node", + "cardano-nix", + "cardano-db-sync", "haskellNix", "nixpkgs-unstable" ], - "ops-lib": "ops-lib", - "std": [ - "cardano-node", - "tullia", - "std" - ], - "tullia": "tullia", - "utils": "utils_2" + "utils": "utils" }, "locked": { - "lastModified": 1687190129, - "narHash": "sha256-JCa9+QhZ2RVSIKkhz2WCZqTKCgdUSuezWS2YsQ5vhM4=", - "owner": "input-output-hk", - "repo": "cardano-node", - "rev": "6f79e5c3ea109a70cd01910368e011635767305a", + "lastModified": 1707925775, + "narHash": "sha256-z3YUrUImpV/wmJi+pfw6YuhBw+2Xd3jGlSWk7WI69/4=", + "owner": "intersectmbo", + "repo": "cardano-db-sync", + "rev": "ed3dc8bbb79f07c26ec43f10bad661b0bef3b915", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "8.1.1", - "repo": "cardano-node", + "owner": "intersectmbo", + "ref": "13.2.0.1", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-node_2": { + "cardano-db-sync-schema": { "flake": false, "locked": { - "lastModified": 1659625017, - "narHash": "sha256-4IrheFeoWfvkZQndEk4fGUkOiOjcVhcyXZ6IqmvkDgg=", + "lastModified": 1688568916, + "narHash": "sha256-XTGTi3PzCcbLL+63JSXTe7mQmGKB0YgEoW1VpqdX2d0=", "owner": "input-output-hk", - "repo": "cardano-node", - "rev": "950c4e222086fed5ca53564e642434ce9307b0b9", + "repo": "cardano-db-sync", + "rev": "6e69a80797f2d68423b25ca7787e81533b367e42", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "1.35.3", - "repo": "cardano-node", + "ref": "13.1.1.3", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-shell": { + "cardano-db-sync-schema-ng": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1694078776, + "narHash": "sha256-QBnUDobTwWQmooCNr1WcaAzRbAKokon8lvAN6VQ1u34=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-db-sync", + "rev": "b44eb735fe64fe4e8079935df722d0a32a41c2a4", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "sancho-1-1-0", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-shell_2": { + "cardano-db-sync-service": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1688568916, + "narHash": "sha256-XTGTi3PzCcbLL+63JSXTe7mQmGKB0YgEoW1VpqdX2d0=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-db-sync", + "rev": "6e69a80797f2d68423b25ca7787e81533b367e42", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "13.1.1.3", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-shell_3": { + "cardano-explorer-app": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1655291958, + "narHash": "sha256-OByt95cIJrA8pXsvCztsWmFcDaQaSYGohSOHoaZWKJs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-explorer-app", + "rev": "a65938afe159adb1d1e2808305a7316738f5e634", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "fix-nix-system", + "repo": "cardano-explorer-app", "type": "github" } }, - "cardano-shell_4": { + "cardano-graphql": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1657201429, + "narHash": "sha256-kx8Pe5HllnJceQHsBDB4hHcEQNSiq8D+OFFkRuuUFQE=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-graphql", + "rev": "ffb40028f51e23983c2ae27693bbdcd152208d9d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "repo": "cardano-graphql", "type": "github" } }, - "cardano-shell_5": { - "flake": false, + "cardano-mainnet-mirror": { + "inputs": { + "nixpkgs": "nixpkgs_15" + }, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "nix", + "repo": "cardano-mainnet-mirror", "type": "github" } }, - "cardano-shell_6": { - "flake": false, + "cardano-mainnet-mirror_2": { + "inputs": { + "nixpkgs": "nixpkgs_25" + }, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "nix", + "repo": "cardano-mainnet-mirror", "type": "github" } }, - "cardano-shell_7": { - "flake": false, + "cardano-mainnet-mirror_3": { + "inputs": { + "nixpkgs": "nixpkgs_34" + }, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "nix", + "repo": "cardano-mainnet-mirror", "type": "github" } }, - "cardano-wallet": { + "cardano-nix": { "inputs": { - "customConfig": "customConfig_2", - "ema": "ema", - "emanote": "emanote", - "flake-compat": "flake-compat_8", - "flake-utils": "flake-utils_25", - "haskellNix": "haskellNix_2", + "blockfrost": "blockfrost_2", + "cardano-configurations-8.1.1": "cardano-configurations-8.1.1", + "cardano-configurations-8.7.3": "cardano-configurations-8.7.3", + "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", + "devour-flake": "devour-flake", + "devshell": "devshell_4", + "flake-parts": "flake-parts_5", + "flake-root": "flake-root", + "hercules-ci-effects": "hercules-ci-effects", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "treefmt-nix": "treefmt-nix_3" + }, + "locked": { + "lastModified": 1721651758, + "narHash": "sha256-pciT8ASgAovl6I0GsdiWnUhExNXPJtQZpD8dTcv1o60=", + "owner": "mlabs-haskell", + "repo": "cardano.nix", + "rev": "f6a7f0c43299783ca37bbdc73195c7289854e8da", + "type": "github" + }, + "original": { + "owner": "mlabs-haskell", + "ref": "dshuiski/ogmios-v6.5.0", + "repo": "cardano.nix", + "type": "github" + } + }, + "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", "hostNixpkgs": [ - "db-sync", - "cardano-world", - "cardano-wallet", + "cardano-node", "nixpkgs" ], - "iohkNix": "iohkNix_2", + "iohkNix": "iohkNix_4", + "nix2container": "nix2container_6", "nixpkgs": [ - "db-sync", - "cardano-world", - "cardano-wallet", + "cardano-node", "haskellNix", "nixpkgs-unstable" - ] + ], + "ops-lib": "ops-lib_3", + "std": "std_5", + "utils": "utils_7" }, "locked": { - "lastModified": 1656674685, - "narHash": "sha256-Uq02O758v7U61a9Ol6VzSDyx3S/CVHn0l/OUM1UYJkY=", + "lastModified": 1721843629, + "narHash": "sha256-F5wgRA820x16f+8c/LlEEBG0rMJIA1XWw6X0ZwX5UWs=", "owner": "input-output-hk", - "repo": "cardano-wallet", - "rev": "c0ece6ad1868682b074708ffb810bdc2ea96934f", + "repo": "cardano-node", + "rev": "176f99e51155cb3eaa0711db1c3c969d67438958", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "v2022-07-01", - "repo": "cardano-wallet", + "ref": "9.1.0", + "repo": "cardano-node", "type": "github" } }, - "cardano-world": { + "cardano-node-8.1.1": { "inputs": { - "bitte": "bitte", - "bitte-cells": "bitte-cells", - "byron-chain": "byron-chain", - "capsules": "capsules_2", - "cardano-db-sync": [ - "db-sync" + "CHaP": "CHaP_3", + "cardano-automation": "cardano-automation", + "cardano-mainnet-mirror": "cardano-mainnet-mirror", + "customConfig": "customConfig", + "em": "em", + "empty-flake": "empty-flake_2", + "flake-compat": "flake-compat_6", + "hackageNix": "hackageNix_2", + "haskellNix": "haskellNix_2", + "hostNixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "nixpkgs" ], - "cardano-explorer-app": "cardano-explorer-app", - "cardano-graphql": "cardano-graphql", - "cardano-node": "cardano-node_2", - "cardano-wallet": "cardano-wallet", - "data-merge": "data-merge_3", - "flake-compat": "flake-compat_9", - "hackage": "hackage_3", - "haskell-nix": "haskell-nix_2", - "iohk-nix": "iohk-nix", - "n2c": "n2c_3", - "nix-inclusive": "nix-inclusive", - "nixpkgs": "nixpkgs_63", - "nixpkgs-haskell": [ - "db-sync", - "cardano-world", - "haskell-nix", + "iohkNix": "iohkNix_2", + "nix2container": "nix2container", + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "haskellNix", "nixpkgs-unstable" ], - "ogmios": "ogmios", - "std": "std_3", - "tullia": "tullia_2" + "ops-lib": "ops-lib", + "std": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std" + ], + "tullia": "tullia", + "utils": "utils_3" }, "locked": { - "lastModified": 1662508244, - "narHash": "sha256-s8kroVd8VAZ/Lfv2gNt+RzIuSnWpQxAAL0y90tn1i0o=", - "owner": "input-output-hk", - "repo": "cardano-world", - "rev": "0b6dcb5b61a0f7a2c048cb757463cbc0dfa0fe24", + "lastModified": 1687190129, + "narHash": "sha256-JCa9+QhZ2RVSIKkhz2WCZqTKCgdUSuezWS2YsQ5vhM4=", + "owner": "intersectmbo", + "repo": "cardano-node", + "rev": "6f79e5c3ea109a70cd01910368e011635767305a", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "cardano-world", + "owner": "intersectmbo", + "ref": "8.1.1", + "repo": "cardano-node", "type": "github" } }, - "cicero": { + "cardano-node-8.7.3": { "inputs": { - "alejandra": "alejandra", - "data-merge": "data-merge_2", - "devshell": "devshell_8", - "driver": "driver", - "follower": "follower", - "haskell-nix": "haskell-nix", - "inclusive": "inclusive_8", - "nix": "nix_8", - "nix-cache-proxy": "nix-cache-proxy", - "nixpkgs": "nixpkgs_39", - "poetry2nix": "poetry2nix", - "utils": "utils_16" + "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": 1647522107, - "narHash": "sha256-Kti1zv+GXnbujkJ0ODB2ukq4Eb2RVOpudZ1xVDhhbes=", - "owner": "input-output-hk", - "repo": "cicero", - "rev": "0fd8642fe437f6129fe6914f032d3fdc7591d4fe", + "lastModified": 1702654749, + "narHash": "sha256-fIzSNSKWC7qMRjHUMHfrMnEzHiFu7ac/UUgfofXqaFY=", + "owner": "intersectmbo", + "repo": "cardano-node", + "rev": "a4a8119b59b1fbb9a69c79e1e6900e91292161e7", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "cicero", + "owner": "intersectmbo", + "ref": "8.7.3", + "repo": "cardano-node", "type": "github" } }, - "customConfig": { + "cardano-node-service": { + "flake": false, "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "lastModified": 1690209950, + "narHash": "sha256-d0V8N+y/OarYv6GQycGXnbPly7GeJRBEeE1017qj9eI=", "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "repo": "cardano-node", + "rev": "d2d90b48c5577b4412d5c9c9968b55f8ab4b9767", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "empty-flake", + "ref": "8.1.2", + "repo": "cardano-node", "type": "github" } }, - "customConfig_2": { + "cardano-node_2": { + "flake": false, "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "lastModified": 1659625017, + "narHash": "sha256-4IrheFeoWfvkZQndEk4fGUkOiOjcVhcyXZ6IqmvkDgg=", "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "repo": "cardano-node", + "rev": "950c4e222086fed5ca53564e642434ce9307b0b9", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "empty-flake", + "ref": "1.35.3", + "repo": "cardano-node", "type": "github" } }, - "customConfig_3": { - "locked": { - "lastModified": 1, - "narHash": "sha256-Zd5w1I1Dwt783Q4WuBuCpedcwG1DrIgQGqabyF87prM=", - "path": "./custom-config", - "type": "path" - }, - "original": { - "path": "./custom-config", - "type": "path" - } - }, - "data-merge": { + "cardano-parts": { "inputs": { - "nixlib": "nixlib", - "yants": "yants_2" + "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": 1648237091, - "narHash": "sha256-OtgcOt/CB0/9S0rh1eAog+AvAg9kF6GyAknyWOXiAZI=", - "owner": "divnix", - "repo": "data-merge", - "rev": "b21bcf7bd949ac92af3930ecb1d3df8786384722", + "lastModified": 1697147999, + "narHash": "sha256-mbSWIcmDnt2mlETCNL8MI97nDH1lkOxIxFHKXXfOV28=", + "owner": "input-output-hk", + "repo": "cardano-parts", + "rev": "af8993ee12f78ddfcc31eefe006391669cb11462", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "cardano-parts", "type": "github" } }, - "data-merge_2": { - "inputs": { - "nixlib": "nixlib_2" - }, + "cardano-shell": { + "flake": false, "locked": { - "lastModified": 1635967744, - "narHash": "sha256-01065dNad3BIepNzrpYuYInxq/ynqtGMSsIiNqjND7E=", - "owner": "divnix", - "repo": "data-merge", - "rev": "68bd71f980f75cf73bc5071982eddfe6bc089768", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "data-merge_3": { - "inputs": { - "nixlib": "nixlib_3", - "yants": "yants_4" - }, + "cardano-shell_10": { + "flake": false, "locked": { - "lastModified": 1655854240, - "narHash": "sha256-j74ixD7Y0bF3h0fBJFKPR9botlrMu0fgG/YsiUKybko=", - "owner": "divnix", - "repo": "data-merge", - "rev": "0bbe0a68d4ee090b8bbad0c5e1e85060d2bdfe98", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "db-sync": { - "inputs": { - "cardano-world": "cardano-world", - "customConfig": "customConfig_3", - "flake-compat": "flake-compat_10", - "haskellNix": "haskellNix_3", - "iohkNix": "iohkNix_3", - "nixpkgs": [ - "db-sync", - "haskellNix", - "nixpkgs-unstable" - ], - "utils": "utils_23" - }, + "cardano-shell_2": { + "flake": false, "locked": { - "lastModified": 1670313550, - "narHash": "sha256-Gkn/hyK0xiDJZY1O5JEwuosMzar+IskC9xxeBts+0H4=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "cardano-db-sync", - "rev": "1040fa9ec85fd75ce9f02dae2006170136793d02", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "13.1.0.0", - "repo": "cardano-db-sync", + "repo": "cardano-shell", "type": "github" } }, - "deploy": { - "inputs": { - "fenix": "fenix", - "flake-compat": "flake-compat_4", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "deploy", - "fenix", - "nixpkgs" - ], - "utils": "utils_3" - }, + "cardano-shell_3": { + "flake": false, "locked": { - "lastModified": 1638318651, - "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "deploy-rs", - "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "deploy-rs", + "repo": "cardano-shell", "type": "github" } }, - "deploy_2": { - "inputs": { - "fenix": "fenix_3", - "flake-compat": "flake-compat_5", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "deploy", - "fenix", - "nixpkgs" - ], - "utils": "utils_9" - }, + "cardano-shell_4": { + "flake": false, "locked": { - "lastModified": 1638318651, - "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "deploy-rs", - "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "deploy-rs", + "repo": "cardano-shell", "type": "github" } }, - "deploy_3": { - "inputs": { - "fenix": "fenix_5", - "flake-compat": "flake-compat_6", - "nixpkgs": [ - "db-sync", - "cardano-world", - "capsules", - "bitte", - "deploy", - "fenix", - "nixpkgs" - ], - "utils": "utils_17" - }, + "cardano-shell_5": { + "flake": false, "locked": { - "lastModified": 1638318651, - "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "deploy-rs", - "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "deploy-rs", - "type": "github" - } - }, - "devshell": { - "inputs": { - "flake-utils": [ - "cardano-node", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "cardano-node", - "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_10": { - "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", + "repo": "cardano-shell", "type": "github" } }, - "devshell_11": { + "cardano-shell_6": { + "flake": false, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_12": { + "cardano-shell_7": { + "flake": false, "locked": { - "lastModified": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_13": { + "cardano-shell_8": { + "flake": false, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_14": { + "cardano-shell_9": { + "flake": false, "locked": { - "lastModified": 1637098489, - "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", - "owner": "numtide", - "repo": "devshell", - "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_15": { + "cardano-wallet": { "inputs": { - "flake-utils": [ + "customConfig": "customConfig_4", + "ema": "ema", + "emanote": "emanote", + "flake-compat": "flake-compat_21", + "flake-utils": "flake-utils_40", + "haskellNix": "haskellNix_5", + "hostNixpkgs": [ "db-sync", "cardano-world", - "std", - "flake-utils" + "cardano-wallet", + "nixpkgs" ], + "iohkNix": "iohkNix_5", "nixpkgs": [ "db-sync", "cardano-world", - "std", - "nixpkgs" + "cardano-wallet", + "haskellNix", + "nixpkgs-unstable" ] }, "locked": { - "lastModified": 1658746384, - "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", - "owner": "numtide", - "repo": "devshell", - "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", + "lastModified": 1656674685, + "narHash": "sha256-Uq02O758v7U61a9Ol6VzSDyx3S/CVHn0l/OUM1UYJkY=", + "owner": "input-output-hk", + "repo": "cardano-wallet", + "rev": "c0ece6ad1868682b074708ffb810bdc2ea96934f", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "ref": "v2022-07-01", + "repo": "cardano-wallet", "type": "github" } }, - "devshell_16": { - "inputs": { - "flake-utils": "flake-utils_31", - "nixpkgs": [ - "db-sync", - "cardano-world", - "tullia", - "std", - "nixpkgs" - ] - }, + "cardano-wallet-service": { + "flake": false, "locked": { - "lastModified": 1650900878, - "narHash": "sha256-qhNncMBSa9STnhiLfELEQpYC1L4GrYHNIzyCZ/pilsI=", - "owner": "numtide", - "repo": "devshell", - "rev": "d97df53b5ddaa1cfbea7cddbd207eb2634304733", + "lastModified": 1689751896, + "narHash": "sha256-ijflgIw+1FpLoxM4Rksf4MJvNqnEPAv3gNWE8zMuefU=", + "owner": "cardano-foundation", + "repo": "cardano-wallet", + "rev": "3f0d2f3abe706958fab8cdc528184068bd0453c9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "cardano-foundation", + "ref": "v2023-07-18", + "repo": "cardano-wallet", "type": "github" } }, - "devshell_2": { + "cardano-world": { + "inputs": { + "bitte": "bitte", + "bitte-cells": "bitte-cells", + "byron-chain": "byron-chain", + "capsules": "capsules_2", + "cardano-db-sync": [ + "db-sync" + ], + "cardano-explorer-app": "cardano-explorer-app", + "cardano-graphql": "cardano-graphql", + "cardano-node": "cardano-node_2", + "cardano-wallet": "cardano-wallet", + "data-merge": "data-merge_3", + "flake-compat": "flake-compat_22", + "hackage": "hackage_4", + "haskell-nix": "haskell-nix_3", + "iohk-nix": "iohk-nix_2", + "n2c": "n2c_6", + "nix-inclusive": "nix-inclusive", + "nixpkgs": "nixpkgs_92", + "nixpkgs-haskell": [ + "db-sync", + "cardano-world", + "haskell-nix", + "nixpkgs-unstable" + ], + "ogmios": "ogmios", + "std": "std_7", + "tullia": "tullia_4" + }, "locked": { - "lastModified": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1662508244, + "narHash": "sha256-s8kroVd8VAZ/Lfv2gNt+RzIuSnWpQxAAL0y90tn1i0o=", + "owner": "input-output-hk", + "repo": "cardano-world", + "rev": "0b6dcb5b61a0f7a2c048cb757463cbc0dfa0fe24", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-world", "type": "github" } }, - "devshell_3": { + "cicero": { + "inputs": { + "alejandra": "alejandra", + "data-merge": "data-merge_2", + "devshell": "devshell_12", + "driver": "driver", + "follower": "follower", + "haskell-nix": "haskell-nix_2", + "inclusive": "inclusive_9", + "nix": "nix_13", + "nix-cache-proxy": "nix-cache-proxy", + "nixpkgs": "nixpkgs_68", + "poetry2nix": "poetry2nix", + "utils": "utils_21" + }, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1647522107, + "narHash": "sha256-Kti1zv+GXnbujkJ0ODB2ukq4Eb2RVOpudZ1xVDhhbes=", + "owner": "input-output-hk", + "repo": "cicero", + "rev": "0fd8642fe437f6129fe6914f032d3fdc7591d4fe", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cicero", "type": "github" } }, - "devshell_4": { + "colmena": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "nixpkgs" + ], + "stable": "stable" + }, "locked": { - "lastModified": 1637098489, - "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", - "owner": "numtide", - "repo": "devshell", - "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", + "lastModified": 1684127108, + "narHash": "sha256-01bfuSY4gnshhtqA1EJCw2CMsKkAx+dHS+sEpQ2+EAQ=", + "owner": "zhaofengli", + "repo": "colmena", + "rev": "5fdd743a11e7291bd8ac1e169d62ba6156c99be4", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "zhaofengli", + "ref": "v0.4.0", + "repo": "colmena", "type": "github" } }, - "devshell_5": { + "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": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1676162383, + "narHash": "sha256-krUCKdz7ebHlFYm/A7IbKDnj2ZmMMm3yIEQcooqm7+E=", + "owner": "ipetkov", + "repo": "crane", + "rev": "6fb400ec631b22ccdbc7090b38207f7fb5cfb5f2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "ipetkov", + "repo": "crane", "type": "github" } }, - "devshell_6": { + "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": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1683429373, + "narHash": "sha256-Mx5lwMyk2T40wFqOoYcJLs4srwO2UrsepTZhlHNuTrI=", + "owner": "manveru", + "repo": "crystal-flake", + "rev": "e7a443c20e2be6e5dd870586705dd27c91aa9c5c", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "manveru", + "repo": "crystal-flake", "type": "github" } }, - "devshell_7": { - "inputs": { - "flake-utils": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "flake-utils" - ], - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ] + "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": 1658746384, - "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", - "owner": "numtide", - "repo": "devshell", - "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", + "lastModified": 1681995387, + "narHash": "sha256-t+1vM1m62UftCvfa90Dg6nqt6Zseh/GP/Gc1VfOa4+c=", + "owner": "crystal-lang", + "repo": "crystal", + "rev": "a59a3dbd738269d5aad6051c3834fc70f482f469", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "crystal-lang", + "ref": "1.8.1", + "repo": "crystal", "type": "github" } }, - "devshell_8": { - "inputs": { - "flake-utils": "flake-utils_15", - "nixpkgs": "nixpkgs_36" + "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": { - "lastModified": 1644227066, - "narHash": "sha256-FHcFZtpZEWnUh62xlyY3jfXAXHzJNEDLDzLsJxn+ve0=", - "owner": "numtide", - "repo": "devshell", - "rev": "7033f64dd9ef8d9d8644c5030c73913351d2b660", - "type": "github" + "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": { - "owner": "numtide", - "repo": "devshell", - "type": "github" + "type": "tarball", + "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-linux-x86_64.tar.gz" } }, - "devshell_9": { + "crystalline-src": { + "flake": false, "locked": { - "lastModified": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1681549124, + "narHash": "sha256-kx3rdGqIbrOaHY7V3uXLqIFEYzzsMKzNwZ6Neq8zM3c=", + "owner": "elbywan", + "repo": "crystalline", + "rev": "4ac0ae282c5f4172230fea1e93df51c2b380f475", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "elbywan", + "ref": "v0.9.0", + "repo": "crystalline", "type": "github" } }, - "dmerge": { - "inputs": { - "nixlib": [ - "cardano-node", - "tullia", - "std", - "nixpkgs" - ], - "yants": [ - "cardano-node", - "tullia", - "std", - "yants" - ] - }, + "customConfig": { "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "dmerge_2": { - "inputs": { - "nixlib": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ], - "yants": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "yants" - ] - }, + "customConfig_2": { "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "dmerge_3": { - "inputs": { - "nixlib": [ - "db-sync", - "cardano-world", - "std", - "nixpkgs" - ], - "yants": [ - "db-sync", - "cardano-world", - "std", - "yants" - ] - }, + "customConfig_3": { "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "driver": { - "inputs": { - "devshell": "devshell_9", - "inclusive": "inclusive_6", - "nix": "nix_7", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" - ], - "utils": "utils_13" - }, + "customConfig_4": { "locked": { - "lastModified": 1644418487, - "narHash": "sha256-nzFmmBYjNjWVy25bHLLmZECfwJm3nxcAr/mYVYxWggA=", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", "owner": "input-output-hk", - "repo": "nomad-driver-nix", - "rev": "7f7adb6814b4bf926597e4b810b803140176122c", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "nomad-driver-nix", + "repo": "empty-flake", "type": "github" } }, - "easy-purescript-nix": { - "flake": false, + "customConfig_5": { "locked": { - "lastModified": 1696584097, - "narHash": "sha256-a9Hhqf/Fi0FkjRTcQr3pYDhrO9A9tdOkaeVgD23Cdrk=", - "owner": "justinwoo", - "repo": "easy-purescript-nix", - "rev": "d5fe5f4b210a0e4bac42ae0c159596a49c5eb016", - "type": "github" + "lastModified": 1, + "narHash": "sha256-Zd5w1I1Dwt783Q4WuBuCpedcwG1DrIgQGqabyF87prM=", + "path": "./custom-config", + "type": "path" }, "original": { - "owner": "justinwoo", - "repo": "easy-purescript-nix", - "type": "github" + "path": "./custom-config", + "type": "path" } }, - "em": { - "flake": false, + "data-merge": { + "inputs": { + "nixlib": "nixlib", + "yants": "yants_6" + }, "locked": { - "lastModified": 1684791668, - "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", - "owner": "deepfire", - "repo": "em", - "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", + "lastModified": 1648237091, + "narHash": "sha256-OtgcOt/CB0/9S0rh1eAog+AvAg9kF6GyAknyWOXiAZI=", + "owner": "divnix", + "repo": "data-merge", + "rev": "b21bcf7bd949ac92af3930ecb1d3df8786384722", "type": "github" }, "original": { - "owner": "deepfire", - "repo": "em", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "ema": { + "data-merge_2": { "inputs": { - "flake-compat": "flake-compat_7", - "flake-utils": "flake-utils_22", - "nixpkgs": "nixpkgs_54", - "pre-commit-hooks": "pre-commit-hooks" + "nixlib": "nixlib_2" }, "locked": { - "lastModified": 1646661767, - "narHash": "sha256-5zxUr3nO4r04K5WGrW/+nW84qbOW8wNJLt902yQmyF4=", - "owner": "srid", - "repo": "ema", - "rev": "bcabc170b7de9cdd83b4bbcf59130b54933602ea", + "lastModified": 1635967744, + "narHash": "sha256-01065dNad3BIepNzrpYuYInxq/ynqtGMSsIiNqjND7E=", + "owner": "divnix", + "repo": "data-merge", + "rev": "68bd71f980f75cf73bc5071982eddfe6bc089768", "type": "github" }, "original": { - "owner": "srid", - "repo": "ema", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "ema_2": { - "flake": false, + "data-merge_3": { + "inputs": { + "nixlib": "nixlib_3", + "yants": "yants_8" + }, "locked": { - "lastModified": 1655231448, - "narHash": "sha256-LmAnOFKiqOWW9cQNZCbqFF0N1Mx073908voXz+4Fzic=", - "owner": "srid", - "repo": "ema", - "rev": "da5b29f03c1edfb7f947666a5a818fb97cc3c229", + "lastModified": 1655854240, + "narHash": "sha256-j74ixD7Y0bF3h0fBJFKPR9botlrMu0fgG/YsiUKybko=", + "owner": "divnix", + "repo": "data-merge", + "rev": "0bbe0a68d4ee090b8bbad0c5e1e85060d2bdfe98", "type": "github" }, "original": { - "owner": "srid", - "ref": "multisite", - "repo": "ema", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "emanote": { + "db-sync": { "inputs": { - "ema": "ema_2", - "flake-parts": "flake-parts", - "haskell-flake": "haskell-flake", - "nixpkgs": "nixpkgs_57", - "tailwind-haskell": "tailwind-haskell" + "cardano-world": "cardano-world", + "customConfig": "customConfig_5", + "flake-compat": "flake-compat_23", + "haskellNix": "haskellNix_6", + "iohkNix": "iohkNix_6", + "nixpkgs": [ + "db-sync", + "haskellNix", + "nixpkgs-unstable" + ], + "utils": "utils_28" }, "locked": { - "lastModified": 1655823900, - "narHash": "sha256-YEDJxa2gPf2+GGyrkFz4EliCml1FyDualZtbbZEmljA=", - "owner": "srid", - "repo": "emanote", - "rev": "147528d9df81b881214652ce0cefec0b3d52965e", + "lastModified": 1670313550, + "narHash": "sha256-Gkn/hyK0xiDJZY1O5JEwuosMzar+IskC9xxeBts+0H4=", + "owner": "input-output-hk", + "repo": "cardano-db-sync", + "rev": "1040fa9ec85fd75ce9f02dae2006170136793d02", "type": "github" }, "original": { - "owner": "srid", - "repo": "emanote", + "owner": "input-output-hk", + "ref": "13.1.0.0", + "repo": "cardano-db-sync", "type": "github" } }, - "empty-flake": { + "deploy": { + "inputs": { + "fenix": "fenix_3", + "flake-compat": "flake-compat_17", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "deploy", + "fenix", + "nixpkgs" + ], + "utils": "utils_8" + }, "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "lastModified": 1638318651, + "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "repo": "deploy-rs", + "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "empty-flake", + "repo": "deploy-rs", "type": "github" } }, - "fenix": { + "deploy_2": { "inputs": { - "nixpkgs": "nixpkgs_13", - "rust-analyzer-src": "rust-analyzer-src" + "fenix": "fenix_5", + "flake-compat": "flake-compat_18", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "deploy", + "fenix", + "nixpkgs" + ], + "utils": "utils_14" }, "locked": { - "lastModified": 1645165506, - "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", + "lastModified": 1638318651, + "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "owner": "input-output-hk", + "repo": "deploy-rs", + "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "input-output-hk", + "repo": "deploy-rs", "type": "github" } }, - "fenix_2": { + "deploy_3": { "inputs": { + "fenix": "fenix_7", + "flake-compat": "flake-compat_19", "nixpkgs": [ "db-sync", "cardano-world", - "bitte", "capsules", "bitte", - "nixpkgs-unstable" + "deploy", + "fenix", + "nixpkgs" ], - "rust-analyzer-src": "rust-analyzer-src_2" + "utils": "utils_22" }, "locked": { - "lastModified": 1649226351, - "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", - "owner": "nix-community", - "repo": "fenix", - "rev": "c7e184561fe843abb861cd7d22c23066987078e2", + "lastModified": 1638318651, + "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "owner": "input-output-hk", + "repo": "deploy-rs", + "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "input-output-hk", + "repo": "deploy-rs", "type": "github" } }, - "fenix_3": { - "inputs": { - "nixpkgs": "nixpkgs_26", - "rust-analyzer-src": "rust-analyzer-src_3" - }, + "devour-flake": { + "flake": false, "locked": { - "lastModified": 1645165506, - "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", + "lastModified": 1694098737, + "narHash": "sha256-O51F4YFOzlaQAc9b6xjkAqpvrvCtw/Os2M7TU0y4SKQ=", + "owner": "srid", + "repo": "devour-flake", + "rev": "30a34036b29b0d12989ef6c8be77aa949d85aef5", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "srid", + "repo": "devour-flake", "type": "github" } }, - "fenix_4": { + "devshell": { "inputs": { - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "nixpkgs-unstable" + "flake-utils": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "flake-utils" ], - "rust-analyzer-src": "rust-analyzer-src_4" + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1660631227, - "narHash": "sha256-LSXmaDhbPw+3ww63Rx5ewBNWwCQIrzQvzphCFm5BRbU=", - "owner": "nix-community", - "repo": "fenix", - "rev": "41731c1a7ba1441c7544e8a0387aaf58e48f26b8", + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_5": { - "inputs": { - "nixpkgs": "nixpkgs_42", - "rust-analyzer-src": "rust-analyzer-src_5" - }, + "devshell_10": { "locked": { - "lastModified": 1645165506, - "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_6": { + "devshell_11": { "inputs": { - "nixpkgs": [ + "flake-utils": [ "db-sync", "cardano-world", - "capsules", "bitte", - "nixpkgs-unstable" + "std", + "flake-utils" ], - "rust-analyzer-src": "rust-analyzer-src_6" + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1649226351, - "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", - "owner": "nix-community", - "repo": "fenix", - "rev": "c7e184561fe843abb861cd7d22c23066987078e2", + "lastModified": 1658746384, + "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", + "owner": "numtide", + "repo": "devshell", + "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat": { - "flake": false, + "devshell_12": { + "inputs": { + "flake-utils": "flake-utils_30", + "nixpkgs": "nixpkgs_65" + }, "locked": { - "lastModified": 1647532380, - "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "7da118186435255a30b5ffeabba9629c344c0bec", + "lastModified": 1644227066, + "narHash": "sha256-FHcFZtpZEWnUh62xlyY3jfXAXHzJNEDLDzLsJxn+ve0=", + "owner": "numtide", + "repo": "devshell", + "rev": "7033f64dd9ef8d9d8644c5030c73913351d2b660", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "fixes", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_10": { - "flake": false, + "devshell_13": { "locked": { - "lastModified": 1647532380, - "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "7da118186435255a30b5ffeabba9629c344c0bec", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", + "owner": "numtide", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "fixes", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_11": { - "flake": false, + "devshell_14": { "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_12": { - "flake": false, + "devshell_15": { "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_13": { - "flake": false, + "devshell_16": { "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", + "owner": "numtide", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_14": { - "flake": false, + "devshell_17": { "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_2": { - "flake": false, + "devshell_18": { "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "lastModified": 1637098489, + "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", + "owner": "numtide", + "repo": "devshell", + "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_3": { - "flake": false, + "devshell_19": { + "inputs": { + "flake-utils": [ + "db-sync", + "cardano-world", + "std", + "flake-utils" + ], + "nixpkgs": [ + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1658746384, + "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", + "owner": "numtide", + "repo": "devshell", + "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_4": { - "flake": false, + "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": 1627913399, - "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_5": { - "flake": false, - "locked": { - "lastModified": 1627913399, - "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_6": { - "flake": false, - "locked": { - "lastModified": 1627913399, - "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", - "type": "github" + "devshell_20": { + "inputs": { + "flake-utils": "flake-utils_46", + "nixpkgs": [ + "db-sync", + "cardano-world", + "tullia", + "std", + "nixpkgs" + ] }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_7": { - "flake": false, "locked": { - "lastModified": 1641205782, - "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", + "lastModified": 1650900878, + "narHash": "sha256-qhNncMBSa9STnhiLfELEQpYC1L4GrYHNIzyCZ/pilsI=", + "owner": "numtide", + "repo": "devshell", + "rev": "d97df53b5ddaa1cfbea7cddbd207eb2634304733", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_8": { - "flake": false, - "locked": { - "lastModified": 1635892615, - "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "eca47d3377946315596da653862d341ee5341318", - "type": "github" + "devshell_3": { + "inputs": { + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.7.3", + "std", + "nixpkgs" + ], + "systems": "systems_2" }, - "original": { - "owner": "input-output-hk", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_9": { - "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1686680692, + "narHash": "sha256-SsLZz3TDleraAiJq4EkmdyewSyiv5g0LZYc6vaLZOMQ=", + "owner": "numtide", + "repo": "devshell", + "rev": "fd6223370774dd9c33354e87a007004b5fd36442", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-parts": { + "devshell_4": { "inputs": { - "nixpkgs": "nixpkgs_56" + "nixpkgs": [ + "cardano-nix", + "nixpkgs" + ], + "systems": "systems_3" }, "locked": { - "lastModified": 1655570068, - "narHash": "sha256-KUSd2a6KgYTHd2l3Goee/P+DrAC6n1Tau+7V68czSZU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "6dbc77b9c0477f8a9a6a9081077bb38c6a3dbb3a", + "lastModified": 1695973661, + "narHash": "sha256-BP2H4c42GThPIhERtTpV1yCtwQHYHEKdRu7pjrmQAwo=", + "owner": "numtide", + "repo": "devshell", + "rev": "cd4e2fda3150dd2f689caeac07b7f47df5197c31", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-parts_2": { + "devshell_5": { "inputs": { - "nixpkgs-lib": [ - "hercules-ci-effects", + "flake-utils": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "flake-utils" + ], + "nixpkgs": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", "nixpkgs" ] }, "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, - "flake-utils": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", "type": "github" }, "original": { "owner": "numtide", - "repo": "flake-utils", + "repo": "devshell", "type": "github" } }, - "flake-utils_10": { + "devshell_6": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { "owner": "numtide", - "repo": "flake-utils", + "repo": "devshell", "type": "github" } }, - "flake-utils_11": { + "devshell_7": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { "owner": "numtide", - "repo": "flake-utils", + "repo": "devshell", "type": "github" } }, - "flake-utils_12": { + "devshell_8": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1637098489, + "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "repo": "devshell", + "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", "type": "github" }, "original": { "owner": "numtide", - "repo": "flake-utils", + "repo": "devshell", "type": "github" } }, - "flake-utils_13": { + "devshell_9": { "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", "owner": "numtide", - "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { "owner": "numtide", - "repo": "flake-utils", + "repo": "devshell", "type": "github" } }, - "flake-utils_14": { + "dmerge": { + "inputs": { + "nixlib": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "nixpkgs" + ], + "yants": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_15": { + "dmerge_2": { + "inputs": { + "nixlib": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ], + "yants": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_16": { - "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_17": { + "dmerge_3": { + "inputs": { + "haumea": [ + "cardano-nix", + "cardano-node-8.7.3", + "std", + "haumea" + ], + "nixlib": [ + "cardano-nix", + "cardano-node-8.7.3", + "std", + "haumea", + "nixpkgs" + ], + "yants": [ + "cardano-nix", + "cardano-node-8.7.3", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "lastModified": 1686862774, + "narHash": "sha256-ojGtRQ9pIOUrxsQEuEPerUkqIJEuod9hIflfNkY+9CE=", + "owner": "divnix", + "repo": "dmerge", + "rev": "9f7f7a8349d33d7bd02e0f2b484b1f076e503a96", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "ref": "0.2.1", + "repo": "dmerge", "type": "github" } }, - "flake-utils_18": { + "dmerge_4": { + "inputs": { + "nixlib": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ], + "yants": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_19": { + "dmerge_5": { + "inputs": { + "haumea": [ + "cardano-node", + "std", + "haumea" + ], + "nixlib": [ + "cardano-node", + "std", + "lib" + ], + "yants": [ + "cardano-node", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1686862774, + "narHash": "sha256-ojGtRQ9pIOUrxsQEuEPerUkqIJEuod9hIflfNkY+9CE=", + "owner": "divnix", + "repo": "dmerge", + "rev": "9f7f7a8349d33d7bd02e0f2b484b1f076e503a96", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "ref": "0.2.1", + "repo": "dmerge", "type": "github" } }, - "flake-utils_2": { + "dmerge_6": { + "inputs": { + "nixlib": [ + "db-sync", + "cardano-world", + "bitte", + "std", + "nixpkgs" + ], + "yants": [ + "db-sync", + "cardano-world", + "bitte", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1679360468, - "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", - "owner": "hamishmack", - "repo": "flake-utils", - "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "hamishmack", - "ref": "hkm/nested-hydraJobs", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_20": { + "dmerge_7": { + "inputs": { + "nixlib": [ + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ], + "yants": [ + "db-sync", + "cardano-world", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_21": { + "driver": { + "inputs": { + "devshell": "devshell_13", + "inclusive": "inclusive_7", + "nix": "nix_12", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "utils": "utils_18" + }, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1644418487, + "narHash": "sha256-nzFmmBYjNjWVy25bHLLmZECfwJm3nxcAr/mYVYxWggA=", + "owner": "input-output-hk", + "repo": "nomad-driver-nix", + "rev": "7f7adb6814b4bf926597e4b810b803140176122c", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "nomad-driver-nix", "type": "github" } }, - "flake-utils_22": { + "easy-purescript-nix": { + "flake": false, "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "lastModified": 1710161569, + "narHash": "sha256-lcIRIOFCdIWEGyKyG/tB4KvxM9zoWuBRDxW+T+mvIb0=", + "owner": "justinwoo", + "repo": "easy-purescript-nix", + "rev": "117fd96acb69d7d1727df95b6fde9d8715e031fc", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "justinwoo", + "repo": "easy-purescript-nix", "type": "github" } }, - "flake-utils_23": { + "em": { + "flake": false, "locked": { - "lastModified": 1619345332, - "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", + "lastModified": 1684791668, + "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", + "owner": "deepfire", + "repo": "em", + "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "deepfire", + "repo": "em", "type": "github" } }, - "flake-utils_24": { + "em_2": { + "flake": false, "locked": { - "lastModified": 1652776076, - "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", + "lastModified": 1684791668, + "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", + "owner": "deepfire", + "repo": "em", + "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", "type": "github" }, "original": { - "owner": "numtide", - "ref": "v1.0.0", - "repo": "flake-utils", + "owner": "deepfire", + "repo": "em", "type": "github" } }, - "flake-utils_25": { + "em_3": { + "flake": false, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1685015066, + "narHash": "sha256-etAdEoYhtvjTw1ITh28WPNfwvvb5t/fpwCP6s7odSiQ=", + "owner": "deepfire", + "repo": "em", + "rev": "af69bb5c2ac2161434d8fea45f920f8f359587ce", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "deepfire", + "repo": "em", "type": "github" } }, - "flake-utils_26": { + "ema": { + "inputs": { + "flake-compat": "flake-compat_20", + "flake-utils": "flake-utils_37", + "nixpkgs": "nixpkgs_83", + "pre-commit-hooks": "pre-commit-hooks" + }, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1646661767, + "narHash": "sha256-5zxUr3nO4r04K5WGrW/+nW84qbOW8wNJLt902yQmyF4=", + "owner": "srid", + "repo": "ema", + "rev": "bcabc170b7de9cdd83b4bbcf59130b54933602ea", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "srid", + "repo": "ema", "type": "github" } }, - "flake-utils_27": { + "ema_2": { + "flake": false, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1655231448, + "narHash": "sha256-LmAnOFKiqOWW9cQNZCbqFF0N1Mx073908voXz+4Fzic=", + "owner": "srid", + "repo": "ema", + "rev": "da5b29f03c1edfb7f947666a5a818fb97cc3c229", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "srid", + "ref": "multisite", + "repo": "ema", "type": "github" } }, - "flake-utils_28": { - "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", - "type": "github" + "emanote": { + "inputs": { + "ema": "ema_2", + "flake-parts": "flake-parts_6", + "haskell-flake": "haskell-flake", + "nixpkgs": "nixpkgs_86", + "tailwind-haskell": "tailwind-haskell" }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_29": { "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "lastModified": 1655823900, + "narHash": "sha256-YEDJxa2gPf2+GGyrkFz4EliCml1FyDualZtbbZEmljA=", + "owner": "srid", + "repo": "emanote", + "rev": "147528d9df81b881214652ce0cefec0b3d52965e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "srid", + "repo": "emanote", "type": "github" } }, - "flake-utils_3": { + "empty-flake": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_30": { + "empty-flake_2": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_31": { + "empty-flake_3": { "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_32": { + "empty-flake_4": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_33": { + "fenix": { + "inputs": { + "nixpkgs": [ + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "auth-keys-hub", + "statix", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1645251813, + "narHash": "sha256-cQ66tGjnZclBCS3nD26mZ5fUH+3/HnysGffBiWXUSHk=", + "owner": "nix-community", + "repo": "fenix", + "rev": "9892337b588c38ec59466a1c89befce464aae7f8", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_4": { + "fenix_2": { + "inputs": { + "nixpkgs": "nixpkgs_30", + "rust-analyzer-src": "rust-analyzer-src_2" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1677306201, + "narHash": "sha256-VZ9x7qdTosFvVsrpgFHrtYfT6PU3yMIs7NRYn9ELapI=", + "owner": "nix-community", + "repo": "fenix", + "rev": "0923f0c162f65ae40261ec940406049726cfeab4", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_5": { + "fenix_3": { + "inputs": { + "nixpkgs": "nixpkgs_42", + "rust-analyzer-src": "rust-analyzer-src_3" + }, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "lastModified": 1645165506, + "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_6": { + "fenix_4": { + "inputs": { + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nixpkgs-unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_4" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1649226351, + "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", + "owner": "nix-community", + "repo": "fenix", + "rev": "c7e184561fe843abb861cd7d22c23066987078e2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_7": { + "fenix_5": { + "inputs": { + "nixpkgs": "nixpkgs_55", + "rust-analyzer-src": "rust-analyzer-src_5" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1645165506, + "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_8": { + "fenix_6": { + "inputs": { + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "nixpkgs-unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_6" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1660631227, + "narHash": "sha256-LSXmaDhbPw+3ww63Rx5ewBNWwCQIrzQvzphCFm5BRbU=", + "owner": "nix-community", + "repo": "fenix", + "rev": "41731c1a7ba1441c7544e8a0387aaf58e48f26b8", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_9": { + "fenix_7": { + "inputs": { + "nixpkgs": "nixpkgs_71", + "rust-analyzer-src": "rust-analyzer-src_7" + }, "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "lastModified": 1645165506, + "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flakeCompat": { - "flake": false, - "locked": { - "lastModified": 1641205782, - "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "follower": { + "fenix_8": { "inputs": { - "devshell": "devshell_10", - "inclusive": "inclusive_7", "nixpkgs": [ "db-sync", "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" + "capsules", + "bitte", + "nixpkgs-unstable" ], - "utils": "utils_14" + "rust-analyzer-src": "rust-analyzer-src_8" }, "locked": { - "lastModified": 1642008295, - "narHash": "sha256-yx3lLN/hlvEeKItHJ5jH0KSm84IruTWMo78IItVPji4=", - "owner": "input-output-hk", - "repo": "nomad-follower", - "rev": "b1b0b00e940026f72d16bdf13e36ad20f1826e8a", + "lastModified": 1649226351, + "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", + "owner": "nix-community", + "repo": "fenix", + "rev": "c7e184561fe843abb861cd7d22c23066987078e2", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nomad-follower", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "ghc-8.6.5-iohk": { + "flake-compat": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_2": { + "flake-compat_10": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_3": { + "flake-compat_11": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_4": { + "flake-compat_12": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_5": { + "flake-compat_13": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_6": { + "flake-compat_14": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_7": { + "flake-compat_15": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "ghc98X": { + "flake-compat_16": { "flake": false, "locked": { - "lastModified": 1696643148, - "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", - "ref": "ghc-9.8", - "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", - "revCount": 61642, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "type": "github" }, "original": { - "ref": "ghc-9.8", - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", + "type": "github" } }, - "ghc99": { + "flake-compat_17": { "flake": false, "locked": { - "lastModified": 1701580282, - "narHash": "sha256-drA01r3JrXnkKyzI+owMZGxX0JameMzjK0W5jJE/+V4=", - "ref": "refs/heads/master", - "rev": "f5eb0f2982e9cf27515e892c4bdf634bcfb28459", - "revCount": 62197, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "type": "github" }, "original": { - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" } }, - "gomod2nix": { - "inputs": { - "nixpkgs": "nixpkgs_5", - "utils": "utils" - }, + "flake-compat_18": { + "flake": false, "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { - "owner": "tweag", - "repo": "gomod2nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage": { + "flake-compat_19": { "flake": false, "locked": { - "lastModified": 1646097829, - "narHash": "sha256-PcHDDV8NuUxZhPV/p++IkZC+SDZ1Db7m7K+9HN4/0S4=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "283f096976b48e54183905e7bdde7f213c6ee5cd", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage-nix": { + "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1702772694, - "narHash": "sha256-KL6ZjbhPBCco1ho0lmh0/dfPSNxjF8qtrTlzQcTN3iw=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "20bd4b5f667f892230d4a28ea4607e85ce9bc44e", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "hackageNix": { + "flake-compat_20": { "flake": false, "locked": { - "lastModified": 1685492843, - "narHash": "sha256-X8dNs5Gfc2ucfaWAgZ1VmkpBB4Cb44EQZu0b7tkvz2Y=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "e7407bab324eb2445bda58c5ffac393e80dda1e4", + "lastModified": 1641205782, + "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage_2": { + "flake-compat_21": { "flake": false, "locked": { - "lastModified": 1655342080, - "narHash": "sha256-mF/clPxSJJkKAq6Y+0oYXrU3rGOuQXFN9btSde3uvvE=", + "lastModified": 1635892615, + "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "567e2e865d42d8e5cfe796bf03b6b38e42bc00ab", + "repo": "flake-compat", + "rev": "eca47d3377946315596da653862d341ee5341318", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "repo": "flake-compat", "type": "github" } }, - "hackage_3": { + "flake-compat_22": { "flake": false, "locked": { - "lastModified": 1659489414, - "narHash": "sha256-AghgUkUv0hIBh+PvODngYL+ejwhCn2O2OUkVaAZYkCU=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "056c6ce7014adaf887b8e4cad15ef6fd926ea568", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage_4": { + "flake-compat_23": { "flake": false, "locked": { - "lastModified": 1650935983, - "narHash": "sha256-wZTCKzA4f7nk5sIdP2BhGz5qkt6ex5VTC/53U2Y4i9Y=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "b65addc81b03406b3ee8b139549980591ed15be5", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "hackage_5": { + "flake-compat_24": { + "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_25": { "flake": false, "locked": { - "lastModified": 1654219082, - "narHash": "sha256-sm59eg5wSrfIAjNXfBaaOBQ8daghF3g1NiGazYfj+no=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "fc90e7c5dea0483bacb01fc00bd2ab8f8e72500d", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "haskell-flake": { + "flake-compat_3": { + "flake": false, "locked": { - "lastModified": 1654001497, - "narHash": "sha256-GfrpyoQrVT9Z/j9its8BQs3I5O5X5Lc2IkK922bz7zg=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "4c0b0ff295f0b97238a600d2381c37ee46b67f9c", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "srid", - "repo": "haskell-flake", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "haskell-nix": { - "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-utils": "flake-utils_16", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", - "hackage": "hackage", - "hpc-coveralls": "hpc-coveralls_2", - "nix-tools": "nix-tools", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "haskell-nix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_2", - "nixpkgs-2105": "nixpkgs-2105_2", - "nixpkgs-2111": "nixpkgs-2111_2", - "nixpkgs-unstable": [ - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" - ], - "old-ghc-nix": "old-ghc-nix_2", - "stackage": "stackage_2" - }, + "flake-compat_4": { + "flake": false, "locked": { - "lastModified": 1646097976, - "narHash": "sha256-EiyrBqayw67dw8pr1XCVU9tIZ+/jzXCQycW1S9a+KFA=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "f0308ed1df3ce9f10f9da1a7c0c8591921d0b4e5", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "haskell-nix_2": { - "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-utils": "flake-utils_27", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_4", - "hackage": [ - "db-sync", - "cardano-world", - "hackage" - ], - "hpc-coveralls": "hpc-coveralls_4", - "hydra": "hydra_6", - "nix-tools": "nix-tools_3", - "nixpkgs": [ - "db-sync", - "cardano-world", - "haskell-nix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_4", - "nixpkgs-2105": "nixpkgs-2105_4", - "nixpkgs-2111": "nixpkgs-2111_4", - "nixpkgs-2205": "nixpkgs-2205_2", - "nixpkgs-unstable": "nixpkgs-unstable_6", - "old-ghc-nix": "old-ghc-nix_4", - "stackage": "stackage_4" - }, + "flake-compat_5": { + "flake": false, "locked": { - "lastModified": 1659439444, - "narHash": "sha256-qUK7OVpM8/piOImpPgzSUvOFHQq19sQpvOSns2nW8es=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "ee6a6559e16a603677d7cbef7c4fe18ca801b48e", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "haskell-nix_3": { - "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-compat": "flake-compat_12", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_6", - "ghc98X": "ghc98X", - "ghc99": "ghc99", - "hackage": [ - "hackage-nix" - ], - "hls-1.10": "hls-1.10_2", - "hls-2.0": "hls-2.0", - "hls-2.2": "hls-2.2", - "hls-2.3": "hls-2.3", - "hls-2.4": "hls-2.4", - "hpc-coveralls": "hpc-coveralls_6", - "hydra": "hydra_8", - "iserv-proxy": "iserv-proxy_2", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003_6", - "nixpkgs-2105": "nixpkgs-2105_6", - "nixpkgs-2111": "nixpkgs-2111_6", - "nixpkgs-2205": "nixpkgs-2205_3", - "nixpkgs-2211": "nixpkgs-2211_2", - "nixpkgs-2305": "nixpkgs-2305", - "nixpkgs-2311": "nixpkgs-2311", - "nixpkgs-unstable": "nixpkgs-unstable_8", - "old-ghc-nix": "old-ghc-nix_6", - "stackage": "stackage_6" - }, + "flake-compat_6": { + "flake": false, "locked": { - "lastModified": 1702774226, - "narHash": "sha256-QUQBV05VimFU0pasJlialCcL/jlCumzaTmCM9+6Ncpk=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "6ce1c8ab2a6d4af5721b22bd95968439b8c3c307", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "haskell-nix_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_33", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_7", - "hackage": "hackage_5", - "hpc-coveralls": "hpc-coveralls_7", - "hydra": "hydra_9", - "nix-tools": "nix-tools_5", - "nixpkgs": [ - "kupo-nixos", - "haskell-nix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_7", - "nixpkgs-2105": "nixpkgs-2105_7", - "nixpkgs-2111": "nixpkgs-2111_7", - "nixpkgs-unstable": "nixpkgs-unstable_9", - "old-ghc-nix": "old-ghc-nix_7", - "stackage": "stackage_7" - }, + "flake-compat_7": { + "flake": false, "locked": { - "lastModified": 1654219238, - "narHash": "sha256-PMS7uSQjYCjsjUfVidTdKcuNtKNu5VPmeNvxruT72go=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "974a61451bb1d41b32090eb51efd7ada026d16d9", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "974a61451bb1d41b32090eb51efd7ada026d16d9", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "haskellNix": { - "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", - "hackage": [ - "cardano-node", - "hackageNix" - ], - "hls-1.10": "hls-1.10", - "hpc-coveralls": "hpc-coveralls", - "hydra": "hydra", - "iserv-proxy": "iserv-proxy", - "nixpkgs": [ - "cardano-node", - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003", - "nixpkgs-2105": "nixpkgs-2105", - "nixpkgs-2111": "nixpkgs-2111", - "nixpkgs-2205": "nixpkgs-2205", - "nixpkgs-2211": "nixpkgs-2211", - "nixpkgs-unstable": "nixpkgs-unstable", - "old-ghc-nix": "old-ghc-nix", - "stackage": "stackage" - }, + "flake-compat_8": { + "flake": false, "locked": { - "lastModified": 1685495397, - "narHash": "sha256-BwbWroS1Qm8BiHatG5+iHMHN5U6kqOccewBROUYuMKw=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "d07c42cdb1cf88d0cab27d3090b00cb3899643c9", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", + "owner": "edolstra", + "repo": "flake-compat", "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-utils": "flake-utils_26", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_3", - "hackage": "hackage_2", - "hpc-coveralls": "hpc-coveralls_3", - "hydra": "hydra_5", - "nix-tools": "nix-tools_2", - "nixpkgs": [ - "db-sync", - "cardano-world", - "cardano-wallet", - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003_3", - "nixpkgs-2105": "nixpkgs-2105_3", - "nixpkgs-2111": "nixpkgs-2111_3", - "nixpkgs-unstable": "nixpkgs-unstable_5", - "old-ghc-nix": "old-ghc-nix_3", - "stackage": "stackage_3" - }, + "flake-compat_9": { + "flake": false, "locked": { - "lastModified": 1655369909, - "narHash": "sha256-Z3d17WvaXY2kWdfsOE6yPKViQ1RBfGi4d7XZgXA/j2I=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "5a310b0b3904d9b90239390eb2dfb59e4dcb0d96", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "haskellNix_3": { + "flake-parts": { "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-utils": "flake-utils_32", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_5", - "hackage": "hackage_4", - "hpc-coveralls": "hpc-coveralls_5", - "hydra": "hydra_7", - "nix-tools": "nix-tools_4", - "nixpkgs": [ - "db-sync", - "haskellNix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_5", - "nixpkgs-2105": "nixpkgs-2105_5", - "nixpkgs-2111": "nixpkgs-2111_5", - "nixpkgs-unstable": "nixpkgs-unstable_7", - "old-ghc-nix": "old-ghc-nix_5", - "stackage": "stackage_5" + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1650936156, - "narHash": "sha256-B58b4OCSc6ohRjGEdbQ78r+TK/OZYsBXION90kfQDC4=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "9a502b8c8aac4d7b8033bc9affb87fd03d4740fc", + "lastModified": 1672152762, + "narHash": "sha256-U8iWWHgabN07zfbgedogMVWrEP1Zywyf3Yx3OYHSSgE=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "19e0f88324d90509141e192664ded98bb88ef9b2", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "hercules-ci-effects": { + "flake-parts_2": { "inputs": { - "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_70" + "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1701009247, - "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", + "lastModified": 1682984683, + "narHash": "sha256-fSMthG+tp60AHhNmaHc4StT3ltfHkQsJtN8GhfLWmtI=", "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "31b6cd7569191bfcd0a548575b0e2ef953ed7d09", + "repo": "flake-parts", + "rev": "86684881e184f41aa322e653880e497b66429f3e", "type": "github" }, "original": { "owner": "hercules-ci", - "repo": "hercules-ci-effects", + "repo": "flake-parts", "type": "github" } }, - "hls-1.10": { - "flake": false, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_3" + }, "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "lastModified": 1690933134, + "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", "type": "github" }, "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "hls-1.10_2": { - "flake": false, + "flake-parts_4": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_4" + }, "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "lastModified": 1690933134, + "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", "type": "github" }, "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "hls-2.0": { - "flake": false, + "flake-parts_5": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_5" + }, "locked": { - "lastModified": 1687698105, - "narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "783905f211ac63edf982dd1889c671653327e441", + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.0.0.1", - "repo": "haskell-language-server", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "hls-2.2": { - "flake": false, + "flake-parts_6": { + "inputs": { + "nixpkgs": "nixpkgs_85" + }, "locked": { - "lastModified": 1693064058, - "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "lastModified": 1655570068, + "narHash": "sha256-KUSd2a6KgYTHd2l3Goee/P+DrAC6n1Tau+7V68czSZU=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "6dbc77b9c0477f8a9a6a9081077bb38c6a3dbb3a", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.2.0.0", - "repo": "haskell-language-server", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "hls-2.3": { - "flake": false, + "flake-parts_7": { + "inputs": { + "nixpkgs-lib": [ + "hercules-ci-effects", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1695910642, - "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.3.0.0", - "repo": "haskell-language-server", - "type": "github" + "id": "flake-parts", + "type": "indirect" } }, - "hls-2.4": { - "flake": false, + "flake-root": { "locked": { - "lastModified": 1696939266, - "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "lastModified": 1692742795, + "narHash": "sha256-f+Y0YhVCIJ06LemO+3Xx00lIcqQxSKJHXT/yk1RTKxw=", + "owner": "srid", + "repo": "flake-root", + "rev": "d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.4.0.0", - "repo": "haskell-language-server", + "owner": "srid", + "repo": "flake-root", "type": "github" } }, - "hpc-coveralls": { - "flake": false, + "flake-utils": { "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hpc-coveralls_2": { - "flake": false, + "flake-utils_10": { "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hpc-coveralls_3": { - "flake": false, + "flake-utils_11": { "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hpc-coveralls_4": { - "flake": false, + "flake-utils_12": { "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hpc-coveralls_5": { - "flake": false, + "flake-utils_13": { "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hpc-coveralls_6": { - "flake": false, + "flake-utils_14": { "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hpc-coveralls_7": { - "flake": false, + "flake-utils_15": { + "inputs": { + "systems": "systems_4" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hydra": { - "inputs": { - "nix": "nix", - "nixpkgs": [ - "cardano-node", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] - }, + "flake-utils_16": { "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", - "owner": "NixOS", - "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, - "hydra_2": { - "inputs": { - "nix": [ - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "nix" - ], - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "nixpkgs" - ] - }, + "flake-utils_17": { "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", - "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hydra_3": { - "inputs": { - "nix": [ - "db-sync", - "cardano-world", - "bitte", - "nix" - ], - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "nixpkgs" - ] - }, + "flake-utils_18": { "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", - "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hydra_4": { - "inputs": { - "nix": [ - "db-sync", - "cardano-world", - "capsules", - "bitte", - "nix" - ], - "nixpkgs": [ - "db-sync", - "cardano-world", - "capsules", - "bitte", - "nixpkgs" - ] - }, + "flake-utils_19": { "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", - "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "hydra_5": { - "inputs": { - "nix": "nix_12", - "nixpkgs": [ - "db-sync", - "cardano-world", - "cardano-wallet", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] - }, + "flake-utils_2": { "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "lastModified": 1679360468, + "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", + "owner": "hamishmack", + "repo": "flake-utils", + "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "hamishmack", + "ref": "hkm/nested-hydraJobs", + "repo": "flake-utils", + "type": "github" } }, - "hydra_6": { + "flake-utils_20": { "inputs": { - "nix": "nix_13", - "nixpkgs": [ - "db-sync", - "cardano-world", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] + "systems": "systems_5" }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" - } - }, - "hydra_7": { - "inputs": { - "nix": "nix_14", - "nixpkgs": [ - "db-sync", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "owner": "numtide", + "repo": "flake-utils", "type": "github" - }, - "original": { - "id": "hydra", - "type": "indirect" } }, - "hydra_8": { - "inputs": { - "nix": "nix_15", - "nixpkgs": [ - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] - }, + "flake-utils_21": { "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", - "owner": "NixOS", - "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, - "hydra_9": { - "inputs": { - "nix": "nix_16", - "nixpkgs": [ - "kupo-nixos", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] - }, + "flake-utils_22": { "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", - "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, - "incl": { - "inputs": { - "nixlib": [ - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] - }, + "flake-utils_23": { "locked": { - "lastModified": 1669263024, - "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", - "owner": "divnix", - "repo": "incl", - "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "divnix", - "repo": "incl", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive": { - "inputs": { - "stdlib": "stdlib" - }, + "flake-utils_24": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_10": { - "inputs": { - "stdlib": "stdlib_10" - }, + "flake-utils_25": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_11": { - "inputs": { - "stdlib": "stdlib_11" - }, + "flake-utils_26": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_2": { - "inputs": { - "stdlib": "stdlib_2" - }, + "flake-utils_27": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_3": { - "inputs": { - "stdlib": "stdlib_3" - }, + "flake-utils_28": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_4": { - "inputs": { - "stdlib": "stdlib_4" - }, + "flake-utils_29": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_5": { - "inputs": { - "stdlib": "stdlib_5" - }, + "flake-utils_3": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_6": { - "inputs": { - "stdlib": "stdlib_6" - }, + "flake-utils_30": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_7": { - "inputs": { - "stdlib": "stdlib_7" - }, + "flake-utils_31": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_8": { - "inputs": { - "stdlib": "stdlib_8" - }, + "flake-utils_32": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "inclusive_9": { - "inputs": { - "stdlib": "stdlib_9" - }, + "flake-utils_33": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iogo": { - "inputs": { - "devshell": "devshell_4", - "inclusive": "inclusive_3", - "nixpkgs": "nixpkgs_22", - "utils": "utils_8" - }, + "flake-utils_34": { "locked": { - "lastModified": 1652212694, - "narHash": "sha256-baAY5wKzccNsm7OCEYuySrkXRmlshokCHQjs4EdYShM=", - "owner": "input-output-hk", - "repo": "bitte-iogo", - "rev": "e465975aa368b2d919e865f71eeed02828e55471", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "bitte-iogo", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iogo_2": { - "inputs": { - "devshell": "devshell_14", - "inclusive": "inclusive_11", - "nixpkgs": "nixpkgs_51", - "utils": "utils_22" - }, + "flake-utils_35": { "locked": { - "lastModified": 1658302707, - "narHash": "sha256-E0FA1CEMQlfAsmtLBRoQE7IY4ItKlBdxZ44YX0tK5Hg=", - "owner": "input-output-hk", - "repo": "bitte-iogo", - "rev": "8751660009202bc95ea3a29e304c393c140a4231", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "bitte-iogo", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iohk-nix": { - "inputs": { - "nixpkgs": [ - "db-sync", - "cardano-world", - "nixpkgs" - ] - }, + "flake-utils_36": { "locked": { - "lastModified": 1658222743, - "narHash": "sha256-yFH01psqx30y5Ws4dBElLkxYpIxxqZx4G+jCVhsXpnA=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "9a604d01bd4420ab7f396f14d1947fbe2ce7db8b", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iohk-nix_2": { - "inputs": { - "blst": "blst_2", - "nixpkgs": [ - "nixpkgs" - ], - "secp256k1": "secp256k1_2", - "sodium": "sodium_2" - }, + "flake-utils_37": { "locked": { - "lastModified": 1702362799, - "narHash": "sha256-cU8cZXNuo5GRwrSvWqdaqoW5tJ2HWwDEOvWwIVPDPmo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "b426fb9e0b109a9d1dd2e1476f9e0bd8bb715142", + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iohk-nix_3": { - "inputs": { - "nixpkgs": [ - "kupo-nixos", - "haskell-nix", - "nixpkgs" - ] - }, + "flake-utils_38": { "locked": { - "lastModified": 1653579289, - "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "lastModified": 1619345332, + "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iohkNix": { - "inputs": { - "blst": "blst", - "nixpkgs": [ - "cardano-node", - "nixpkgs" - ], - "secp256k1": "secp256k1", - "sodium": "sodium" - }, + "flake-utils_39": { "locked": { - "lastModified": 1684223806, - "narHash": "sha256-IyLoP+zhuyygLtr83XXsrvKyqqLQ8FHXTiySFf4FJOI=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "86421fdd89b3af43fa716ccd07638f96c6ecd1e4", + "lastModified": 1652776076, + "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "numtide", + "ref": "v1.0.0", + "repo": "flake-utils", "type": "github" } }, - "iohkNix_2": { - "inputs": { - "nixpkgs": [ - "db-sync", - "cardano-world", - "cardano-wallet", - "nixpkgs" - ] - }, + "flake-utils_4": { "locked": { - "lastModified": 1653579289, - "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iohkNix_3": { - "inputs": { - "nixpkgs": [ - "db-sync", - "nixpkgs" - ] - }, + "flake-utils_40": { "locked": { - "lastModified": 1667394105, - "narHash": "sha256-YhS7zGd6jK/QM/+wWyj0zUBZmE3HOXAL/kpJptGYIWg=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "7fc7625a9ab2ba137bc70ddbc89a13d3fdb78c8b", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "iserv-proxy": { - "flake": false, + "flake-utils_41": { "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" + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" }, "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, - "iserv-proxy_2": { - "flake": false, + "flake-utils_42": { "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": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" }, "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, - "kupo": { - "flake": false, + "flake-utils_43": { "locked": { - "lastModified": 1668678914, - "narHash": "sha256-XsbAFyUPmevGuoShEFlOVHt/7fFIpyCQuhulIrNzv80=", - "owner": "CardanoSolutions", - "repo": "kupo", - "rev": "c9bc18d99f9e8af1840a265907db82b180d5a4d8", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "CardanoSolutions", - "ref": "v2.2.0", - "repo": "kupo", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "kupo-nixos": { - "inputs": { - "haskell-nix": "haskell-nix_4", - "iohk-nix": "iohk-nix_3", - "kupo": [ - "kupo" - ], - "nixpkgs": [ - "kupo-nixos", - "haskell-nix", - "nixpkgs" - ] - }, + "flake-utils_44": { "locked": { - "lastModified": 1672905539, - "narHash": "sha256-B4vryG94L7WWn/tuIQdtg9eZHAH+FaFzv35Mancd2l8=", - "owner": "mlabs-haskell", - "repo": "kupo-nixos", - "rev": "6f89cbcc359893a2aea14dd380f9a45e04c6aa67", + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "repo": "kupo-nixos", - "rev": "6f89cbcc359893a2aea14dd380f9a45e04c6aa67", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src": { - "flake": false, + "flake-utils_45": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_10": { - "flake": false, + "flake-utils_46": { "locked": { - "lastModified": 1598695561, - "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_11": { - "flake": false, + "flake-utils_47": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_12": { - "flake": false, + "flake-utils_5": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1679360468, + "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", + "owner": "hamishmack", + "repo": "flake-utils", + "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "hamishmack", + "ref": "hkm/nested-hydraJobs", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_13": { - "flake": false, + "flake-utils_6": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_14": { - "flake": false, + "flake-utils_7": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_15": { - "flake": false, + "flake-utils_8": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_16": { - "flake": false, + "flake-utils_9": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "lowdown-src_2": { + "flakeCompat": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1641205782, + "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "lowdown-src_3": { - "flake": false, + "follower": { + "inputs": { + "devshell": "devshell_14", + "inclusive": "inclusive_8", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "utils": "utils_19" + }, "locked": { - "lastModified": 1598695561, - "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "lastModified": 1642008295, + "narHash": "sha256-yx3lLN/hlvEeKItHJ5jH0KSm84IruTWMo78IItVPji4=", + "owner": "input-output-hk", + "repo": "nomad-follower", + "rev": "b1b0b00e940026f72d16bdf13e36ad20f1826e8a", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "repo": "nomad-follower", "type": "github" } }, - "lowdown-src_4": { + "ghc-8.6.5-iohk": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "lowdown-src_5": { + "ghc-8.6.5-iohk_10": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "lowdown-src_6": { + "ghc-8.6.5-iohk_2": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "lowdown-src_7": { + "ghc-8.6.5-iohk_3": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "lowdown-src_8": { + "ghc-8.6.5-iohk_4": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "lowdown-src_9": { + "ghc-8.6.5-iohk_5": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "mdbook-kroki-preprocessor": { + "ghc-8.6.5-iohk_6": { "flake": false, "locked": { - "lastModified": 1655670640, - "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "mdbook-kroki-preprocessor_2": { + "ghc-8.6.5-iohk_7": { "flake": false, "locked": { - "lastModified": 1655670640, - "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "n2c": { - "inputs": { - "flake-utils": [ - "cardano-node", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] - }, + "ghc-8.6.5-iohk_8": { + "flake": false, "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "n2c_2": { - "inputs": { - "flake-utils": "flake-utils_11", - "nixpkgs": "nixpkgs_27" - }, + "ghc-8.6.5-iohk_9": { + "flake": false, "locked": { - "lastModified": 1650568002, - "narHash": "sha256-CciO5C3k/a7sbA+lW4jeiU6WGletujMjWcRzc1513tI=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "2cd391fc65847ea54e3657a491c379854b556262", + "lastModified": 1600920045, + "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "owner": "input-output-hk", + "repo": "ghc", + "rev": "95713a6ecce4551240da7c96b6176f980af75cae", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "input-output-hk", + "ref": "release/8.6.5-iohk", + "repo": "ghc", "type": "github" } }, - "n2c_3": { - "inputs": { - "flake-utils": "flake-utils_28", - "nixpkgs": "nixpkgs_62" - }, + "ghc910X": { + "flake": false, "locked": { - "lastModified": 1655533513, - "narHash": "sha256-MAqvv2AZbyNYGJMpV5l9ydN7k66jDErFpaKOvZ1Y7f8=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "2d47dbe633a059d75c7878f554420158712481cb", - "type": "github" + "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": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" + "ref": "ghc-9.10", + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "nix": { - "inputs": { - "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs_3", - "nixpkgs-regression": "nixpkgs-regression" - }, + "ghc911": { + "flake": false, "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", - "owner": "NixOS", - "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", - "type": "github" + "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": { - "owner": "NixOS", - "ref": "2.11.0", - "repo": "nix", - "type": "github" + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "nix-cache-proxy": { - "inputs": { - "devshell": "devshell_11", - "inclusive": [ - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "inclusive" - ], - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" - ], - "utils": "utils_15" - }, + "ghc98X": { + "flake": false, "locked": { - "lastModified": 1644317729, - "narHash": "sha256-R9R1XHv69VvZ/c7lXYs18PHcnEBXS+hDfhjdkZ96lgw=", - "owner": "input-output-hk", - "repo": "nix-cache-proxy", - "rev": "378617d6b9865be96f7dfa16e0ce3f329da844ec", - "type": "github" + "lastModified": 1696643148, + "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", + "ref": "ghc-9.8", + "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", + "revCount": 61642, + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" }, "original": { - "owner": "input-output-hk", - "repo": "nix-cache-proxy", - "type": "github" + "ref": "ghc-9.8", + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "nix-inclusive": { - "inputs": { - "stdlib": "stdlib_12" - }, + "ghc98X_2": { + "flake": false, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", - "type": "github" + "lastModified": 1696643148, + "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", + "ref": "ghc-9.8", + "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", + "revCount": 61642, + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", - "type": "github" + "ref": "ghc-9.8", + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "nix-nomad": { + "ghc99": { + "flake": false, + "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" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" + } + }, + "ghc99_2": { + "flake": false, + "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" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" + } + }, + "gitignore": { "inputs": { - "flake-compat": "flake-compat_3", - "flake-utils": [ - "cardano-node", - "tullia", - "nix2container", - "flake-utils" - ], - "gomod2nix": "gomod2nix", "nixpkgs": [ - "cardano-node", - "tullia", - "nixpkgs" - ], - "nixpkgs-lib": [ - "cardano-node", - "tullia", + "cardano-nix", + "pre-commit-hooks-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1658277770, - "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", - "owner": "tristanpemble", - "repo": "nix-nomad", - "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", "type": "github" }, "original": { - "owner": "tristanpemble", - "repo": "nix-nomad", + "owner": "hercules-ci", + "repo": "gitignore.nix", "type": "github" } }, - "nix-tools": { - "flake": false, + "gomod2nix": { + "inputs": { + "nixpkgs": "nixpkgs_18", + "utils": "utils_2" + }, "locked": { - "lastModified": 1644395812, - "narHash": "sha256-BVFk/BEsTLq5MMZvdy3ZYHKfaS3dHrsKh4+tb5t5b58=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "d847c63b99bbec78bf83be2a61dc9f09b8a9ccc1", + "lastModified": 1655245309, + "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", + "owner": "tweag", + "repo": "gomod2nix", + "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "tweag", + "repo": "gomod2nix", "type": "github" } }, - "nix-tools_2": { - "flake": false, + "gomod2nix_2": { + "inputs": { + "nixpkgs": "nixpkgs_22", + "utils": "utils_4" + }, "locked": { - "lastModified": 1649424170, - "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "lastModified": 1655245309, + "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", + "owner": "tweag", + "repo": "gomod2nix", + "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "tweag", + "repo": "gomod2nix", "type": "github" } }, - "nix-tools_3": { - "flake": false, + "gomod2nix_3": { + "inputs": { + "nixpkgs": "nixpkgs_31", + "utils": "utils_6" + }, "locked": { - "lastModified": 1658968505, - "narHash": "sha256-UnbQ/Ig/23e9hUdDOBwYHwHgHmQawZ2uazpJ8DLIJgE=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "8a754bdcf20b20e116409c2341cf69065d083053", + "lastModified": 1655245309, + "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", + "owner": "tweag", + "repo": "gomod2nix", + "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "tweag", + "repo": "gomod2nix", "type": "github" } }, - "nix-tools_4": { + "hackage": { "flake": false, "locked": { - "lastModified": 1649424170, - "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "lastModified": 1692145451, + "narHash": "sha256-kqfyD3Mu5kgiH5W2ZshUhzO46H0zYDpwD1SWz+POMrk=", "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "repo": "hackage.nix", + "rev": "9d2daeca0e09002bc6fb552a097a1802a2f3a4e3", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "nix-tools", + "repo": "hackage.nix", "type": "github" } }, - "nix-tools_5": { + "hackage-nix": { "flake": false, "locked": { - "lastModified": 1649424170, - "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "lastModified": 1721867175, + "narHash": "sha256-1yD5lI+LtM2bMjjREucK3Y1WcKXQw0N6b8xSJty7A5I=", "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "repo": "hackage.nix", + "rev": "62bf49579c1b900d0a930d96040d65d49c7131a6", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "nix-tools", + "repo": "hackage.nix", "type": "github" } }, - "nix2container": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_4" - }, + "hackageNix": { + "flake": false, "locked": { - "lastModified": 1671269339, - "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", + "lastModified": 1702945378, + "narHash": "sha256-mo1MlOphO4bRwZ8T3mDwU5LOtdQcWSA+93lT1HkCcyw=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "e59b9616a744727e8e64f605f9f216464f12f89b", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "nix2container_2": { - "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_6" - }, + "hackageNix_2": { + "flake": false, "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", + "lastModified": 1685492843, + "narHash": "sha256-X8dNs5Gfc2ucfaWAgZ1VmkpBB4Cb44EQZu0b7tkvz2Y=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "e7407bab324eb2445bda58c5ffac393e80dda1e4", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "nix2container_3": { - "inputs": { - "flake-utils": "flake-utils_30", - "nixpkgs": "nixpkgs_65" - }, + "hackageNix_3": { + "flake": false, "locked": { - "lastModified": 1653427219, - "narHash": "sha256-q6MzrIZq1BBFxYN+UQjW60LpQJXV6RIIUmO8gKRyMqg=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "11a0e14c2468720f42ca8dec3b82862abf96c837", + "lastModified": 1701303758, + "narHash": "sha256-8XqVEQwmJBxRPFa7SizJuZxbG+NFEZKWdhtYPTQ7ZKM=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "8a0e3ae9295b7ef8431b9be208dd06aa2789be53", "type": "github" }, "original": { - "owner": "nlewo", - "ref": "init-nix-db", - "repo": "nix2container", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "nix_10": { - "inputs": { - "lowdown-src": "lowdown-src_10", - "nixpkgs": "nixpkgs_45" - }, + "hackageNix_4": { + "flake": false, "locked": { - "lastModified": 1604400356, - "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", - "owner": "NixOS", - "repo": "nix", - "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "lastModified": 1719794527, + "narHash": "sha256-qHo/KumtwAzPkfLWODu/6EFY/LeK+C7iPJyAUdT8tGA=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "da2a3bc9bd1b3dd41bb147279529c471c615fd3e", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nix", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "nix_11": { - "inputs": { - "lowdown-src": "lowdown-src_11", - "nixpkgs": "nixpkgs_47", - "nixpkgs-regression": "nixpkgs-regression_9" - }, + "hackage_2": { + "flake": false, "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", - "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "lastModified": 1646097829, + "narHash": "sha256-PcHDDV8NuUxZhPV/p++IkZC+SDZ1Db7m7K+9HN4/0S4=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "283f096976b48e54183905e7bdde7f213c6ee5cd", "type": "github" }, "original": { - "owner": "nixos", - "repo": "nix", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "nix_12": { - "inputs": { - "lowdown-src": "lowdown-src_12", - "nixpkgs": "nixpkgs_59", - "nixpkgs-regression": "nixpkgs-regression_10" - }, + "hackage_3": { + "flake": false, "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", - "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "lastModified": 1655342080, + "narHash": "sha256-mF/clPxSJJkKAq6Y+0oYXrU3rGOuQXFN9btSde3uvvE=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "567e2e865d42d8e5cfe796bf03b6b38e42bc00ab", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "owner": "input-output-hk", + "repo": "hackage.nix", "type": "github" } }, - "nix_13": { - "inputs": { - "lowdown-src": "lowdown-src_13", - "nixpkgs": "nixpkgs_61", + "hackage_4": { + "flake": false, + "locked": { + "lastModified": 1659489414, + "narHash": "sha256-AghgUkUv0hIBh+PvODngYL+ejwhCn2O2OUkVaAZYkCU=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "056c6ce7014adaf887b8e4cad15ef6fd926ea568", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_5": { + "flake": false, + "locked": { + "lastModified": 1650935983, + "narHash": "sha256-wZTCKzA4f7nk5sIdP2BhGz5qkt6ex5VTC/53U2Y4i9Y=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "b65addc81b03406b3ee8b139549980591ed15be5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "haskell-flake": { + "locked": { + "lastModified": 1654001497, + "narHash": "sha256-GfrpyoQrVT9Z/j9its8BQs3I5O5X5Lc2IkK922bz7zg=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "4c0b0ff295f0b97238a600d2381c37ee46b67f9c", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "haskell-flake", + "type": "github" + } + }, + "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", + "hackage": "hackage", + "hls-1.10": "hls-1.10", + "hls-2.0": "hls-2.0", + "hpc-coveralls": "hpc-coveralls", + "hydra": "hydra", + "iserv-proxy": "iserv-proxy", + "nixpkgs": [ + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "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" + ] + }, + "locked": { + "lastModified": 1692147008, + "narHash": "sha256-ZiRaryaboJbNZ7y7XKZs2xuSfydZyGeupJNOfYpgQSw=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "1970bb2d5b0eb8152f89b305f32d055dbd6857d9", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "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", + "hackage": "hackage_2", + "hpc-coveralls": "hpc-coveralls_6", + "nix-tools": "nix-tools", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "haskell-nix", + "nixpkgs-unstable" + ], + "nixpkgs-2003": "nixpkgs-2003_6", + "nixpkgs-2105": "nixpkgs-2105_6", + "nixpkgs-2111": "nixpkgs-2111_6", + "nixpkgs-unstable": [ + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "old-ghc-nix": "old-ghc-nix_6", + "stackage": "stackage_5" + }, + "locked": { + "lastModified": 1646097976, + "narHash": "sha256-EiyrBqayw67dw8pr1XCVU9tIZ+/jzXCQycW1S9a+KFA=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "f0308ed1df3ce9f10f9da1a7c0c8591921d0b4e5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "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", + "hackage": [ + "db-sync", + "cardano-world", + "hackage" + ], + "hpc-coveralls": "hpc-coveralls_8", + "hydra": "hydra_10", + "nix-tools": "nix-tools_3", + "nixpkgs": [ + "db-sync", + "cardano-world", + "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" + }, + "locked": { + "lastModified": 1659439444, + "narHash": "sha256-qUK7OVpM8/piOImpPgzSUvOFHQq19sQpvOSns2nW8es=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "ee6a6559e16a603677d7cbef7c4fe18ca801b48e", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "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", + "hackage": [ + "hackage-nix" + ], + "hls-1.10": "hls-1.10_6", + "hls-2.0": "hls-2.0_5", + "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", + "hpc-coveralls": "hpc-coveralls_10", + "hydra": "hydra_12", + "iserv-proxy": "iserv-proxy_6", + "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" + }, + "locked": { + "lastModified": 1721868640, + "narHash": "sha256-iOugjcRcgSNAfu+D9YQSV0yu7086k8MQuhd5Sx9/XMU=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "1e71885e0094c98df536a25155cafc577a4b47fd", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix": { + "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", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", + "ghc98X": "ghc98X", + "ghc99": "ghc99", + "hackage": [ + "cardano-nix", + "cardano-db-sync", + "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", + "hpc-coveralls": "hpc-coveralls_2", + "hydra": "hydra_2", + "iserv-proxy": "iserv-proxy_2", + "nixpkgs": [ + "cardano-nix", + "cardano-db-sync", + "haskellNix", + "nixpkgs-unstable" + ], + "nixpkgs-2003": "nixpkgs-2003_2", + "nixpkgs-2105": "nixpkgs-2105_2", + "nixpkgs-2111": "nixpkgs-2111_2", + "nixpkgs-2205": "nixpkgs-2205_2", + "nixpkgs-2211": "nixpkgs-2211_2", + "nixpkgs-2305": "nixpkgs-2305_2", + "nixpkgs-unstable": "nixpkgs-unstable_3", + "old-ghc-nix": "old-ghc-nix_2", + "stackage": "stackage" + }, + "locked": { + "lastModified": 1701053834, + "narHash": "sha256-4sH4//POARjeKJv1mu8aU4W4A28GYqrj9KB3PqusHis=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "7c491c55157208575c70c7b8434e9d4a1cf173a6", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "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": { + "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", + "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", + "hpc-coveralls": "hpc-coveralls_5", + "hydra": "hydra_5", + "iserv-proxy": "iserv-proxy_5", + "nixpkgs": [ + "cardano-node", + "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", + "old-ghc-nix": "old-ghc-nix_5", + "stackage": "stackage_4" + }, + "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_5": { + "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", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_7", + "hackage": "hackage_3", + "hpc-coveralls": "hpc-coveralls_7", + "hydra": "hydra_9", + "nix-tools": "nix-tools_2", + "nixpkgs": [ + "db-sync", + "cardano-world", + "cardano-wallet", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003_7", + "nixpkgs-2105": "nixpkgs-2105_7", + "nixpkgs-2111": "nixpkgs-2111_7", + "nixpkgs-unstable": "nixpkgs-unstable_10", + "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" + }, + "locked": { + "lastModified": 1650936156, + "narHash": "sha256-B58b4OCSc6ohRjGEdbQ78r+TK/OZYsBXION90kfQDC4=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "9a502b8c8aac4d7b8033bc9affb87fd03d4740fc", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haumea": { + "inputs": { + "nixpkgs": "nixpkgs_28" + }, + "locked": { + "lastModified": 1685133229, + "narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=", + "owner": "nix-community", + "repo": "haumea", + "rev": "34dd58385092a23018748b50f9b23de6266dffc2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.2.2", + "repo": "haumea", + "type": "github" + } + }, + "haumea_2": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "std", + "lib" + ] + }, + "locked": { + "lastModified": 1685133229, + "narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=", + "owner": "nix-community", + "repo": "haumea", + "rev": "34dd58385092a23018748b50f9b23de6266dffc2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.2.2", + "repo": "haumea", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": [ + "cardano-nix", + "flake-parts" + ], + "nixpkgs": [ + "cardano-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1710396488, + "narHash": "sha256-yniBB5i1un44uzR4+luTWvZ6uGvsHSYIBiDZ8Xox4nQ=", + "owner": "mlabs-haskell", + "repo": "hercules-ci-effects", + "rev": "f5ed263ab0585dfb7b067301419fb80d64e8c021", + "type": "github" + }, + "original": { + "owner": "mlabs-haskell", + "ref": "push-cache-effect", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hercules-ci-effects_2": { + "inputs": { + "flake-parts": "flake-parts_7", + "nixpkgs": "nixpkgs_99" + }, + "locked": { + "lastModified": 1719226092, + "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hls-1.10": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "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", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_3": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_4": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_5": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_6": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.0": { + "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.0_2": { + "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.0_3": { + "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.0_4": { + "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.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": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2_2": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2_3": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2_4": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3_2": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3_3": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3_4": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4": { + "flake": false, + "locked": { + "lastModified": 1696939266, + "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4_2": { + "flake": false, + "locked": { + "lastModified": 1696939266, + "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4_3": { + "flake": false, + "locked": { + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4_4": { + "flake": false, + "locked": { + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.5": { + "flake": false, + "locked": { + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.5.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.5_2": { + "flake": false, + "locked": { + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.5.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.6": { + "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_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.7": { + "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_2": { + "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": { + "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_2": { + "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": { + "lastModified": 1718469202, + "narHash": "sha256-THXSz+iwB1yQQsr/PY151+2GvtoJnTIB2pIQ4OzfjD4=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "40891bccb235ebacce020b598b083eab9dda80f1", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.9.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hpc-coveralls": { + "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" + } + }, + "hpc-coveralls_10": { + "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" + } + }, + "hpc-coveralls_2": { + "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" + } + }, + "hpc-coveralls_3": { + "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" + } + }, + "hpc-coveralls_4": { + "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" + } + }, + "hpc-coveralls_5": { + "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" + } + }, + "hpc-coveralls_6": { + "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" + } + }, + "hpc-coveralls_7": { + "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" + } + }, + "hpc-coveralls_8": { + "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" + } + }, + "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", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_10": { + "inputs": { + "nix": "nix_18", + "nixpkgs": [ + "db-sync", + "cardano-world", + "haskell-nix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_11": { + "inputs": { + "nix": "nix_19", + "nixpkgs": [ + "db-sync", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_12": { + "inputs": { + "nix": "nix_20", + "nixpkgs": [ + "haskell-nix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_2": { + "inputs": { + "nix": "nix_3", + "nixpkgs": [ + "cardano-nix", + "cardano-db-sync", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_3": { + "inputs": { + "nix": "nix_4", + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "haskellNix", + "hydra", + "nix", + "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", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "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", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_6": { + "inputs": { + "nix": [ + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nix" + ], + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", + "repo": "hydra", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" + } + }, + "hydra_7": { + "inputs": { + "nix": [ + "db-sync", + "cardano-world", + "bitte", + "nix" + ], + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", + "repo": "hydra", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" + } + }, + "hydra_8": { + "inputs": { + "nix": [ + "db-sync", + "cardano-world", + "capsules", + "bitte", + "nix" + ], + "nixpkgs": [ + "db-sync", + "cardano-world", + "capsules", + "bitte", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", + "repo": "hydra", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" + } + }, + "hydra_9": { + "inputs": { + "nix": "nix_17", + "nixpkgs": [ + "db-sync", + "cardano-world", + "cardano-wallet", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "incl": { + "inputs": { + "nixlib": [ + "cardano-nix", + "cardano-node-8.1.1", + "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_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", + "std", + "lib" + ] + }, + "locked": { + "lastModified": 1669263024, + "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", + "owner": "divnix", + "repo": "incl", + "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "incl", + "type": "github" + } + }, + "inclusive": { + "inputs": { + "stdlib": "stdlib" + }, + "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_10": { + "inputs": { + "stdlib": "stdlib_10" + }, + "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_11": { + "inputs": { + "stdlib": "stdlib_11" + }, + "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_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" + }, + "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_3": { + "inputs": { + "stdlib": "stdlib_3" + }, + "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_4": { + "inputs": { + "stdlib": "stdlib_4" + }, + "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_5": { + "inputs": { + "stdlib": "stdlib_5" + }, + "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_6": { + "inputs": { + "stdlib": "stdlib_6" + }, + "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_7": { + "inputs": { + "stdlib": "stdlib_7" + }, + "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_8": { + "inputs": { + "stdlib": "stdlib_8" + }, + "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_9": { + "inputs": { + "stdlib": "stdlib_9" + }, + "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" + } + }, + "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_13" + }, + "locked": { + "lastModified": 1652212694, + "narHash": "sha256-baAY5wKzccNsm7OCEYuySrkXRmlshokCHQjs4EdYShM=", + "owner": "input-output-hk", + "repo": "bitte-iogo", + "rev": "e465975aa368b2d919e865f71eeed02828e55471", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "bitte-iogo", + "type": "github" + } + }, + "iogo_2": { + "inputs": { + "devshell": "devshell_18", + "inclusive": "inclusive_12", + "nixpkgs": "nixpkgs_80", + "utils": "utils_27" + }, + "locked": { + "lastModified": 1658302707, + "narHash": "sha256-E0FA1CEMQlfAsmtLBRoQE7IY4ItKlBdxZ44YX0tK5Hg=", + "owner": "input-output-hk", + "repo": "bitte-iogo", + "rev": "8751660009202bc95ea3a29e304c393c140a4231", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "bitte-iogo", + "type": "github" + } + }, + "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" + }, + "locked": { + "lastModified": 1696471795, + "narHash": "sha256-aNNvjUtCGXaXSp5M/HSj1SOeLjqLyTRWYbIHqAEeUp0=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "91f16fa8acb58b312f94977715c630d8bf77e33e", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohk-nix_2": { + "inputs": { + "nixpkgs": [ + "db-sync", + "cardano-world", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1658222743, + "narHash": "sha256-yFH01psqx30y5Ws4dBElLkxYpIxxqZx4G+jCVhsXpnA=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "9a604d01bd4420ab7f396f14d1947fbe2ce7db8b", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohk-nix_3": { + "inputs": { + "blst": "blst_7", + "nixpkgs": [ + "nixpkgs" + ], + "secp256k1": "secp256k1_7", + "sodium": "sodium_7" + }, + "locked": { + "lastModified": 1721825987, + "narHash": "sha256-PPcma4tjozwXJAWf+YtHUQUulmxwulVlwSQzKItx/n8=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "eb61f2c14e1f610ec59117ad40f8690cddbf80cb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix": { + "inputs": { + "blst": "blst_3", + "nixpkgs": [ + "cardano-nix", + "cardano-db-sync", + "nixpkgs" + ], + "secp256k1": "secp256k1_3", + "sodium": "sodium_3" + }, + "locked": { + "lastModified": 1698999258, + "narHash": "sha256-42D1BMbdyZD+lT+pWUzb5zDQyasNbMJtH/7stuPuPfE=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "73dc2bb45af6f20cfe1d962f1334eed5e84ae764", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_2": { + "inputs": { + "blst": "blst_4", + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "nixpkgs" + ], + "secp256k1": "secp256k1_4", + "sodium": "sodium_4" + }, + "locked": { + "lastModified": 1684223806, + "narHash": "sha256-IyLoP+zhuyygLtr83XXsrvKyqqLQ8FHXTiySFf4FJOI=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "86421fdd89b3af43fa716ccd07638f96c6ecd1e4", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "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", + "nixpkgs": [ + "cardano-node", + "nixpkgs" + ], + "secp256k1": "secp256k1_6", + "sodium": "sodium_6" + }, + "locked": { + "lastModified": 1721825987, + "narHash": "sha256-PPcma4tjozwXJAWf+YtHUQUulmxwulVlwSQzKItx/n8=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "eb61f2c14e1f610ec59117ad40f8690cddbf80cb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_5": { + "inputs": { + "nixpkgs": [ + "db-sync", + "cardano-world", + "cardano-wallet", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1653579289, + "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_6": { + "inputs": { + "nixpkgs": [ + "db-sync", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1667394105, + "narHash": "sha256-YhS7zGd6jK/QM/+wWyj0zUBZmE3HOXAL/kpJptGYIWg=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "7fc7625a9ab2ba137bc70ddbc89a13d3fdb78c8b", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "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" + }, + "original": { + "ref": "hkm/remote-iserv", + "type": "git", + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + } + }, + "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" + }, + "original": { + "ref": "hkm/remote-iserv", + "type": "git", + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + } + }, + "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, + "narHash": "sha256-7vE3RQycHI1YT9LHJ1/fUaeln2vIpYm6Mmn8FTpYeVo=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "2ed34002247213fc435d0062350b91bab920626e", + "type": "github" + }, + "original": { + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" + } + }, + "iserv-proxy_6": { + "flake": false, + "locked": { + "lastModified": 1717479972, + "narHash": "sha256-7vE3RQycHI1YT9LHJ1/fUaeln2vIpYm6Mmn8FTpYeVo=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "2ed34002247213fc435d0062350b91bab920626e", + "type": "github" + }, + "original": { + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" + } + }, + "lib": { + "locked": { + "lastModified": 1694306727, + "narHash": "sha256-26fkTOJOI65NOTNKFvtcJF9mzzf/kK9swHzfYt1Dl6Q=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "c30b6a84c0b84ec7aecbe74466033facc9ed103f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "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, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "lowdown-src_12": { + "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_13": { + "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_14": { + "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_15": { + "flake": false, + "locked": { + "lastModified": 1598695561, + "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "lowdown-src_16": { + "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_17": { + "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_18": { + "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_19": { + "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_2": { + "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_20": { + "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_3": { + "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_4": { + "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_5": { + "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_6": { + "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_7": { + "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_8": { + "flake": false, + "locked": { + "lastModified": 1598695561, + "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "lowdown-src_9": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "mdbook-kroki-preprocessor": { + "flake": false, + "locked": { + "lastModified": 1661755005, + "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "type": "github" + } + }, + "mdbook-kroki-preprocessor_2": { + "flake": false, + "locked": { + "lastModified": 1655670640, + "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "type": "github" + } + }, + "mdbook-kroki-preprocessor_3": { + "flake": false, + "locked": { + "lastModified": 1655670640, + "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "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" + ] + }, + "locked": { + "lastModified": 1665039323, + "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_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": 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=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "95e2220911874064b5d809f8d35f7835184c4ddf", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_4": { + "inputs": { + "flake-utils": "flake-utils_19", + "nixpkgs": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665039323, + "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_5": { + "inputs": { + "flake-utils": "flake-utils_26", + "nixpkgs": "nixpkgs_56" + }, + "locked": { + "lastModified": 1650568002, + "narHash": "sha256-CciO5C3k/a7sbA+lW4jeiU6WGletujMjWcRzc1513tI=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "2cd391fc65847ea54e3657a491c379854b556262", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_6": { + "inputs": { + "flake-utils": "flake-utils_43", + "nixpkgs": "nixpkgs_91" + }, + "locked": { + "lastModified": 1655533513, + "narHash": "sha256-MAqvv2AZbyNYGJMpV5l9ydN7k66jDErFpaKOvZ1Y7f8=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "2d47dbe633a059d75c7878f554420158712481cb", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": "nixpkgs_6", + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix-cache-proxy": { + "inputs": { + "devshell": "devshell_15", + "inclusive": [ + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "inclusive" + ], + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "utils": "utils_20" + }, + "locked": { + "lastModified": 1644317729, + "narHash": "sha256-R9R1XHv69VvZ/c7lXYs18PHcnEBXS+hDfhjdkZ96lgw=", + "owner": "input-output-hk", + "repo": "nix-cache-proxy", + "rev": "378617d6b9865be96f7dfa16e0ce3f329da844ec", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-cache-proxy", + "type": "github" + } + }, + "nix-inclusive": { + "inputs": { + "stdlib": "stdlib_13" + }, + "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" + } + }, + "nix-nomad": { + "inputs": { + "flake-compat": "flake-compat_8", + "flake-utils": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "nix2container", + "flake-utils" + ], + "gomod2nix": "gomod2nix", + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "nixpkgs" + ], + "nixpkgs-lib": [ + "cardano-nix", + "cardano-node-8.1.1", + "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_2": { + "inputs": { + "flake-compat": "flake-compat_9", + "flake-utils": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "nix2container", + "flake-utils" + ], + "gomod2nix": "gomod2nix_2", + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.7.3", + "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-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-tools": { + "flake": false, + "locked": { + "lastModified": 1644395812, + "narHash": "sha256-BVFk/BEsTLq5MMZvdy3ZYHKfaS3dHrsKh4+tb5t5b58=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "d847c63b99bbec78bf83be2a61dc9f09b8a9ccc1", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_2": { + "flake": false, + "locked": { + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_3": { + "flake": false, + "locked": { + "lastModified": 1658968505, + "narHash": "sha256-UnbQ/Ig/23e9hUdDOBwYHwHgHmQawZ2uazpJ8DLIJgE=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "8a754bdcf20b20e116409c2341cf69065d083053", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_4": { + "flake": false, + "locked": { + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix2container": { + "inputs": { + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_17" + }, + "locked": { + "lastModified": 1671269339, + "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "nix2container_2": { + "inputs": { + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_19" + }, + "locked": { + "lastModified": 1658567952, + "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "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" + }, + "locked": { + "lastModified": 1712990762, + "narHash": "sha256-hO9W3w7NcnYeX8u8cleHiSpK2YJo7ecarFTUlbybl7k=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "20aad300c925639d5d6cbe30013c8357ce9f2a2e", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "nix2container_7": { + "inputs": { + "flake-utils": "flake-utils_45", + "nixpkgs": "nixpkgs_94" + }, + "locked": { + "lastModified": 1653427219, + "narHash": "sha256-q6MzrIZq1BBFxYN+UQjW60LpQJXV6RIIUmO8gKRyMqg=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "11a0e14c2468720f42ca8dec3b82862abf96c837", + "type": "github" + }, + "original": { + "owner": "nlewo", + "ref": "init-nix-db", + "repo": "nix2container", + "type": "github" + } + }, + "nix_10": { + "inputs": { + "lowdown-src": "lowdown-src_10", + "nixpkgs": "nixpkgs_57", + "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": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "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=", + "owner": "NixOS", + "repo": "nix", + "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nix", + "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", + "type": "github" + } + }, + "nix_14": { + "inputs": { + "lowdown-src": "lowdown-src_14", + "nixpkgs": "nixpkgs_72", + "nixpkgs-regression": "nixpkgs-regression_13" + }, + "locked": { + "lastModified": 1646164353, + "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", + "owner": "kreisys", + "repo": "nix", + "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "goodnix-maybe-dont-functor", + "repo": "nix", + "type": "github" + } + }, + "nix_15": { + "inputs": { + "lowdown-src": "lowdown-src_15", + "nixpkgs": "nixpkgs_74" + }, + "locked": { + "lastModified": 1604400356, + "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "owner": "NixOS", + "repo": "nix", + "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nix", + "type": "github" + } + }, + "nix_16": { + "inputs": { + "lowdown-src": "lowdown-src_16", + "nixpkgs": "nixpkgs_76", + "nixpkgs-regression": "nixpkgs-regression_14" + }, + "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_17": { + "inputs": { + "lowdown-src": "lowdown-src_17", + "nixpkgs": "nixpkgs_88", + "nixpkgs-regression": "nixpkgs-regression_15" + }, + "locked": { + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" + } + }, + "nix_18": { + "inputs": { + "lowdown-src": "lowdown-src_18", + "nixpkgs": "nixpkgs_90", + "nixpkgs-regression": "nixpkgs-regression_16" + }, + "locked": { + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" + } + }, + "nix_19": { + "inputs": { + "lowdown-src": "lowdown-src_19", + "nixpkgs": "nixpkgs_97", + "nixpkgs-regression": "nixpkgs-regression_17" + }, + "locked": { + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" + } + }, + "nix_2": { + "inputs": { + "flake-compat": "flake-compat_3", + "lowdown-src": "lowdown-src_2", + "nixpkgs": "nixpkgs_10", + "nixpkgs-regression": "nixpkgs-regression_2" + }, + "locked": { + "lastModified": 1693573010, + "narHash": "sha256-HBm8mR2skhPtbJ7p+ByrOZjs7SfsfZPwy75MwI1EUmk=", + "owner": "nixos", + "repo": "nix", + "rev": "5568ca5ff130a8a0bc3db5878432eb527c74dd60", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "2.17-maintenance", + "repo": "nix", + "type": "github" + } + }, + "nix_20": { + "inputs": { + "lowdown-src": "lowdown-src_20", + "nixpkgs": "nixpkgs_98", + "nixpkgs-regression": "nixpkgs-regression_18" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix_3": { + "inputs": { + "lowdown-src": "lowdown-src_3", + "nixpkgs": "nixpkgs_14", + "nixpkgs-regression": "nixpkgs-regression_3" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix_4": { + "inputs": { + "lowdown-src": "lowdown-src_4", + "nixpkgs": "nixpkgs_16", + "nixpkgs-regression": "nixpkgs-regression_4" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix_5": { + "inputs": { + "lowdown-src": "lowdown-src_5", + "nixpkgs": "nixpkgs_26", + "nixpkgs-regression": "nixpkgs-regression_5" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix_6": { + "inputs": { + "lowdown-src": "lowdown-src_6", + "nixpkgs": "nixpkgs_35", + "nixpkgs-regression": "nixpkgs-regression_6" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix_7": { + "inputs": { + "lowdown-src": "lowdown-src_7", + "nixpkgs": "nixpkgs_43", + "nixpkgs-regression": "nixpkgs-regression_7" + }, + "locked": { + "lastModified": 1646164353, + "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", + "owner": "kreisys", + "repo": "nix", + "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "goodnix-maybe-dont-functor", + "repo": "nix", + "type": "github" + } + }, + "nix_8": { + "inputs": { + "lowdown-src": "lowdown-src_8", + "nixpkgs": "nixpkgs_45" + }, + "locked": { + "lastModified": 1604400356, + "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "owner": "NixOS", + "repo": "nix", + "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nix", + "type": "github" + } + }, + "nix_9": { + "inputs": { + "lowdown-src": "lowdown-src_9", + "nixpkgs": "nixpkgs_47", + "nixpkgs-regression": "nixpkgs-regression_8" + }, + "locked": { + "lastModified": 1645189081, + "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "owner": "nixos", + "repo": "nix", + "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nix", + "type": "github" + } + }, + "nixago": { + "inputs": { + "flake-utils": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "flake-utils" + ], + "nixago-exts": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "blank" + ], + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1661824785, + "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", + "owner": "nix-community", + "repo": "nixago", + "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago", + "type": "github" + } + }, + "nixago-exts": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago-extensions", + "type": "github" + } + }, + "nixago-exts_2": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago-extensions", + "type": "github" + } + }, + "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", + "cardano-automation", + "tullia", + "std", + "flake-utils" + ], + "nixago-exts": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "nixpkgs": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1661824785, + "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", + "owner": "nix-community", + "repo": "nixago", + "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago", + "type": "github" + } + }, + "nixago_5": { + "inputs": { + "flake-utils": [ + "db-sync", + "cardano-world", + "bitte", + "std", + "flake-utils" + ], + "nixago-exts": "nixago-exts", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1659153038, + "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", + "owner": "nix-community", + "repo": "nixago", + "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago", + "type": "github" + } + }, + "nixago_6": { + "inputs": { + "flake-utils": [ + "db-sync", + "cardano-world", + "std", + "flake-utils" + ], + "nixago-exts": "nixago-exts_2", + "nixpkgs": [ + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1659153038, + "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", + "owner": "nix-community", + "repo": "nixago", + "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixago", + "type": "github" + } + }, + "nixlib": { + "locked": { + "lastModified": 1652576347, + "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "bdf553800c9c34ed00641785b02038f67f44d671", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixlib_2": { + "locked": { + "lastModified": 1644107864, + "narHash": "sha256-Wrbt6Gs+hjXD3HUICPBJHKnHEUqiyx8rzHCgvqC1Bok=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "58eabcf65e7dba189eb0013f86831c159e3b2be6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixlib_3": { + "locked": { + "lastModified": 1656809537, + "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "40e271f69106323734b55e2ba74f13bebde324c0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs": { + "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-2003": { + "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_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, + "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_3": { + "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_4": { + "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_5": { + "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_6": { + "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_7": { + "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_8": { + "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_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, + "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_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, + "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_3": { + "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_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=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_7": { + "locked": { + "lastModified": 1645296114, + "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_8": { + "locked": { + "lastModified": 1655034179, + "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "046ee4af7a9f016a364f8f78eeaa356ba524ac31", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2105_9": { + "locked": { + "lastModified": 1645296114, + "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111": { + "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_10": { + "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_2": { + "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_3": { + "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_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=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_7": { + "locked": { + "lastModified": 1648744337, + "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_8": { + "locked": { + "lastModified": 1656782578, + "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2111_9": { + "locked": { + "lastModified": 1648744337, + "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2205": { + "locked": { + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2205_2": { + "locked": { + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", + "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": { + "locked": { + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2205_5": { + "locked": { + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2205_6": { + "locked": { + "lastModified": 1657876628, + "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "549d82bdd40f760a438c3c3497c1c61160f3de55", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2205_7": { + "locked": { + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2211": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2211_2": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_14": { - "inputs": { - "lowdown-src": "lowdown-src_14", - "nixpkgs": "nixpkgs_68", - "nixpkgs-regression": "nixpkgs-regression_12" + "nixpkgs-2211_3": { + "locked": { + "lastModified": 1682682915, + "narHash": "sha256-haR0u/j/nUvlMloYlaOYq1FMXTvkNHw+wGxc+0qXisM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "09f1b33fcc0f59263137e23e935c1bb03ec920e4", + "type": "github" }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2211_4": { "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_15": { - "inputs": { - "lowdown-src": "lowdown-src_15", - "nixpkgs": "nixpkgs_69", - "nixpkgs-regression": "nixpkgs-regression_13" + "nixpkgs-2211_5": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2211_6": { "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", "owner": "NixOS", - "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.11.0", - "repo": "nix", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_16": { - "inputs": { - "lowdown-src": "lowdown-src_16", - "nixpkgs": "nixpkgs_71", - "nixpkgs-regression": "nixpkgs-regression_14" + "nixpkgs-2305": { + "locked": { + "lastModified": 1690680713, + "narHash": "sha256-NXCWA8N+GfSQyoN7ZNiOgq/nDJKOp5/BHEpiZP8sUZw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b81af66deb21f73a70c67e5ea189568af53b1e8c", + "type": "github" }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2305_2": { "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "lastModified": 1695416179, + "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_2": { - "inputs": { - "lowdown-src": "lowdown-src_2", - "nixpkgs": "nixpkgs_14", - "nixpkgs-regression": "nixpkgs-regression_2" + "nixpkgs-2305_3": { + "locked": { + "lastModified": 1695416179, + "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", + "type": "github" }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2305_4": { "locked": { - "lastModified": 1646164353, - "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", - "owner": "kreisys", - "repo": "nix", - "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "lastModified": 1701362232, + "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "goodnix-maybe-dont-functor", - "repo": "nix", + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_3": { - "inputs": { - "lowdown-src": "lowdown-src_3", - "nixpkgs": "nixpkgs_16" + "nixpkgs-2305_5": { + "locked": { + "lastModified": 1705033721, + "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", + "type": "github" }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2311": { "locked": { - "lastModified": 1604400356, - "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "lastModified": 1701386440, + "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", "owner": "NixOS", - "repo": "nix", - "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "repo": "nixpkgs", + "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", "type": "github" }, "original": { "owner": "NixOS", - "repo": "nix", + "ref": "nixpkgs-23.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_4": { - "inputs": { - "lowdown-src": "lowdown-src_4", - "nixpkgs": "nixpkgs_18", - "nixpkgs-regression": "nixpkgs-regression_3" + "nixpkgs-2311_2": { + "locked": { + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-23.11-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2405": { + "locked": { + "lastModified": 1720122915, + "narHash": "sha256-Nby8WWxj0elBu1xuRaUcRjPi/rU3xVbkAt2kj4QwX2U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "835cf2d3f37989c5db6585a28de967a667a75fb1", + "type": "github" }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-24.05-darwin", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-arion": { "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "lastModified": 1721923017, + "narHash": "sha256-Mwbxpq0WTPL9sV2gMgZwnNvjlUmt5Z+EF4KWYAsQWB4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "059d72964ac2eb17a272efef5f96afaa147221f4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-docker": { + "locked": { + "lastModified": 1652739558, + "narHash": "sha256-znGkjGugajqF/sFS+H4+ENmGTaVPFE0uu1JjQZJLEaQ=", "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "repo": "nixpkgs", + "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1671359686, + "narHash": "sha256-3MpC6yZo+Xn9cPordGz2/ii6IJpP2n8LE8e/ebUXLrs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "04f574a1c0fde90b51bf68198e2297ca4e7cccf4", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "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": { - "owner": "nixos", - "repo": "nix", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_5": { - "inputs": { - "lowdown-src": "lowdown-src_5", - "nixpkgs": "nixpkgs_28", - "nixpkgs-regression": "nixpkgs-regression_4" - }, + "nixpkgs-lib_4": { "locked": { - "lastModified": 1652510778, - "narHash": "sha256-zldZ4SiwkISFXxrbY/UdwooIZ3Z/I6qKxtpc3zD0T/o=", - "owner": "nixos", - "repo": "nix", - "rev": "65cd26eebbbf80eaf0d74092f09b737606cb4b5a", + "dir": "lib", + "lastModified": 1690881714, + "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9e1960bc196baf6881340d53dccb203a951745a2", "type": "github" }, "original": { - "owner": "nixos", - "ref": "2.8.1", - "repo": "nix", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_6": { - "inputs": { - "lowdown-src": "lowdown-src_6", - "nixpkgs": "nixpkgs_30", - "nixpkgs-regression": "nixpkgs-regression_5" - }, + "nixpkgs-lib_5": { "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", - "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "dir": "lib", + "lastModified": 1696019113, + "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", "type": "github" }, "original": { - "owner": "nixos", - "repo": "nix", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_7": { - "inputs": { - "lowdown-src": "lowdown-src_7", - "nixpkgs": "nixpkgs_37", - "nixpkgs-regression": "nixpkgs-regression_6" - }, + "nixpkgs-regression": { "locked": { - "lastModified": 1644413094, - "narHash": "sha256-KLGaeSqvhuUFz6DxrB9r3w+lfp9bXIiCT9K1cqg7Ze8=", - "owner": "nixos", - "repo": "nix", - "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nixos", - "repo": "nix", - "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nix_8": { - "inputs": { - "lowdown-src": "lowdown-src_8", - "nixpkgs": "nixpkgs_38", - "nixpkgs-regression": "nixpkgs-regression_7" - }, + "nixpkgs-regression_10": { "locked": { - "lastModified": 1645437800, - "narHash": "sha256-MAMIKi3sIQ0b3jzYyOb5VY29GRgv7JXl1VXoUM9xUZw=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", - "repo": "nix", - "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" + } + }, + "nixpkgs-regression_11": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", - "repo": "nix", - "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" + }, + "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nix_9": { - "inputs": { - "lowdown-src": "lowdown-src_9", - "nixpkgs": "nixpkgs_43", - "nixpkgs-regression": "nixpkgs-regression_8" - }, + "nixpkgs-regression_12": { "locked": { - "lastModified": 1646164353, - "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", - "owner": "kreisys", - "repo": "nix", - "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "goodnix-maybe-dont-functor", - "repo": "nix", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago": { - "inputs": { - "flake-utils": [ - "cardano-node", - "tullia", - "std", - "flake-utils" - ], - "nixago-exts": [ - "cardano-node", - "tullia", - "std", - "blank" - ], - "nixpkgs": [ - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] - }, + "nixpkgs-regression_13": { "locked": { - "lastModified": 1661824785, - "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", - "owner": "nix-community", - "repo": "nixago", - "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago-exts": { + "nixpkgs-regression_14": { "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago-extensions", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago-exts_2": { + "nixpkgs-regression_15": { "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago-extensions", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago_2": { - "inputs": { - "flake-utils": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "flake-utils" - ], - "nixago-exts": "nixago-exts", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ] - }, + "nixpkgs-regression_16": { "locked": { - "lastModified": 1659153038, - "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", - "owner": "nix-community", - "repo": "nixago", - "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago_3": { - "inputs": { - "flake-utils": [ - "db-sync", - "cardano-world", - "std", - "flake-utils" - ], - "nixago-exts": "nixago-exts_2", - "nixpkgs": [ - "db-sync", - "cardano-world", - "std", - "nixpkgs" - ] - }, + "nixpkgs-regression_17": { "locked": { - "lastModified": 1659153038, - "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", - "owner": "nix-community", - "repo": "nixago", - "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixlib": { + "nixpkgs-regression_18": { "locked": { - "lastModified": 1652576347, - "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "bdf553800c9c34ed00641785b02038f67f44d671", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixlib_2": { + "nixpkgs-regression_2": { "locked": { - "lastModified": 1644107864, - "narHash": "sha256-Wrbt6Gs+hjXD3HUICPBJHKnHEUqiyx8rzHCgvqC1Bok=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "58eabcf65e7dba189eb0013f86831c159e3b2be6", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixlib_3": { + "nixpkgs-regression_3": { "locked": { - "lastModified": 1656809537, - "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "40e271f69106323734b55e2ba74f13bebde324c0", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs": { + "nixpkgs-regression_4": { "locked": { - "lastModified": 1687420147, - "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-23.05", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003": { + "nixpkgs-regression_5": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_2": { + "nixpkgs-regression_6": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_3": { + "nixpkgs-regression_7": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixpkgs-2003_4": { + "nixpkgs-regression_8": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" + } + }, + "nixpkgs-regression_9": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" + }, + "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixpkgs-2003_5": { + "nixpkgs-stable": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1690066826, + "narHash": "sha256-6L2qb+Zc0BFkh72OS9uuX637gniOjzU6qCDBpjB2LGY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "ce45b591975d070044ca24e3003c830d26fea1c8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", + "ref": "release-23.05", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2003_6": { + "nixpkgs-unstable": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1690720142, + "narHash": "sha256-GywuiZjBKfFkntQwpNQfL+Ksa2iGjPprBGL0/psgRZM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "3acb5c4264c490e7714d503c7166a3fde0c51324", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2003_7": { + "nixpkgs-unstable_10": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105": { + "nixpkgs-unstable_11": { "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "lastModified": 1657888067, + "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", + "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_2": { + "nixpkgs-unstable_12": { "locked": { - "lastModified": 1642244250, - "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=", + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_3": { + "nixpkgs-unstable_13": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1720181791, + "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_4": { + "nixpkgs-unstable_2": { "locked": { - "lastModified": 1655034179, - "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=", - "owner": "NixOS", + "lastModified": 1696577711, + "narHash": "sha256-94VRjvClIKDym1QRqPkX5LTQoAwZ1E6QE/3dWtOXSIQ=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "046ee4af7a9f016a364f8f78eeaa356ba524ac31", + "rev": "a2eb207f45e4a14a1e3019d9e3863d1e208e2295", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_5": { + "nixpkgs-unstable_3": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1695318763, + "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_6": { + "nixpkgs-unstable_4": { "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "lastModified": 1682656005, + "narHash": "sha256-fYplYo7so1O+rSQ2/aS+SbTPwLTeoUXk4ekKNtSl4P8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", + "rev": "6806b63e824f84b0f0e60b6d660d4ae753de0477", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_7": { + "nixpkgs-unstable_5": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1695318763, + "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111": { + "nixpkgs-unstable_6": { "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "lastModified": 1694822471, + "narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", "repo": "nixpkgs", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" } }, - "nixpkgs-2111_2": { + "nixpkgs-unstable_7": { "locked": { - "lastModified": 1644510859, - "narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=", - "owner": "NixOS", + "lastModified": 1646331602, + "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3", + "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_3": { + "nixpkgs-unstable_8": { "locked": { - "lastModified": 1648744337, - "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", - "owner": "NixOS", + "lastModified": 1656338871, + "narHash": "sha256-+LOvZFt3MpWtrxXLH4igQtRVzyD43VnuTJjDVbt7phY=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "rev": "819e4d63fc7f337a822a049fd055cd7615a5e0d6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "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-2111_4": { + "nixpkgs_10": { "locked": { - "lastModified": 1656782578, - "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=", + "lastModified": 1670461440, + "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b", + "rev": "04a75b2eecc0acf6239acf9dd04485ff8d14f425", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixos-22.11-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_5": { + "nixpkgs_11": { "locked": { - "lastModified": 1648744337, - "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "lastModified": 1690026219, + "narHash": "sha256-oOduRk/kzQxOBknZXTLSEYd7tk+GoKvr8wV6Ab+t4AU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "rev": "f465da166263bc0d4b39dfd4ca28b777c92d4b73", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_6": { + "nixpkgs_12": { "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "lastModified": 1675249806, + "narHash": "sha256-u8Rcqekusl3pMZm68hZqr6zozI8Ug5IxqOiqDLAlu1k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "rev": "79feedf38536de2a27d13fe2eaf200a9c05193ba", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_7": { + "nixpkgs_13": { "locked": { - "lastModified": 1648744337, - "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", - "owner": "NixOS", + "lastModified": 1636823747, + "narHash": "sha256-oWo1nElRAOZqEf90Yek2ixdHyjD+gqtS/pAgwaQ9UhQ=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "rev": "f6a2ed2082d9a51668c86ba27d0b5496f7a2ea93", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "owner": "nixos", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2205": { + "nixpkgs_14": { "locked": { - "lastModified": 1682600000, - "narHash": "sha256-ha4BehR1dh8EnXSoE1m/wyyYVvHI9txjW4w5/oxsW5Y=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2205_2": { + "nixpkgs_15": { "locked": { - "lastModified": 1657876628, - "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=", + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "549d82bdd40f760a438c3c3497c1c61160f3de55", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs-2205_3": { + "nixpkgs_16": { "locked": { - "lastModified": 1685573264, - "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2211": { + "nixpkgs_17": { "locked": { - "lastModified": 1682682915, - "narHash": "sha256-haR0u/j/nUvlMloYlaOYq1FMXTvkNHw+wGxc+0qXisM=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "09f1b33fcc0f59263137e23e935c1bb03ec920e4", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2211_2": { + "nixpkgs_18": { "locked": { - "lastModified": 1688392541, - "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2305": { + "nixpkgs_19": { "locked": { - "lastModified": 1701362232, - "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.05-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2311": { + "nixpkgs_2": { "locked": { - "lastModified": 1701386440, - "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", + "lastModified": 1687420147, + "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", + "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.11-darwin", + "ref": "release-23.05", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-docker": { + "nixpkgs_20": { "locked": { - "lastModified": 1652739558, - "narHash": "sha256-znGkjGugajqF/sFS+H4+ENmGTaVPFE0uu1JjQZJLEaQ=", + "lastModified": 1674407282, + "narHash": "sha256-2qwc8mrPINSFdWffPK+ji6nQ9aGnnZyHSItVcYDZDlk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", + "rev": "ab1254087f4cdf4af74b552d7fc95175d9bdbb49", "type": "github" }, "original": { "owner": "nixos", + "ref": "nixos-22.11", "repo": "nixpkgs", - "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", "type": "github" } }, - "nixpkgs-regression": { + "nixpkgs_21": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1665087388, + "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-regression_10": { + "nixpkgs_22": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_11": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" } }, - "nixpkgs-regression_12": { + "nixpkgs_23": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_13": { + "nixpkgs_24": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1675940568, + "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-regression_14": { + "nixpkgs_25": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", "type": "github" }, "original": { "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "indirect" } }, - "nixpkgs-regression_2": { + "nixpkgs_26": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_3": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", + "ref": "nixos-22.05-small", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" } }, - "nixpkgs-regression_4": { + "nixpkgs_27": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_5": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" } }, - "nixpkgs-regression_6": { + "nixpkgs_28": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "lastModified": 1681001314, + "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, - "nixpkgs-regression_7": { + "nixpkgs_29": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1675940568, + "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_8": { + "nixpkgs_3": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1677543769, + "narHash": "sha256-LwbqS8vGisXl2WHpK9r5+kodr0zoIT8F2YB0R4y1TsA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "b26d52c9feb6476580016e78935cbf96eb3e2115", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_9": { + "nixpkgs_30": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1677063315, + "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "988cc958c57ce4350ec248d2d53087777f9e1949", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs_31": { "locked": { - "lastModified": 1682656005, - "narHash": "sha256-fYplYo7so1O+rSQ2/aS+SbTPwLTeoUXk4ekKNtSl4P8=", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6806b63e824f84b0f0e60b6d660d4ae753de0477", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_2": { + "nixpkgs_32": { "locked": { - "lastModified": 1646331602, - "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", - "owner": "nixos", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", + "owner": "NixOS", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_3": { + "nixpkgs_33": { "locked": { - "lastModified": 1656338871, - "narHash": "sha256-+LOvZFt3MpWtrxXLH4igQtRVzyD43VnuTJjDVbt7phY=", + "lastModified": 1665087388, + "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "819e4d63fc7f337a822a049fd055cd7615a5e0d6", + "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", "type": "github" }, "original": { @@ -6693,93 +11621,88 @@ "type": "github" } }, - "nixpkgs-unstable_4": { + "nixpkgs_34": { "locked": { - "lastModified": 1646331602, - "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", - "owner": "nixos", + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs-unstable_5": { + "nixpkgs_35": { "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_6": { + "nixpkgs_36": { "locked": { - "lastModified": 1657888067, - "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=", + "lastModified": 1712920918, + "narHash": "sha256-1yxFvUcJfUphK9V91KufIQom7gCsztza0H4Rz2VCWUU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e", + "rev": "92323443a56f4e9fc4e4b712e3119f66d0969297", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_7": { + "nixpkgs_37": { "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", - "owner": "NixOS", + "lastModified": 1708343346, + "narHash": "sha256-qlzHvterVRzS8fS0ophQpkh0rqw0abijHEOAKm0HmV0=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "rev": "9312b935a538684049cb668885e60f15547d4c5f", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", + "owner": "nixos", + "ref": "release-23.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_8": { + "nixpkgs_38": { "locked": { - "lastModified": 1701336116, - "narHash": "sha256-kEmpezCR/FpITc6yMbAh4WrOCiT2zg5pSjnKrq51h5Y=", + "lastModified": 1627969475, + "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5c27c6136db4d76c30e533c20517df6864c46ee", + "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs-unstable_9": { + "nixpkgs_39": { "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", + "lastModified": 1644972330, + "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "rev": "19574af0af3ffaf7c9e359744ed32556f34536bd", "type": "github" }, "original": { @@ -6789,23 +11712,23 @@ "type": "github" } }, - "nixpkgs_10": { + "nixpkgs_4": { "locked": { - "lastModified": 1644972330, - "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", - "owner": "NixOS", + "lastModified": 1645013224, + "narHash": "sha256-b7OEC8vwzJv3rsz9pwnTX2LQDkeOWz2DbKypkVvNHXc=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "19574af0af3ffaf7c9e359744ed32556f34536bd", + "rev": "b66b39216b1fef2d8c33cc7a5c72d8da80b79970", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_40": { "locked": { "lastModified": 1627969475, "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", @@ -6819,7 +11742,7 @@ "type": "indirect" } }, - "nixpkgs_12": { + "nixpkgs_41": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -6835,7 +11758,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_42": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -6851,7 +11774,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_43": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -6866,7 +11789,7 @@ "type": "indirect" } }, - "nixpkgs_15": { + "nixpkgs_44": { "locked": { "lastModified": 1638452135, "narHash": "sha256-5Il6hgrTgcWIsB7zug0yDFccYXx7pJCw8cwJdXMuLfM=", @@ -6882,7 +11805,7 @@ "type": "github" } }, - "nixpkgs_16": { + "nixpkgs_45": { "locked": { "lastModified": 1602702596, "narHash": "sha256-fqJ4UgOb4ZUnCDIapDb4gCrtAah5Rnr2/At3IzMitig=", @@ -6897,7 +11820,7 @@ "type": "indirect" } }, - "nixpkgs_17": { + "nixpkgs_46": { "locked": { "lastModified": 1638887115, "narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=", @@ -6913,7 +11836,7 @@ "type": "github" } }, - "nixpkgs_18": { + "nixpkgs_47": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -6928,7 +11851,7 @@ "type": "indirect" } }, - "nixpkgs_19": { + "nixpkgs_48": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -6944,37 +11867,39 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_49": { "locked": { - "lastModified": 1642336556, - "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", - "owner": "NixOS", + "lastModified": 1647350163, + "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "rev": "3eb07eeafb52bcbf02ce800f032f18d666a9498d", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs_20": { + "nixpkgs_5": { "locked": { - "lastModified": 1647350163, - "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", + "lastModified": 1680945546, + "narHash": "sha256-8FuaH5t/aVi/pR1XxnF0qi4WwMYC+YxlfdsA0V+TEuQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3eb07eeafb52bcbf02ce800f032f18d666a9498d", + "rev": "d9f759f2ea8d265d974a6e1259bd510ac5844c5d", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_21": { + "nixpkgs_50": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -6990,7 +11915,7 @@ "type": "github" } }, - "nixpkgs_22": { + "nixpkgs_51": { "locked": { "lastModified": 1646506091, "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", @@ -7006,7 +11931,7 @@ "type": "github" } }, - "nixpkgs_23": { + "nixpkgs_52": { "locked": { "lastModified": 1658119717, "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", @@ -7022,7 +11947,7 @@ "type": "github" } }, - "nixpkgs_24": { + "nixpkgs_53": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7038,7 +11963,7 @@ "type": "github" } }, - "nixpkgs_25": { + "nixpkgs_54": { "locked": { "lastModified": 1652576347, "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", @@ -7053,7 +11978,7 @@ "type": "github" } }, - "nixpkgs_26": { + "nixpkgs_55": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7069,7 +11994,7 @@ "type": "github" } }, - "nixpkgs_27": { + "nixpkgs_56": { "locked": { "lastModified": 1642451377, "narHash": "sha256-hvAuYDUN8XIrcQKE6wDw4LjTCcwrTp2B1i1i/5vfDMQ=", @@ -7084,7 +12009,7 @@ "type": "github" } }, - "nixpkgs_28": { + "nixpkgs_57": { "locked": { "lastModified": 1645296114, "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", @@ -7099,7 +12024,7 @@ "type": "indirect" } }, - "nixpkgs_29": { + "nixpkgs_58": { "locked": { "lastModified": 1652559422, "narHash": "sha256-jPVTNImBTUIFdtur+d4IVot6eXmsvtOcBm0TzxmhWPk=", @@ -7115,38 +12040,38 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_59": { "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "lastModified": 1632864508, + "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", + "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "ref": "nixos-21.05-small", + "type": "indirect" } }, - "nixpkgs_30": { + "nixpkgs_6": { "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-22.05-small", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs_31": { + "nixpkgs_60": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -7162,7 +12087,7 @@ "type": "github" } }, - "nixpkgs_32": { + "nixpkgs_61": { "locked": { "lastModified": 1647350163, "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", @@ -7178,7 +12103,7 @@ "type": "github" } }, - "nixpkgs_33": { + "nixpkgs_62": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7194,7 +12119,7 @@ "type": "github" } }, - "nixpkgs_34": { + "nixpkgs_63": { "locked": { "lastModified": 1658311025, "narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=", @@ -7210,7 +12135,7 @@ "type": "github" } }, - "nixpkgs_35": { + "nixpkgs_64": { "locked": { "lastModified": 1646331602, "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", @@ -7226,7 +12151,7 @@ "type": "github" } }, - "nixpkgs_36": { + "nixpkgs_65": { "locked": { "lastModified": 1643381941, "narHash": "sha256-pHTwvnN4tTsEKkWlXQ8JMY423epos8wUOhthpwJjtpc=", @@ -7242,7 +12167,7 @@ "type": "github" } }, - "nixpkgs_37": { + "nixpkgs_66": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7257,7 +12182,7 @@ "type": "indirect" } }, - "nixpkgs_38": { + "nixpkgs_67": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7269,41 +12194,26 @@ "original": { "id": "nixpkgs", "ref": "nixos-21.05-small", - "type": "indirect" - } - }, - "nixpkgs_39": { - "locked": { - "lastModified": 1644486793, - "narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1882c6b7368fd284ad01b0a5b5601ef136321292", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "indirect" } }, - "nixpkgs_4": { + "nixpkgs_68": { "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "lastModified": 1644486793, + "narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", + "rev": "1882c6b7368fd284ad01b0a5b5601ef136321292", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_40": { + "nixpkgs_69": { "locked": { "lastModified": 1627969475, "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", @@ -7317,7 +12227,23 @@ "type": "indirect" } }, - "nixpkgs_41": { + "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": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -7333,7 +12259,7 @@ "type": "github" } }, - "nixpkgs_42": { + "nixpkgs_71": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7349,7 +12275,7 @@ "type": "github" } }, - "nixpkgs_43": { + "nixpkgs_72": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7364,7 +12290,7 @@ "type": "indirect" } }, - "nixpkgs_44": { + "nixpkgs_73": { "locked": { "lastModified": 1638452135, "narHash": "sha256-5Il6hgrTgcWIsB7zug0yDFccYXx7pJCw8cwJdXMuLfM=", @@ -7380,7 +12306,7 @@ "type": "github" } }, - "nixpkgs_45": { + "nixpkgs_74": { "locked": { "lastModified": 1602702596, "narHash": "sha256-fqJ4UgOb4ZUnCDIapDb4gCrtAah5Rnr2/At3IzMitig=", @@ -7395,7 +12321,7 @@ "type": "indirect" } }, - "nixpkgs_46": { + "nixpkgs_75": { "locked": { "lastModified": 1638887115, "narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=", @@ -7411,7 +12337,7 @@ "type": "github" } }, - "nixpkgs_47": { + "nixpkgs_76": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7426,7 +12352,7 @@ "type": "indirect" } }, - "nixpkgs_48": { + "nixpkgs_77": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -7442,7 +12368,7 @@ "type": "github" } }, - "nixpkgs_49": { + "nixpkgs_78": { "locked": { "lastModified": 1647350163, "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", @@ -7458,39 +12384,39 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_79": { "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", + "lastModified": 1644525281, + "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_50": { + "nixpkgs_8": { "locked": { - "lastModified": 1644525281, - "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", + "lastModified": 1684171562, + "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2", + "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "release-22.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_51": { + "nixpkgs_80": { "locked": { "lastModified": 1646506091, "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", @@ -7506,7 +12432,7 @@ "type": "github" } }, - "nixpkgs_52": { + "nixpkgs_81": { "locked": { "lastModified": 1658119717, "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", @@ -7522,7 +12448,7 @@ "type": "github" } }, - "nixpkgs_53": { + "nixpkgs_82": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7538,7 +12464,7 @@ "type": "github" } }, - "nixpkgs_54": { + "nixpkgs_83": { "locked": { "lastModified": 1646470760, "narHash": "sha256-dQISyucVCCPaFioUhy5ZgfBz8rOMKGI8k13aPDFTqEs=", @@ -7554,7 +12480,7 @@ "type": "github" } }, - "nixpkgs_55": { + "nixpkgs_84": { "locked": { "lastModified": 1619531122, "narHash": "sha256-ovm5bo6PkZzNKh2YGXbRKYIjega0EjiEP0YDwyeXEYU=", @@ -7568,7 +12494,7 @@ "type": "indirect" } }, - "nixpkgs_56": { + "nixpkgs_85": { "locked": { "lastModified": 1656461576, "narHash": "sha256-rlmmw6lIlkMQIiB+NsnO8wQYWTfle8TA41UREPLP5VY=", @@ -7584,7 +12510,7 @@ "type": "github" } }, - "nixpkgs_57": { + "nixpkgs_86": { "locked": { "lastModified": 1655567057, "narHash": "sha256-Cc5hQSMsTzOHmZnYm8OSJ5RNUp22bd5NADWLHorULWQ=", @@ -7598,7 +12524,7 @@ "type": "indirect" } }, - "nixpkgs_58": { + "nixpkgs_87": { "locked": { "lastModified": 1656401090, "narHash": "sha256-bUS2nfQsvTQW2z8SK7oEFSElbmoBahOPtbXPm0AL3I4=", @@ -7612,7 +12538,7 @@ "type": "indirect" } }, - "nixpkgs_59": { + "nixpkgs_88": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7627,22 +12553,7 @@ "type": "indirect" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_60": { + "nixpkgs_89": { "locked": { "lastModified": 1656809537, "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", @@ -7657,7 +12568,23 @@ "type": "github" } }, - "nixpkgs_61": { + "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": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7672,7 +12599,7 @@ "type": "indirect" } }, - "nixpkgs_62": { + "nixpkgs_91": { "locked": { "lastModified": 1654807842, "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", @@ -7687,7 +12614,7 @@ "type": "github" } }, - "nixpkgs_63": { + "nixpkgs_92": { "locked": { "lastModified": 1656947410, "narHash": "sha256-htDR/PZvjUJGyrRJsVqDmXR8QeoswBaRLzHt13fd0iY=", @@ -7703,7 +12630,7 @@ "type": "github" } }, - "nixpkgs_64": { + "nixpkgs_93": { "locked": { "lastModified": 1658311025, "narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=", @@ -7719,7 +12646,7 @@ "type": "github" } }, - "nixpkgs_65": { + "nixpkgs_94": { "locked": { "lastModified": 1642451377, "narHash": "sha256-hvAuYDUN8XIrcQKE6wDw4LjTCcwrTp2B1i1i/5vfDMQ=", @@ -7734,7 +12661,7 @@ "type": "github" } }, - "nixpkgs_66": { + "nixpkgs_95": { "locked": { "lastModified": 1653920503, "narHash": "sha256-BBeCZwZImtjP3oYy4WogkQYy5OxNyfNciVSc1AfZgLQ=", @@ -7750,7 +12677,7 @@ "type": "github" } }, - "nixpkgs_67": { + "nixpkgs_96": { "locked": { "lastModified": 1650469885, "narHash": "sha256-BuILRZ6pzMnGey8/irbjGq1oo3vIvZa1pitSdZCmIXA=", @@ -7766,7 +12693,7 @@ "type": "github" } }, - "nixpkgs_68": { + "nixpkgs_97": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7781,7 +12708,7 @@ "type": "indirect" } }, - "nixpkgs_69": { + "nixpkgs_98": { "locked": { "lastModified": 1657693803, "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", @@ -7797,29 +12724,13 @@ "type": "github" } }, - "nixpkgs_7": { - "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_70": { + "nixpkgs_99": { "locked": { - "lastModified": 1697723726, - "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", + "lastModified": 1713714899, + "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", + "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", "type": "github" }, "original": { @@ -7829,56 +12740,11 @@ "type": "github" } }, - "nixpkgs_71": { - "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" - } - }, - "nixpkgs_8": { - "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_9": { - "locked": { - "lastModified": 1627969475, - "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "nomad": { "inputs": { - "nix": "nix_3", - "nixpkgs": "nixpkgs_17", - "utils": "utils_4" + "nix": "nix_8", + "nixpkgs": "nixpkgs_46", + "utils": "utils_9" }, "locked": { "lastModified": 1648128770, @@ -7897,11 +12763,11 @@ }, "nomad-driver-nix": { "inputs": { - "devshell": "devshell_2", - "inclusive": "inclusive", - "nix": "nix_4", - "nixpkgs": "nixpkgs_19", - "utils": "utils_5" + "devshell": "devshell_6", + "inclusive": "inclusive_2", + "nix": "nix_9", + "nixpkgs": "nixpkgs_48", + "utils": "utils_10" }, "locked": { "lastModified": 1648029666, @@ -7919,11 +12785,11 @@ }, "nomad-driver-nix_2": { "inputs": { - "devshell": "devshell_5", - "inclusive": "inclusive_4", - "nix": "nix_6", - "nixpkgs": "nixpkgs_31", - "utils": "utils_10" + "devshell": "devshell_9", + "inclusive": "inclusive_5", + "nix": "nix_11", + "nixpkgs": "nixpkgs_60", + "utils": "utils_15" }, "locked": { "lastModified": 1648029666, @@ -7941,11 +12807,11 @@ }, "nomad-driver-nix_3": { "inputs": { - "devshell": "devshell_12", - "inclusive": "inclusive_9", - "nix": "nix_11", - "nixpkgs": "nixpkgs_48", - "utils": "utils_19" + "devshell": "devshell_16", + "inclusive": "inclusive_10", + "nix": "nix_16", + "nixpkgs": "nixpkgs_77", + "utils": "utils_24" }, "locked": { "lastModified": 1648029666, @@ -7963,10 +12829,10 @@ }, "nomad-follower": { "inputs": { - "devshell": "devshell_3", - "inclusive": "inclusive_2", - "nixpkgs": "nixpkgs_20", - "utils": "utils_6" + "devshell": "devshell_7", + "inclusive": "inclusive_3", + "nixpkgs": "nixpkgs_49", + "utils": "utils_11" }, "locked": { "lastModified": 1649836589, @@ -7984,10 +12850,10 @@ }, "nomad-follower_2": { "inputs": { - "devshell": "devshell_6", - "inclusive": "inclusive_5", - "nixpkgs": "nixpkgs_32", - "utils": "utils_11" + "devshell": "devshell_10", + "inclusive": "inclusive_6", + "nixpkgs": "nixpkgs_61", + "utils": "utils_16" }, "locked": { "lastModified": 1658244176, @@ -8005,10 +12871,10 @@ }, "nomad-follower_3": { "inputs": { - "devshell": "devshell_13", - "inclusive": "inclusive_10", - "nixpkgs": "nixpkgs_49", - "utils": "utils_20" + "devshell": "devshell_17", + "inclusive": "inclusive_11", + "nixpkgs": "nixpkgs_78", + "utils": "utils_25" }, "locked": { "lastModified": 1649836589, @@ -8019,39 +12885,84 @@ "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nomad-follower", + "owner": "input-output-hk", + "repo": "nomad-follower", + "type": "github" + } + }, + "nomad_2": { + "inputs": { + "nix": "nix_15", + "nixpkgs": "nixpkgs_75", + "utils": "utils_23" + }, + "locked": { + "lastModified": 1648128770, + "narHash": "sha256-iv5Zjddi28OJH7Kh8/oGJ0k32PQXiY+56qXKiLIxSEI=", + "owner": "input-output-hk", + "repo": "nomad", + "rev": "beb504f6c8bd832e1d4509e4104187774b8ecfc0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "ref": "release-1.2.6", + "repo": "nomad", + "type": "github" + } + }, + "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" } }, - "nomad_2": { - "inputs": { - "nix": "nix_10", - "nixpkgs": "nixpkgs_46", - "utils": "utils_18" - }, + "nosys_3": { "locked": { - "lastModified": 1648128770, - "narHash": "sha256-iv5Zjddi28OJH7Kh8/oGJ0k32PQXiY+56qXKiLIxSEI=", - "owner": "input-output-hk", - "repo": "nomad", - "rev": "beb504f6c8bd832e1d4509e4104187774b8ecfc0", + "lastModified": 1668010795, + "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", + "owner": "divnix", + "repo": "nosys", + "rev": "feade0141487801c71ff55623b421ed535dbdefa", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release-1.2.6", - "repo": "nomad", + "owner": "divnix", + "repo": "nosys", "type": "github" } }, - "nosys": { + "nosys_4": { "locked": { - "lastModified": 1667881534, - "narHash": "sha256-FhwJ15uPLRsvaxtt/bNuqE/ykMpNAPF0upozFKhTtXM=", + "lastModified": 1668010795, + "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", "owner": "divnix", "repo": "nosys", - "rev": "2d0d5207f6a230e9d0f660903f8db9807b54814f", + "rev": "feade0141487801c71ff55623b421ed535dbdefa", "type": "github" }, "original": { @@ -8060,6 +12971,23 @@ "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": { @@ -8077,61 +13005,41 @@ "type": "github" } }, - "ogmios-nixos": { - "inputs": { - "CHaP": "CHaP_3", - "blank": "blank_5", - "cardano-configurations": "cardano-configurations_2", - "cardano-node": [ - "cardano-node" - ], - "flake-compat": "flake-compat_13", - "haskell-nix": [ - "haskell-nix" - ], - "iohk-nix": [ - "iohk-nix" - ], - "nixpkgs": [ - "nixpkgs" - ], - "ogmios-src": [ - "ogmios" - ] - }, + "ogmios_2": { + "flake": false, "locked": { - "lastModified": 1695289922, - "narHash": "sha256-WeZkYCyvOqnVx9zYgyO2rh0rd3O2DmxH0HZ4OJnf/aw=", - "owner": "mlabs-haskell", - "repo": "ogmios-nixos", - "rev": "78e829e9ebd50c5891024dcd1004c2ac51facd80", + "lastModified": 1720778275, + "narHash": "sha256-OpUeVbztfLy+9d2M5w2Jgx1b/IhDNAQdlr/eP1iKUQI=", + "owner": "CardanoSolutions", + "repo": "ogmios", + "rev": "63a9e9d33eadbca22d1ecc90b9623b962148d174", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "repo": "ogmios-nixos", - "rev": "78e829e9ebd50c5891024dcd1004c2ac51facd80", + "owner": "CardanoSolutions", + "ref": "v6.5.0", + "repo": "ogmios", "type": "github" } }, - "ogmios_2": { + "old-ghc-nix": { "flake": false, "locked": { - "lastModified": 1691769233, - "narHash": "sha256-7CLprKq3RwJfvy31LAPux+DYFLjEmbRBFgvtYDpJA8Q=", - "owner": "CardanoSolutions", - "repo": "ogmios", - "rev": "3d3f359b0987c009ef66fb4d4b4bddce92b9aeb3", + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", "type": "github" }, "original": { - "owner": "CardanoSolutions", - "ref": "v6.0.0", - "repo": "ogmios", + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", "type": "github" } }, - "old-ghc-nix": { + "old-ghc-nix_10": { "flake": false, "locked": { "lastModified": 1631092763, @@ -8250,108 +13158,367 @@ "type": "github" } }, + "old-ghc-nix_8": { + "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_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=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "5be29ed53b2a4cbbf4cf326fa2e9c1f2b754d26d", + "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_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, + "narHash": "sha256-0hNlv+grFTE+TeXIbxSY97QoEEaUupOKMusZ4PesdrQ=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "19d83fa8eab1c0b7765f736eb4e8569d84d3e39d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "ops-lib_4": { + "flake": false, + "locked": { + "lastModified": 1649848729, + "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "ops-lib_5": { + "flake": false, + "locked": { + "lastModified": 1649848729, + "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "ops-lib_6": { + "flake": false, + "locked": { + "lastModified": 1649848729, + "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "paisano": { + "inputs": { + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ], + "nosys": "nosys_2", + "yants": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "yants" + ] + }, + "locked": { + "lastModified": 1677437285, + "narHash": "sha256-YGfMothgUq1T9wMJYEhOSvdIiD/8gLXO1YcZA6hyIWU=", + "owner": "paisano-nix", + "repo": "core", + "rev": "5f2fc05e98e001cb1cf9535ded09e05d90cec131", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "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" + ] + }, + "locked": { + "lastModified": 1677533603, + "narHash": "sha256-Nq1dH/qn7Wg/Tj1+id+ZM3o0fzqonW73jAgY3mCp35M=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "802958d123b0a5437441be0cab1dee487b0ed3eb", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "paisano-nix", + "repo": "tui", "type": "github" } }, - "ops-lib_2": { - "flake": false, + "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": 1649848729, - "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "lastModified": 1681847764, + "narHash": "sha256-mdd7PJW1BZvxy0cIKsPfAO+ohVl/V7heE5ZTAHzTdv8=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "3096bad91cae73ab8ab3367d31f8a143d248a244", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "paisano-nix", + "ref": "0.1.1", + "repo": "tui", "type": "github" } }, - "ops-lib_3": { + "paisano-tui_3": { "flake": false, "locked": { - "lastModified": 1649848729, - "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "lastModified": 1708637035, + "narHash": "sha256-R19YURSK+MY/Rw6FZnojQS9zuDh+OoTAyngQAjjoubc=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "231761b260587a64817e4ffae3afc15defaa15db", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "paisano-nix", + "ref": "v0.5.0", + "repo": "tui", "type": "github" } }, - "ops-lib_4": { - "flake": false, + "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": 1649848729, - "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "lastModified": 1686862844, + "narHash": "sha256-m8l/HpRBJnZ3c0F1u0IyQ3nYGWE0R9V5kfORuqZPzgk=", + "owner": "paisano-nix", + "repo": "core", + "rev": "6674b3d3577212c1eeecd30d62d52edbd000e726", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "paisano-nix", + "ref": "0.1.1", + "repo": "core", "type": "github" } }, - "plutip": { + "paisano_3": { "inputs": { - "CHaP": "CHaP_4", - "cardano-node": [ - "cardano-node" - ], - "flake-compat": "flake-compat_14", - "hackage-nix": [ - "hackage-nix" - ], - "haskell-nix": [ - "haskell-nix" - ], - "iohk-nix": [ - "iohk-nix" - ], + "call-flake": "call-flake", "nixpkgs": [ + "cardano-node", + "std", "nixpkgs" + ], + "nosys": "nosys_4", + "yants": [ + "cardano-node", + "std", + "yants" ] }, "locked": { - "lastModified": 1695131439, - "narHash": "sha256-7ZhZUDhlFvV2us4G27iAk6lHezKS/4WA07NQn88VtQU=", - "owner": "mlabs-haskell", - "repo": "plutip", - "rev": "1bf0b547cd3689c727586abb8385c008fb2a3d1c", + "lastModified": 1708640854, + "narHash": "sha256-EpcAmvIS4ErqhXtVEfd2GPpU/E/s8CCRSfYzk6FZ/fY=", + "owner": "paisano-nix", + "repo": "core", + "rev": "adcf742bc9463c08764ca9e6955bd5e7dcf3a3fe", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "ref": "gergely/version-bump", - "repo": "plutip", + "owner": "paisano-nix", + "ref": "0.2.0", + "repo": "core", "type": "github" } }, "poetry2nix": { "inputs": { - "flake-utils": "flake-utils_17", + "flake-utils": "flake-utils_32", "nixpkgs": [ "db-sync", "cardano-world", @@ -8377,8 +13544,8 @@ }, "pre-commit-hooks": { "inputs": { - "flake-utils": "flake-utils_23", - "nixpkgs": "nixpkgs_55" + "flake-utils": "flake-utils_38", + "nixpkgs": "nixpkgs_84" }, "locked": { "lastModified": 1639823344, @@ -8394,12 +13561,40 @@ "type": "github" } }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": "flake-compat_13", + "flake-utils": "flake-utils_15", + "gitignore": "gitignore", + "nixpkgs": [ + "cardano-nix", + "nixpkgs" + ], + "nixpkgs-stable": [ + "cardano-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "ragenix": { "inputs": { "agenix": "agenix_3", - "flake-utils": "flake-utils_8", - "nixpkgs": "nixpkgs_21", - "rust-overlay": "rust-overlay" + "flake-utils": "flake-utils_23", + "nixpkgs": "nixpkgs_50", + "rust-overlay": "rust-overlay_2" }, "locked": { "lastModified": 1641119695, @@ -8418,9 +13613,9 @@ "ragenix_2": { "inputs": { "agenix": "agenix_4", - "flake-utils": "flake-utils_10", - "nixpkgs": "nixpkgs_24", - "rust-overlay": "rust-overlay_2" + "flake-utils": "flake-utils_25", + "nixpkgs": "nixpkgs_53", + "rust-overlay": "rust-overlay_3" }, "locked": { "lastModified": 1645147603, @@ -8439,9 +13634,9 @@ "ragenix_3": { "inputs": { "agenix": "agenix_5", - "flake-utils": "flake-utils_12", - "nixpkgs": "nixpkgs_33", - "rust-overlay": "rust-overlay_3" + "flake-utils": "flake-utils_27", + "nixpkgs": "nixpkgs_62", + "rust-overlay": "rust-overlay_4" }, "locked": { "lastModified": 1641119695, @@ -8460,9 +13655,9 @@ "ragenix_4": { "inputs": { "agenix": "agenix_7", - "flake-utils": "flake-utils_19", - "nixpkgs": "nixpkgs_50", - "rust-overlay": "rust-overlay_4" + "flake-utils": "flake-utils_34", + "nixpkgs": "nixpkgs_79", + "rust-overlay": "rust-overlay_5" }, "locked": { "lastModified": 1641119695, @@ -8481,9 +13676,9 @@ "ragenix_5": { "inputs": { "agenix": "agenix_8", - "flake-utils": "flake-utils_21", - "nixpkgs": "nixpkgs_53", - "rust-overlay": "rust-overlay_5" + "flake-utils": "flake-utils_36", + "nixpkgs": "nixpkgs_82", + "rust-overlay": "rust-overlay_6" }, "locked": { "lastModified": 1645147603, @@ -8504,26 +13699,58 @@ "CHaP": "CHaP", "blockfrost": "blockfrost", "cardano-configurations": "cardano-configurations", + "cardano-nix": "cardano-nix", "cardano-node": "cardano-node", "db-sync": "db-sync", "easy-purescript-nix": "easy-purescript-nix", - "flake-compat": "flake-compat_11", + "flake-compat": "flake-compat_24", "hackage-nix": "hackage-nix", - "haskell-nix": "haskell-nix_3", - "hercules-ci-effects": "hercules-ci-effects", - "iohk-nix": "iohk-nix_2", - "kupo": "kupo", - "kupo-nixos": "kupo-nixos", + "haskell-nix": "haskell-nix_4", + "hercules-ci-effects": "hercules-ci-effects_2", + "iohk-nix": "iohk-nix_3", "nixpkgs": [ "haskell-nix", "nixpkgs-unstable" ], - "ogmios": "ogmios_2", - "ogmios-nixos": "ogmios-nixos", - "plutip": "plutip" + "nixpkgs-arion": "nixpkgs-arion", + "ogmios": "ogmios_2" } }, "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, @@ -8540,7 +13767,7 @@ "type": "github" } }, - "rust-analyzer-src_2": { + "rust-analyzer-src_4": { "flake": false, "locked": { "lastModified": 1649178056, @@ -8557,7 +13784,7 @@ "type": "github" } }, - "rust-analyzer-src_3": { + "rust-analyzer-src_5": { "flake": false, "locked": { "lastModified": 1645024434, @@ -8574,7 +13801,7 @@ "type": "github" } }, - "rust-analyzer-src_4": { + "rust-analyzer-src_6": { "flake": false, "locked": { "lastModified": 1660579619, @@ -8591,7 +13818,7 @@ "type": "github" } }, - "rust-analyzer-src_5": { + "rust-analyzer-src_7": { "flake": false, "locked": { "lastModified": 1645024434, @@ -8608,7 +13835,7 @@ "type": "github" } }, - "rust-analyzer-src_6": { + "rust-analyzer-src_8": { "flake": false, "locked": { "lastModified": 1649178056, @@ -8626,6 +13853,39 @@ } }, "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", @@ -8660,7 +13920,7 @@ "type": "github" } }, - "rust-overlay_2": { + "rust-overlay_3": { "inputs": { "flake-utils": [ "db-sync", @@ -8693,7 +13953,7 @@ "type": "github" } }, - "rust-overlay_3": { + "rust-overlay_4": { "inputs": { "flake-utils": [ "db-sync", @@ -8724,7 +13984,7 @@ "type": "github" } }, - "rust-overlay_4": { + "rust-overlay_5": { "inputs": { "flake-utils": [ "db-sync", @@ -8757,7 +14017,7 @@ "type": "github" } }, - "rust-overlay_5": { + "rust-overlay_6": { "inputs": { "flake-utils": [ "db-sync", @@ -8775,20 +14035,105 @@ ] }, "locked": { - "lastModified": 1644633594, - "narHash": "sha256-Te6mBYYirUwsoqENvVx1K1EEoRq2CKrTnNkWF42jNgE=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "14c48021a9a5fe6ea8ae6b21c15caa106afa9d19", + "lastModified": 1644633594, + "narHash": "sha256-Te6mBYYirUwsoqENvVx1K1EEoRq2CKrTnNkWF42jNgE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "14c48021a9a5fe6ea8ae6b21c15caa106afa9d19", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "secp256k1": { + "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_2": { + "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_3": { + "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_4": { + "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_5": { + "flake": false, + "locked": { + "lastModified": 1683999695, + "narHash": "sha256-9nJJVENMXjXEJZzw8DHzin1DkFkF8h9m/c6PuM7Uk4s=", + "owner": "bitcoin-core", + "repo": "secp256k1", + "rev": "acf5c55ae6a94e5ca847e07def40427547876101", "type": "github" }, "original": { - "owner": "oxalica", - "repo": "rust-overlay", + "owner": "bitcoin-core", + "ref": "v0.3.2", + "repo": "secp256k1", "type": "github" } }, - "secp256k1": { + "secp256k1_6": { "flake": false, "locked": { "lastModified": 1683999695, @@ -8805,7 +14150,7 @@ "type": "github" } }, - "secp256k1_2": { + "secp256k1_7": { "flake": false, "locked": { "lastModified": 1683999695, @@ -8856,7 +14201,143 @@ "type": "github" } }, + "sodium_3": { + "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_4": { + "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_5": { + "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_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=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "cb49435b81adf0549589c51f39b5b38b4369f106", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_2": { "flake": false, "locked": { "lastModified": 1685491814, @@ -8872,7 +14353,39 @@ "type": "github" } }, - "stackage_2": { + "stackage_3": { + "flake": false, + "locked": { + "lastModified": 1700438989, + "narHash": "sha256-x+7Qtboko7ds8CU8pq2sIZiD45DauYoX9LxBfwQr/hs=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "9c2015334cc77837b8454b3b10ef4f711a256f6f", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "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, @@ -8888,7 +14401,7 @@ "type": "github" } }, - "stackage_3": { + "stackage_6": { "flake": false, "locked": { "lastModified": 1655255731, @@ -8904,107 +14417,314 @@ "type": "github" } }, - "stackage_4": { + "stackage_7": { + "flake": false, + "locked": { + "lastModified": 1659402917, + "narHash": "sha256-zRDOtN4A2KmfzmZiqqxOAIw1YVPhnoIaszKKd+qCEcQ=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "778df3c4b35eac853d57fac7bafc7c9f2dde917f", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_8": { "flake": false, "locked": { - "lastModified": 1659402917, - "narHash": "sha256-zRDOtN4A2KmfzmZiqqxOAIw1YVPhnoIaszKKd+qCEcQ=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "778df3c4b35eac853d57fac7bafc7c9f2dde917f", + "lastModified": 1650936094, + "narHash": "sha256-9ibS+iszPXe3HQd8rexVfrQeO4JkXSPokhbPiJ/Lags=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "85f94546f85fb9b92080f958bec655a364b2f0e5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_9": { + "flake": false, + "locked": { + "lastModified": 1721866306, + "narHash": "sha256-j5Z56zaK1GdnsJuFhuR6WnMw3tBZ0wM8+TdkP/DL6ps=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "90c884a7dfb82cee528bfc044733bba188dea43a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "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": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "stackage_5": { - "flake": false, + "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", + "makes": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "microvm": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "n2c": "n2c_2", + "nixago": "nixago_2", + "nixpkgs": "nixpkgs_24", + "paisano": "paisano", + "paisano-tui": "paisano-tui", + "yants": "yants_2" + }, "locked": { - "lastModified": 1650936094, - "narHash": "sha256-9ibS+iszPXe3HQd8rexVfrQeO4JkXSPokhbPiJ/Lags=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "85f94546f85fb9b92080f958bec655a364b2f0e5", + "lastModified": 1677533652, + "narHash": "sha256-H37dcuWAGZs6Yl9mewMNVcmSaUXR90/bABYFLT/nwhk=", + "owner": "divnix", + "repo": "std", + "rev": "490542f624412662e0411d8cb5a9af988ef56633", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "stackage_6": { - "flake": false, + "std_3": { + "inputs": { + "arion": [ + "cardano-nix", + "cardano-node-8.7.3", + "std", + "blank" + ], + "blank": "blank_3", + "devshell": "devshell_3", + "dmerge": "dmerge_3", + "flake-utils": "flake-utils_13", + "haumea": "haumea", + "incl": "incl_3", + "makes": [ + "cardano-nix", + "cardano-node-8.7.3", + "std", + "blank" + ], + "microvm": [ + "cardano-nix", + "cardano-node-8.7.3", + "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" + }, "locked": { - "lastModified": 1702771826, - "narHash": "sha256-4jFlIYY/hzkRrt4mXpUV81wC9ge4VpC5zcmQANl8GQg=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "4aab61a73de63a828ac33eb588e1e65411020a0c", + "lastModified": 1687300684, + "narHash": "sha256-oBqbss0j+B568GoO3nF2BCoPEgPxUjxfZQGynW6mhEk=", + "owner": "divnix", + "repo": "std", + "rev": "80e5792eae98353a97ab1e85f3fba2784e4a3690", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "stackage_7": { - "flake": false, + "std_4": { + "inputs": { + "blank": "blank_4", + "devshell": "devshell_5", + "dmerge": "dmerge_4", + "flake-utils": "flake-utils_18", + "makes": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", + "microvm": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "n2c": "n2c_4", + "nixago": "nixago_4", + "nixpkgs": "nixpkgs_33", + "yants": "yants_4" + }, "locked": { - "lastModified": 1654219171, - "narHash": "sha256-5kp4VTlum+AMmoIbhtrcVSEfYhR4oTKSrwe1iysD8uU=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "6d1fc076976ce6c45da5d077bf882487076efe5c", + "lastModified": 1665513321, + "narHash": "sha256-D6Pacw9yf/HMs84KYuCxHXnNDL7v43gtcka5URagFqE=", + "owner": "divnix", + "repo": "std", + "rev": "94a90eedb9cfc115b12ae8f6622d9904788559e4", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "std": { + "std_5": { "inputs": { "arion": [ "cardano-node", - "tullia", "std", "blank" ], - "blank": "blank", - "devshell": "devshell", - "dmerge": "dmerge", - "flake-utils": "flake-utils_5", - "incl": "incl", + "blank": "blank_5", + "devshell": [ + "cardano-node", + "std", + "blank" + ], + "dmerge": "dmerge_5", + "haumea": "haumea_2", + "incl": "incl_4", + "lib": "lib", "makes": [ "cardano-node", - "tullia", "std", "blank" ], "microvm": [ "cardano-node", - "tullia", "std", "blank" ], - "n2c": "n2c", - "nixago": "nixago", - "nixpkgs": "nixpkgs_8", - "nosys": "nosys", - "yants": "yants" + "n2c": [ + "cardano-node", + "std", + "blank" + ], + "nixago": [ + "cardano-node", + "std", + "blank" + ], + "nixpkgs": "nixpkgs_37", + "paisano": "paisano_3", + "paisano-tui": "paisano-tui_3", + "terranix": [ + "cardano-node", + "std", + "blank" + ], + "yants": "yants_5" }, "locked": { - "lastModified": 1674526466, - "narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=", + "lastModified": 1715201063, + "narHash": "sha256-LcLYV5CDhIiJs3MfxGZFKsXPR4PtfnY4toZ75GM+2Pw=", "owner": "divnix", "repo": "std", - "rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826", + "rev": "b6924a7d37a46fc1dda8efe405040e27ecf1bbd6", "type": "github" }, "original": { @@ -9013,15 +14733,15 @@ "type": "github" } }, - "std_2": { + "std_6": { "inputs": { - "devshell": "devshell_7", - "dmerge": "dmerge_2", - "flake-utils": "flake-utils_13", - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", - "nixago": "nixago_2", - "nixpkgs": "nixpkgs_34", - "yants": "yants_3" + "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" }, "locked": { "lastModified": 1661370377, @@ -9037,15 +14757,15 @@ "type": "github" } }, - "std_3": { + "std_7": { "inputs": { - "devshell": "devshell_15", - "dmerge": "dmerge_3", - "flake-utils": "flake-utils_29", - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_2", - "nixago": "nixago_3", - "nixpkgs": "nixpkgs_64", - "yants": "yants_5" + "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" }, "locked": { "lastModified": 1661367957, @@ -9061,11 +14781,11 @@ "type": "github" } }, - "std_4": { + "std_8": { "inputs": { - "devshell": "devshell_16", - "nixpkgs": "nixpkgs_67", - "yants": "yants_6" + "devshell": "devshell_20", + "nixpkgs": "nixpkgs_96", + "yants": "yants_10" }, "locked": { "lastModified": 1652784712, @@ -9141,6 +14861,21 @@ "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, @@ -9211,60 +14946,150 @@ "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "manveru", + "repo": "nix-lib", + "type": "github" + } + }, + "stdlib_7": { + "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_8": { + "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_9": { + "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" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", "type": "github" } }, - "stdlib_7": { + "systems_4": { "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, - "stdlib_8": { + "systems_5": { "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, - "stdlib_9": { + "systems_6": { "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, "tailwind-haskell": { "inputs": { - "flake-utils": "flake-utils_24", - "nixpkgs": "nixpkgs_58" + "flake-utils": "flake-utils_39", + "nixpkgs": "nixpkgs_87" }, "locked": { "lastModified": 1654211622, @@ -9281,27 +15106,38 @@ "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_9", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "blank" - ], + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_13", "terranix-examples": "terranix-examples" }, "locked": { - "lastModified": 1637158331, - "narHash": "sha256-x5LEKtSkVq+D3BXHDBOb2wdCLxAhVmXIWONRi9lxDPg=", + "lastModified": 1684906298, + "narHash": "sha256-pNuJxmVMGbBHw7pa+Bx0HY0orXIXoyyAXOKuQ1zpfus=", "owner": "terranix", "repo": "terranix", - "rev": "34198bb154af86d2a559446f10d7339e53126abe", + "rev": "c0dd15076856c6cb425795b8c7d5d37d3a1e922a", "type": "github" }, "original": { @@ -9355,15 +15191,32 @@ "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_14", + "flake-utils": "flake-utils_24", "nixpkgs": [ "db-sync", "cardano-world", "bitte", + "capsules", + "bitte", "blank" ], "terranix-examples": "terranix-examples_2" @@ -9386,11 +15239,10 @@ "inputs": { "bats-assert": "bats-assert_3", "bats-support": "bats-support_3", - "flake-utils": "flake-utils_20", + "flake-utils": "flake-utils_29", "nixpkgs": [ "db-sync", "cardano-world", - "capsules", "bitte", "blank" ], @@ -9405,59 +15257,278 @@ "type": "github" }, "original": { - "owner": "terranix", - "repo": "terranix", + "owner": "terranix", + "repo": "terranix", + "type": "github" + } + }, + "terranix_4": { + "inputs": { + "bats-assert": "bats-assert_4", + "bats-support": "bats-support_4", + "flake-utils": "flake-utils_35", + "nixpkgs": [ + "db-sync", + "cardano-world", + "capsules", + "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" + ] + }, + "locked": { + "lastModified": 1691440708, + "narHash": "sha256-c7Cc08vJ0IPFgIERpTdO2xvDHQNL7Uf5iXT0GlYO6vo=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "2a535809ac5c9a32288f4d3b938296e056d948cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_3": { + "inputs": { + "nixpkgs": [ + "cardano-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1697388351, + "narHash": "sha256-63N2eBpKaziIy4R44vjpUu8Nz5fCJY7okKrkixvDQmY=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "aae39f64f5ecbe89792d05eacea5cb241891292a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "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", + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "nixpkgs" + ], + "std": "std_2" + }, + "locked": { + "lastModified": 1684859161, + "narHash": "sha256-wOKutImA7CRL0rN+Ng80E72fD5FkVub7LLP2k9NICpg=", + "owner": "input-output-hk", + "repo": "tullia", + "rev": "2964cff1a16eefe301bdddb508c49d94d04603d6", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "tullia", + "type": "github" + } + }, + "tullia_3": { + "inputs": { + "nix-nomad": "nix-nomad_3", + "nix2container": "nix2container_5", + "nixpkgs": [ + "cardano-node", + "cardano-automation", + "nixpkgs" + ], + "std": "std_4" + }, + "locked": { + "lastModified": 1668711738, + "narHash": "sha256-CBjky16o9pqsGE1bWu6nRlRajgSXMEk+yaFQLibqXcE=", + "owner": "input-output-hk", + "repo": "tullia", + "rev": "ead1f515c251f0e060060ef0e2356a51d3dfe4b0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "tullia", + "type": "github" + } + }, + "tullia_4": { + "inputs": { + "nix2container": "nix2container_7", + "nixpkgs": "nixpkgs_95", + "std": "std_8" + }, + "locked": { + "lastModified": 1657811465, + "narHash": "sha256-KHNWwKuUIG08CUg/ol81zf26RRlnsQsyqMr63vXcCes=", + "owner": "input-output-hk", + "repo": "tullia", + "rev": "f025fcf3676d1d1281de184e89c5f7c8e7f74ebe", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "tullia", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_10": { + "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_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" } }, - "tullia": { - "inputs": { - "nix-nomad": "nix-nomad", - "nix2container": "nix2container_2", - "nixpkgs": "nixpkgs_7", - "std": "std" - }, + "utils_12": { "locked": { - "lastModified": 1675695930, - "narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "621365f2c725608f381b3ad5b57afef389fd4c31", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "tullia", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "tullia_2": { - "inputs": { - "nix2container": "nix2container_3", - "nixpkgs": "nixpkgs_66", - "std": "std_4" - }, + "utils_13": { "locked": { - "lastModified": 1657811465, - "narHash": "sha256-KHNWwKuUIG08CUg/ol81zf26RRlnsQsyqMr63vXcCes=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "f025fcf3676d1d1281de184e89c5f7c8e7f74ebe", + "lastModified": 1633020561, + "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", + "owner": "kreisys", + "repo": "flake-utils", + "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "tullia", + "owner": "kreisys", + "repo": "flake-utils", "type": "github" } }, - "utils": { + "utils_14": { "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": { @@ -9466,7 +15537,7 @@ "type": "github" } }, - "utils_10": { + "utils_15": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9481,7 +15552,7 @@ "type": "github" } }, - "utils_11": { + "utils_16": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9496,7 +15567,7 @@ "type": "github" } }, - "utils_12": { + "utils_17": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -9511,7 +15582,7 @@ "type": "github" } }, - "utils_13": { + "utils_18": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9526,7 +15597,7 @@ "type": "github" } }, - "utils_14": { + "utils_19": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9541,7 +15612,22 @@ "type": "github" } }, - "utils_15": { + "utils_2": { + "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" + } + }, + "utils_20": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9556,7 +15642,7 @@ "type": "github" } }, - "utils_16": { + "utils_21": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -9571,7 +15657,7 @@ "type": "github" } }, - "utils_17": { + "utils_22": { "locked": { "lastModified": 1637014545, "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", @@ -9586,7 +15672,7 @@ "type": "github" } }, - "utils_18": { + "utils_23": { "locked": { "lastModified": 1601282935, "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", @@ -9601,7 +15687,7 @@ "type": "github" } }, - "utils_19": { + "utils_24": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9616,22 +15702,7 @@ "type": "github" } }, - "utils_2": { - "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" - } - }, - "utils_20": { + "utils_25": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9646,7 +15717,7 @@ "type": "github" } }, - "utils_21": { + "utils_26": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -9661,7 +15732,7 @@ "type": "github" } }, - "utils_22": { + "utils_27": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9676,7 +15747,7 @@ "type": "github" } }, - "utils_23": { + "utils_28": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -9693,11 +15764,11 @@ }, "utils_3": { "locked": { - "lastModified": 1637014545, - "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "owner": "numtide", "repo": "flake-utils", - "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { @@ -9708,11 +15779,11 @@ }, "utils_4": { "locked": { - "lastModified": 1601282935, - "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "588973065fce51f4763287f0fda87a174d78bf48", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -9723,41 +15794,44 @@ }, "utils_5": { "locked": { - "lastModified": 1633020561, - "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", - "owner": "kreisys", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", "repo": "flake-utils", - "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "kreisys", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "utils_6": { "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_7": { + "inputs": { + "systems": "systems_6" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -9768,26 +15842,26 @@ }, "utils_8": { "locked": { - "lastModified": 1633020561, - "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", - "owner": "kreisys", + "lastModified": 1637014545, + "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "owner": "numtide", "repo": "flake-utils", - "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", + "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", "type": "github" }, "original": { - "owner": "kreisys", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "utils_9": { "locked": { - "lastModified": 1637014545, - "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "lastModified": 1601282935, + "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", "owner": "numtide", "repo": "flake-utils", - "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "rev": "588973065fce51f4763287f0fda87a174d78bf48", "type": "github" }, "original": { @@ -9833,7 +15907,8 @@ "yants": { "inputs": { "nixpkgs": [ - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "tullia", "std", "nixpkgs" @@ -9853,9 +15928,15 @@ "type": "github" } }, - "yants_2": { + "yants_10": { "inputs": { - "nixpkgs": "nixpkgs_25" + "nixpkgs": [ + "db-sync", + "cardano-world", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { "lastModified": 1645126146, @@ -9871,22 +15952,47 @@ "type": "github" } }, + "yants_2": { + "inputs": { + "nixpkgs": [ + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "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_3": { "inputs": { "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", + "cardano-nix", + "cardano-node-8.7.3", "std", + "haumea", "nixpkgs" ] }, "locked": { - "lastModified": 1645126146, - "narHash": "sha256-XQ1eg4gzXoc7Tl8iXak1uCt3KnsTyxqPtLE+vOoDnrQ=", + "lastModified": 1686863218, + "narHash": "sha256-kooxYm3/3ornWtVBNHM3Zh020gACUyFX2G0VQXnB+mk=", "owner": "divnix", "repo": "yants", - "rev": "77df2be1b3cce9f571c6cf451f786b266a6869cc", + "rev": "8f0da0dba57149676aa4817ec0c880fbde7a648d", "type": "github" }, "original": { @@ -9897,7 +16003,53 @@ }, "yants_4": { "inputs": { - "nixpkgs": "nixpkgs_60" + "nixpkgs": [ + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660507851, + "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", + "owner": "divnix", + "repo": "yants", + "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, + "yants_5": { + "inputs": { + "nixpkgs": [ + "cardano-node", + "std", + "lib" + ] + }, + "locked": { + "lastModified": 1686863218, + "narHash": "sha256-kooxYm3/3ornWtVBNHM3Zh020gACUyFX2G0VQXnB+mk=", + "owner": "divnix", + "repo": "yants", + "rev": "8f0da0dba57149676aa4817ec0c880fbde7a648d", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, + "yants_6": { + "inputs": { + "nixpkgs": "nixpkgs_54" }, "locked": { "lastModified": 1645126146, @@ -9913,11 +16065,12 @@ "type": "github" } }, - "yants_5": { + "yants_7": { "inputs": { "nixpkgs": [ "db-sync", "cardano-world", + "bitte", "std", "nixpkgs" ] @@ -9936,12 +16089,29 @@ "type": "github" } }, - "yants_6": { + "yants_8": { + "inputs": { + "nixpkgs": "nixpkgs_89" + }, + "locked": { + "lastModified": 1645126146, + "narHash": "sha256-XQ1eg4gzXoc7Tl8iXak1uCt3KnsTyxqPtLE+vOoDnrQ=", + "owner": "divnix", + "repo": "yants", + "rev": "77df2be1b3cce9f571c6cf451f786b266a6869cc", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, + "yants_9": { "inputs": { "nixpkgs": [ "db-sync", "cardano-world", - "tullia", "std", "nixpkgs" ] diff --git a/flake.nix b/flake.nix index 1db377fd0..fc2544001 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,7 @@ inputs = { nixpkgs.follows = "haskell-nix/nixpkgs-unstable"; + nixpkgs-arion.url = "github:NixOS/nixpkgs"; hackage-nix = { url = "github:input-output-hk/hackage.nix"; flake = false; @@ -32,41 +33,28 @@ flake = false; }; - cardano-node.url = "github:input-output-hk/cardano-node/8.1.1"; + cardano-node.url = "github:input-output-hk/cardano-node/9.1.0"; - ogmios-nixos = { - url = "github:mlabs-haskell/ogmios-nixos/78e829e9ebd50c5891024dcd1004c2ac51facd80"; - inputs = { - nixpkgs.follows = "nixpkgs"; - iohk-nix.follows = "iohk-nix"; - haskell-nix.follows = "haskell-nix"; - cardano-node.follows = "cardano-node"; - ogmios-src.follows = "ogmios"; - }; - }; - - ogmios = { - url = "github:CardanoSolutions/ogmios/v6.0.0"; + # 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 = { + # Override with "path:/path/to/cardano-configurations"; + url = "github:input-output-hk/cardano-configurations?rev=7969a73e5c7ee1f3b2a40274b34191fdd8de170b"; flake = false; }; - kupo-nixos = { - url = "github:mlabs-haskell/kupo-nixos/6f89cbcc359893a2aea14dd380f9a45e04c6aa67"; - inputs.kupo.follows = "kupo"; + # Get Ogmios from cardano-nix + cardano-nix = { + url = "github:mlabs-haskell/cardano.nix/dshuiski/ogmios-v6.5.0"; + inputs.nixpkgs.follows = "nixpkgs"; }; - kupo = { - url = "github:CardanoSolutions/kupo/v2.2.0"; + # Get Ogmios test fixtures + ogmios = { + url = "github:CardanoSolutions/ogmios/v6.5.0"; flake = false; }; - # 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 = { - # Override with "path:/path/to/cardano-configurations"; - url = "github:input-output-hk/cardano-configurations?rev=d952529afdfdf6d53ce190b1bf8af990a7ae9590"; - flake = false; - }; easy-purescript-nix = { url = "github:justinwoo/easy-purescript-nix"; flake = false; @@ -75,26 +63,15 @@ blockfrost.url = "github:blockfrost/blockfrost-backend-ryo/v1.7.0"; db-sync.url = "github:input-output-hk/cardano-db-sync/13.1.0.0"; - # Plutip server related inputs - plutip = { - url = "github:mlabs-haskell/plutip?ref=gergely/version-bump"; - # TODO(bladyjoker): Why are we overriding inputs here? - inputs = { - nixpkgs.follows = "nixpkgs"; - iohk-nix.follows = "iohk-nix"; - haskell-nix.follows = "haskell-nix"; - hackage-nix.follows = "hackage-nix"; - cardano-node.follows = "cardano-node"; - }; - }; - hercules-ci-effects.url = "github:hercules-ci/hercules-ci-effects"; }; outputs = { self , nixpkgs + , nixpkgs-arion , cardano-configurations + , cardano-node , ... }@inputs: let @@ -105,12 +82,16 @@ "aarch64-darwin" ]; + ogmiosVersion = "6.5.0"; + kupoVersion = "2.9.0"; + perSystem = nixpkgs.lib.genAttrs supportedSystems; mkNixpkgsFor = system: import nixpkgs { overlays = nixpkgs.lib.attrValues self.overlays ++ [ (_: _: { ogmios-fixtures = inputs.ogmios; + arion = (import nixpkgs-arion { inherit system; }).arion; }) ]; inherit system; @@ -186,10 +167,14 @@ packages = with pkgs; [ arion fd + psmisc nixpkgs-fmt nodePackages.eslint nodePackages.prettier blockfrost-backend-ryo + cardano-node.packages.${system}.cardano-testnet + cardano-node.packages.${system}.cardano-cli + cardano-node.packages.${system}.cardano-node ]; }; }; @@ -225,15 +210,15 @@ name = "ctl-e2e-test"; runnerMain = "Test.Ctl.E2E"; testMain = "Ctl.Examples.ByUrl"; - buildInputs = [ inputs.kupo-nixos.packages.${pkgs.system}.kupo ]; + buildInputs = [ inputs.cardano-nix.packages.${pkgs.system}."kupo-${kupoVersion}" ]; }; - ctl-plutip-test = project.runPlutipTest { - name = "ctl-plutip-test"; - testMain = "Test.Ctl.Plutip"; + ctl-local-testnet-test = project.runLocalTestnetTest { + name = "ctl-local-testnet-test"; + testMain = "Test.Ctl.Testnet"; }; - ctl-staking-test = project.runPlutipTest { + ctl-staking-test = project.runLocalTestnetTest { name = "ctl-staking-test"; - testMain = "Test.Ctl.Plutip.Staking"; + testMain = "Test.Ctl.Testnet.Staking"; }; ctl-unit-test = project.runPursTest { name = "ctl-unit-test"; @@ -244,6 +229,8 @@ devShell = project.devShell; + nodeModules = project.nodeModules; + apps = { # TODO: restore this # https://github.com/Plutonomicon/cardano-transaction-lib/issues/1578 @@ -252,23 +239,6 @@ # }; }; }; - - plutipServerFor = system: - let - pkgs = import inputs.nixpkgs { - inherit system; - overlays = [ - inputs.haskell-nix.overlay - inputs.iohk-nix.overlays.crypto - ]; - }; - in - import ./plutip-server { - inherit pkgs; - inherit (inputs) plutip CHaP cardano-node; - inherit (pkgs) system; - src = ./plutip-server; - }; in { overlay = builtins.trace @@ -313,10 +283,11 @@ inherit (prev) system; in { - plutip-server = - (plutipServerFor system).hsPkgs.plutip-server.components.exes.plutip-server; - ogmios = ogmios-nixos.packages.${system}."ogmios:exe:ogmios"; - kupo = inputs.kupo-nixos.packages.${system}.kupo; + ogmios = cardano-nix.packages.${system}."ogmios-${ogmiosVersion}"; + cardano-testnet = cardano-node.packages.${system}.cardano-testnet; + cardano-node = cardano-node.packages.${system}.cardano-node; + cardano-cli = cardano-node.packages.${system}.cardano-cli; + 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; buildCtlRuntime = buildCtlRuntime final; @@ -326,21 +297,14 @@ ); }; - # flake from haskell.nix project - hsFlake = perSystem (system: (plutipServerFor system).flake { }); - devShells = perSystem (system: { # This is the default `devShell` and can be run without specifying # it (i.e. `nix develop`) default = (psProjectFor (nixpkgsFor system)).devShell; - - # This can be used with `nix develop .#devPlutipServer` to work with `./plutip-server` - devPlutipServer = ((plutipServerFor system).flake { }).devShell; }); packages = perSystem (system: (psProjectFor (nixpkgsFor system)).packages - // ((plutipServerFor system).flake { }).packages ); apps = perSystem (system: @@ -365,9 +329,9 @@ checks = perSystem (system: let pkgs = nixpkgsFor system; - + psProject = psProjectFor pkgs; in - (psProjectFor pkgs).checks + psProject.checks // { formatting-check = pkgs.runCommand "formatting-check" { @@ -380,7 +344,10 @@ ]; } '' - cd ${self} + cd $TMPDIR + ln -sfn ${psProject.nodeModules}/lib/node_modules node_modules + cp -r ${self}/* . + make check-format touch $out ''; @@ -394,9 +361,9 @@ diff \ <(jq -S .dependencies <<< $ctlPackageJson) \ <(jq -S .dependencies <<< $ctlScaffoldPackageJson) - # We don't want to include `doctoc` in the template dev dependencies. + # We don't want to include some dev dependencies. diff \ - <(jq -S '.devDependencies | del(.jssha) | del(.blakejs) | del(.doctoc)' <<< $ctlPackageJson) \ + <(jq -S '.devDependencies | del(.jssha) | del(.blakejs) | del(.doctoc) | del(.globals) | del(.["@eslint/js"])' <<< $ctlPackageJson) \ <(jq -S .devDependencies <<< $ctlScaffoldPackageJson) touch $out ''; @@ -510,16 +477,18 @@ }; }; - nixosConfigurations.test = nixpkgs.lib.nixosSystem { + nixosConfigurations.test = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ inputs.cardano-node.nixosModules.cardano-node - inputs.ogmios-nixos.nixosModules.ogmios - inputs.kupo-nixos.nixosModules.kupo + inputs.cardano-nix.nixosModules.ogmios + inputs.cardano-nix.nixosModules.kupo ./nix/test-nixos-configuration.nix ]; specialArgs = { inherit (inputs) cardano-configurations; + ogmios = inputs.cardano-nix.packages.${system}."ogmios-${ogmiosVersion}"; + kupo = inputs.cardano-nix.packages.${system}."kupo-${kupoVersion}"; }; }; diff --git a/nix/default.nix b/nix/default.nix index 9821b1e6b..e083104af 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -89,10 +89,10 @@ let , packageLockOnly ? false # If `true`, all of CTL's runtime dependencies will be added to the # shell's `packages`. These packages are *required* if you plan on running - # Plutip tests in your local shell environment (that is, not using Nix - # directly as with `runPlutipTest`). Make sure you have applied - # `overlays.runtime` or otherwise added the runtime packages to your - # package set if you select this option! + # cardano-testnet tests in your local shell environment (that is, not + # using Nix directly as with `runLocalTestnetTest`). Make sure you have + # applied `overlays.runtime` or otherwise added the runtime packages to + # your package set if you select this option! , withRuntime ? true # If `true`, the `chromium` package from your package set will be made # available in the shell environment. This can help with ensuring that @@ -132,7 +132,6 @@ let lists.optional withRuntime ( [ pkgs.ogmios - pkgs.plutip-server pkgs.kupo ] ) @@ -319,6 +318,12 @@ let # Provide NPM dependencies to the test suite scripts ln -sfn ${nodeModules}/lib/node_modules node_modules + # This line fixes an issue where the hedgehog output generated by cardano-testnet + # was not being handled, making it impossible to extract cardano-testnet + # workspace information and thus causing cluster initialization to fail. + # see https://github.com/hedgehogqa/haskell-hedgehog/issues/110 + export LC_ALL=C.UTF-8 + # Call the main module and execute the entry point function ${nodejs}/bin/node --enable-source-maps -e 'import("./output/${testMain}/index.js").then(m => m.${psEntryPoint}())' @@ -326,23 +331,28 @@ let touch $out ''; - # Runs a test using Plutip. Takes the same arguments as `runPursTest` + # Runs a test using cardano-testnet. Takes the same arguments as `runPursTest` # # NOTE: You *must* either use CTL's `overlays.runtime` or otherwise make the # the following required `buildInputs` available in your own package set: # # - `ogmios` # - `kupo` - # - `plutip-server` + # - `cardano-testnet` + # - `cardano-node` + # - `cardano-cli` # - runPlutipTest = + runLocalTestnetTest = args: runPursTest ( args // { buildInputs = with pkgs; [ ogmios - plutip-server kupo + cardano-testnet + cardano-node + cardano-cli + psmisc ] ++ (args.buildInputs or [ ]); } @@ -435,9 +445,11 @@ let nodeModules ogmios kupo - plutip-server + cardano-testnet + cardano-node + cardano-cli chromium - python38 # To serve bundled CTL + python39 # To serve bundled CTL # Utils needed by E2E test code which # used to check for browser availability gnutar # used unpack settings archive within E2E test code @@ -485,6 +497,8 @@ let cp -r $src/* . chmod -R +rw . + export LC_ALL=C.UTF-8 + ${nodejs}/bin/node \ --enable-source-maps \ -e 'import("./output/${runnerMain}/index.js").then(m => m.${runnerPsEntryPoint}())' \ @@ -612,7 +626,7 @@ let in { inherit - buildPursProject buildPursDependencies runPursTest runPlutipTest runE2ETest + buildPursProject buildPursDependencies runPursTest runLocalTestnetTest runE2ETest bundlePursProjectEsbuild bundlePursProjectWebpack buildPursDocs # TODO: restore buildSearchablePursDocs and launchSearchablePursDocs diff --git a/nix/runtime.nix b/nix/runtime.nix index c03e5bc57..45dd521ef 100644 --- a/nix/runtime.nix +++ b/nix/runtime.nix @@ -3,6 +3,8 @@ rec { defaultConfig = final: with final; { inherit (inputs) cardano-configurations; # { name = "preprod"; magic = 1; } + # { name = "preview"; magic = 2; } + # { name = "sanchonet"; magic = 4; } # { name = "mainnet"; magic = null; } # See `doc/development.md` and `doc/runtime.md#changing-network-configurations` # for info on how to switch networks. @@ -27,7 +29,6 @@ rec { port = 1442; since = "origin"; match = "*/*"; # matches Shelley addresses only - tag = "v2.2.0"; deferDbIndexes = true; # whether to pass --defer-db-indexes pruneUtxo = true; # whether to pass --prune-utxo # TODO: Do we want to support connection through ogmios? @@ -137,7 +138,7 @@ rec { "${pkgs.bash}/bin/sh" "-c" '' - ${inputs.kupo-nixos.packages.${pkgs.system}.kupo}/bin/kupo \ + ${pkgs.kupo}/bin/kupo \ --node-config /config/cardano-node/config.json \ --node-socket "${nodeSocketPath}" \ --since "${kupo.since}" \ diff --git a/nix/test-nixos-configuration.nix b/nix/test-nixos-configuration.nix index bbfe022e9..df7781e2f 100644 --- a/nix/test-nixos-configuration.nix +++ b/nix/test-nixos-configuration.nix @@ -1,10 +1,11 @@ -{ config, modulesPath, pkgs, cardano-configurations, ... }: +{ config, modulesPath, pkgs, cardano-configurations, ogmios, kupo, ... }: { imports = [ "${modulesPath}/virtualisation/qemu-vm.nix" ]; virtualisation = { memorySize = 8192; diskSize = 100000; + restrictNetwork = false; forwardPorts = [ # SSH { from = "host"; host.port = 2222; guest.port = 22; } @@ -23,27 +24,38 @@ users.extraUsers.root.password = ""; users.mutableUsers = false; + environment.systemPackages = with pkgs; [ + lsof + ]; + # services services.cardano-node = { enable = true; - systemdSocketActivation = true; - nodeConfigFile = "${cardano-configurations}/network/mainnet/cardano-node/config.json"; - topology = "${cardano-configurations}/network/mainnet/cardano-node/topology.json"; + hostAddr = "0.0.0.0"; + socketPath = "/var/run/cardano-node/node.socket"; + systemdSocketActivation = false; + nodeConfigFile = "${cardano-configurations}/network/preview/cardano-node/config.json"; + topology = "${cardano-configurations}/network/preview/cardano-node/topology.json"; }; services.ogmios = { enable = true; + package = ogmios; host = "0.0.0.0"; - nodeSocket = "/var/run/cardano-node/node.socket"; + user = "cardano-node"; + group = "cardano-node"; + nodeSocketPath = "/var/run/cardano-node/node.socket"; + nodeConfigPath = "${cardano-configurations}/network/preview/cardano-node/config.json"; }; services.kupo = { enable = true; + package = kupo; + user = "cardano-node"; + group = "cardano-node"; host = "0.0.0.0"; - user = "kupo"; - group = "kupo"; - nodeConfig = "${cardano-configurations}/network/mainnet/cardano-node/config.json"; - nodeSocket = "/var/run/cardano-node/node.socket"; + nodeSocketPath = "/var/run/cardano-node/node.socket"; + nodeConfigPath = "${cardano-configurations}/network/preview/cardano-node/config.json"; }; } diff --git a/package-lock.json b/package-lock.json index a9845f2b0..d3ebd7d73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,9 @@ "license": "MIT", "dependencies": { "@mlabs-haskell/cardano-message-signing": "^1.0.1", - "@mlabs-haskell/cardano-serialization-lib-gc": "^1.0.10", + "@mlabs-haskell/cardano-serialization-lib-gc": "12.0.0-alpha.31", "@mlabs-haskell/json-bigint": "2.0.0", - "@mlabs-haskell/uplc-apply-args": "2.0.1", + "@mlabs-haskell/uplc-apply-args": "1.0.29-alpha", "@noble/secp256k1": "^1.7.0", "base64-js": "^1.5.1", "bignumber.js": "^9.1.1", @@ -27,12 +27,14 @@ "xhr2": "0.2.1" }, "devDependencies": { + "@eslint/js": "^9.7.0", "blakejs": "1.2.1", "buffer": "6.0.3", "doctoc": "^2.2.1", "esbuild": "0.18.11", "esbuild-plugin-polyfill-node": "^0.3.0", "esbuild-plugin-wasm": "^1.1.0", + "globals": "^15.8.0", "jssha": "3.2.0", "node-polyfill-webpack-plugin": "2.0.1", "webpack": "5.88.1", @@ -60,14 +62,14 @@ "integrity": "sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==" }, "node_modules/@emurgo/cardano-serialization-lib-browser": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-11.5.0.tgz", - "integrity": "sha512-qchOJ9NYDUz10tzs5r5QhP9hK0p+ZOlRiBwPdTAxqAYLw/8emYBkQQLaS8T1DF6EkeudyrgS00ym5Trw1fo4iA==" + "version": "12.0.0-alpha.32", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-12.0.0-alpha.32.tgz", + "integrity": "sha512-Pe2cUB69zLRKLsk0orj2C6drntJXK3P9l9rBmK3tzJTlUUuYWECPY8IhnLNmax3YborYOxY3bJBucTf/zqBHeA==" }, "node_modules/@emurgo/cardano-serialization-lib-nodejs": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-11.5.0.tgz", - "integrity": "sha512-IlVABlRgo9XaTR1NunwZpWcxnfEv04ba2l1vkUz4S1W7Jt36F4CtffP+jPeqBZGnAe+fnUwo0XjIJC3ZTNToNQ==" + "version": "12.0.0-alpha.32", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-12.0.0-alpha.32.tgz", + "integrity": "sha512-HykivQs8K4f2KNRcXFw+D91llAxZhu1neKPVYwyWe6nYZPW/9Tn1A9p602ceGmF0LxIeiJBg0GYOufAA5yVsUQ==" }, "node_modules/@esbuild/android-arm": { "version": "0.18.11", @@ -421,6 +423,15 @@ "node": ">=12" } }, + "node_modules/@eslint/js": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -501,12 +512,12 @@ } }, "node_modules/@mlabs-haskell/cardano-serialization-lib-gc": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-1.0.10.tgz", - "integrity": "sha512-7XFxxMvZH6oogWVP/teveVRUTRboWfY5fT0bkRDu68u9yb2HBjoMxkCkmF7MvJBVs2i0unt4UnzcrNm0dmHriQ==", + "version": "12.0.0-alpha.31", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-12.0.0-alpha.31.tgz", + "integrity": "sha512-QQBzl7rNRy7wk37uxzWJXCZfZRt3aTlfQb3kmb10ulY/janlUNETmS09OtiJbK/BdV5Fu7Gv+Mdda3ggMIL/bg==", "dependencies": { - "@emurgo/cardano-serialization-lib-browser": "^11.2.1", - "@emurgo/cardano-serialization-lib-nodejs": "^11.2.1", + "@emurgo/cardano-serialization-lib-browser": "^12.0.0-alpha.31", + "@emurgo/cardano-serialization-lib-nodejs": "^12.0.0-alpha.31", "@mlabs-haskell/csl-gc-wrapper": "^1.0.2" } }, @@ -521,23 +532,23 @@ "integrity": "sha512-JX9TON+nZbt+1TJ5MNV1Gcpxp3/m56x1/glDwzGtydrzQzyZbKg4XFw9Frib6fh89YVqjSFJ9xmVeIyDJ5DxTQ==" }, "node_modules/@mlabs-haskell/uplc-apply-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-2.0.1.tgz", - "integrity": "sha512-of0zlgBEk9vpTBFISDHADoYRzfbw84MQBMnGCXFhdSvdOIWsoGV4kvQJBdufYYh8BJNSyy0MLJ9uX7ARr7reig==", + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-1.0.29-alpha.tgz", + "integrity": "sha512-eTazItNZlOvuK/ZNHBKUOM3fL1mhRaY0GFYPtalo6PrkGcwZeSzlD6+B8Mbgmb18HusDZPSRi3zhp/urxOygFA==", "dependencies": { - "@mlabs-haskell/uplc-apply-args-browser": "^0.0.3", - "@mlabs-haskell/uplc-apply-args-nodejs": "^0.0.3" + "@mlabs-haskell/uplc-apply-args-browser": "^1.0.29-alpha", + "@mlabs-haskell/uplc-apply-args-nodejs": "^1.0.29-alpha2" } }, "node_modules/@mlabs-haskell/uplc-apply-args-browser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-0.0.3.tgz", - "integrity": "sha512-U2GFMN2Q2KLwTKjrwDXcOBznIvib3Jvdg79xmXDx3/L94PGoBfLN9bBByfVTwKP+ETRfJgRXwi5xxctwKXvT+g==" + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-1.0.29-alpha.tgz", + "integrity": "sha512-U/FEEI1UbHGRLblNHX4WxF5KpPR3S/C1rgXvN8X6gL2CDc4iAqvbP88d5vqwLL+seG2aO4pqqJXQnnKtlLHk7A==" }, "node_modules/@mlabs-haskell/uplc-apply-args-nodejs": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-0.0.3.tgz", - "integrity": "sha512-0uLz+67U1yiXvt3qu/7NBd0WK6LWXf9XteaInQk56RqRbxi4WKA/1Rm73VuciZzLWohXMDNbVNCiirmXi6k+9A==" + "version": "1.0.29-alpha2", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-1.0.29-alpha2.tgz", + "integrity": "sha512-91Lfk0SGH3cEHGE/F/If9lot42OJ6+bpM4HsHZr5PDvHFNOICFdTwLq/6BFmIClCkdZZNuDZIc1EpRCBgtdROw==" }, "node_modules/@noble/hashes": { "version": "1.3.1", @@ -2884,6 +2895,18 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "node_modules/globals": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.8.0.tgz", + "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -6391,14 +6414,14 @@ "integrity": "sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==" }, "@emurgo/cardano-serialization-lib-browser": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-11.5.0.tgz", - "integrity": "sha512-qchOJ9NYDUz10tzs5r5QhP9hK0p+ZOlRiBwPdTAxqAYLw/8emYBkQQLaS8T1DF6EkeudyrgS00ym5Trw1fo4iA==" + "version": "12.0.0-alpha.32", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-12.0.0-alpha.32.tgz", + "integrity": "sha512-Pe2cUB69zLRKLsk0orj2C6drntJXK3P9l9rBmK3tzJTlUUuYWECPY8IhnLNmax3YborYOxY3bJBucTf/zqBHeA==" }, "@emurgo/cardano-serialization-lib-nodejs": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-11.5.0.tgz", - "integrity": "sha512-IlVABlRgo9XaTR1NunwZpWcxnfEv04ba2l1vkUz4S1W7Jt36F4CtffP+jPeqBZGnAe+fnUwo0XjIJC3ZTNToNQ==" + "version": "12.0.0-alpha.32", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-12.0.0-alpha.32.tgz", + "integrity": "sha512-HykivQs8K4f2KNRcXFw+D91llAxZhu1neKPVYwyWe6nYZPW/9Tn1A9p602ceGmF0LxIeiJBg0GYOufAA5yVsUQ==" }, "@esbuild/android-arm": { "version": "0.18.11", @@ -6554,6 +6577,12 @@ "dev": true, "optional": true }, + "@eslint/js": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", + "dev": true + }, "@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -6625,12 +6654,12 @@ } }, "@mlabs-haskell/cardano-serialization-lib-gc": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-1.0.10.tgz", - "integrity": "sha512-7XFxxMvZH6oogWVP/teveVRUTRboWfY5fT0bkRDu68u9yb2HBjoMxkCkmF7MvJBVs2i0unt4UnzcrNm0dmHriQ==", + "version": "12.0.0-alpha.31", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-12.0.0-alpha.31.tgz", + "integrity": "sha512-QQBzl7rNRy7wk37uxzWJXCZfZRt3aTlfQb3kmb10ulY/janlUNETmS09OtiJbK/BdV5Fu7Gv+Mdda3ggMIL/bg==", "requires": { - "@emurgo/cardano-serialization-lib-browser": "^11.2.1", - "@emurgo/cardano-serialization-lib-nodejs": "^11.2.1", + "@emurgo/cardano-serialization-lib-browser": "^12.0.0-alpha.31", + "@emurgo/cardano-serialization-lib-nodejs": "^12.0.0-alpha.31", "@mlabs-haskell/csl-gc-wrapper": "^1.0.2" } }, @@ -6645,23 +6674,23 @@ "integrity": "sha512-JX9TON+nZbt+1TJ5MNV1Gcpxp3/m56x1/glDwzGtydrzQzyZbKg4XFw9Frib6fh89YVqjSFJ9xmVeIyDJ5DxTQ==" }, "@mlabs-haskell/uplc-apply-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-2.0.1.tgz", - "integrity": "sha512-of0zlgBEk9vpTBFISDHADoYRzfbw84MQBMnGCXFhdSvdOIWsoGV4kvQJBdufYYh8BJNSyy0MLJ9uX7ARr7reig==", + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-1.0.29-alpha.tgz", + "integrity": "sha512-eTazItNZlOvuK/ZNHBKUOM3fL1mhRaY0GFYPtalo6PrkGcwZeSzlD6+B8Mbgmb18HusDZPSRi3zhp/urxOygFA==", "requires": { - "@mlabs-haskell/uplc-apply-args-browser": "^0.0.3", - "@mlabs-haskell/uplc-apply-args-nodejs": "^0.0.3" + "@mlabs-haskell/uplc-apply-args-browser": "^1.0.29-alpha", + "@mlabs-haskell/uplc-apply-args-nodejs": "^1.0.29-alpha2" } }, "@mlabs-haskell/uplc-apply-args-browser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-0.0.3.tgz", - "integrity": "sha512-U2GFMN2Q2KLwTKjrwDXcOBznIvib3Jvdg79xmXDx3/L94PGoBfLN9bBByfVTwKP+ETRfJgRXwi5xxctwKXvT+g==" + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-1.0.29-alpha.tgz", + "integrity": "sha512-U/FEEI1UbHGRLblNHX4WxF5KpPR3S/C1rgXvN8X6gL2CDc4iAqvbP88d5vqwLL+seG2aO4pqqJXQnnKtlLHk7A==" }, "@mlabs-haskell/uplc-apply-args-nodejs": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-0.0.3.tgz", - "integrity": "sha512-0uLz+67U1yiXvt3qu/7NBd0WK6LWXf9XteaInQk56RqRbxi4WKA/1Rm73VuciZzLWohXMDNbVNCiirmXi6k+9A==" + "version": "1.0.29-alpha2", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-1.0.29-alpha2.tgz", + "integrity": "sha512-91Lfk0SGH3cEHGE/F/If9lot42OJ6+bpM4HsHZr5PDvHFNOICFdTwLq/6BFmIClCkdZZNuDZIc1EpRCBgtdROw==" }, "@noble/hashes": { "version": "1.3.1", @@ -8549,6 +8578,12 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "globals": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.8.0.tgz", + "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", + "dev": true + }, "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", diff --git a/package.json b/package.json index 4cb9d9892..cc09665ec 100755 --- a/package.json +++ b/package.json @@ -9,15 +9,15 @@ "test": "test" }, "scripts": { - "test": "npm run unit-test && npm run integration-test && npm run plutip-test && npm run staking-test", + "test": "npm run unit-test && npm run integration-test && npm run testnet-test && npm run staking-test", "start-runtime": "nix run -L .#ctl-runtime", "start-blockfrost-runtime": "nix run -L .#ctl-runtime-blockfrost", "integration-test": "spago run --main Test.Ctl.Integration", "blockfrost-test": "source ./test/blockfrost.env && spago run --main Test.Ctl.Blockfrost.Contract", "blockfrost-local-test": "source ./test/blockfrost-local.env && spago run --main Test.Ctl.Blockfrost.Contract", "unit-test": "spago run --main Test.Ctl.Unit", - "plutip-test": "spago run --main Test.Ctl.Plutip", - "staking-test": "spago run --main Test.Ctl.Plutip.Staking", + "testnet-test": "spago run --main Test.Ctl.Testnet", + "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'", "e2e-test-debug": "source ./test/e2e.env && spago test --main Test.Ctl.E2E -a 'run --no-headless'", @@ -32,9 +32,9 @@ "license": "MIT", "dependencies": { "@mlabs-haskell/cardano-message-signing": "^1.0.1", - "@mlabs-haskell/cardano-serialization-lib-gc": "^1.0.10", + "@mlabs-haskell/cardano-serialization-lib-gc": "12.0.0-alpha.31", "@mlabs-haskell/json-bigint": "2.0.0", - "@mlabs-haskell/uplc-apply-args": "2.0.1", + "@mlabs-haskell/uplc-apply-args": "1.0.29-alpha", "@noble/secp256k1": "^1.7.0", "base64-js": "^1.5.1", "bignumber.js": "^9.1.1", @@ -50,13 +50,15 @@ "xhr2": "0.2.1" }, "devDependencies": { + "@eslint/js": "^9.7.0", "blakejs": "1.2.1", - "jssha": "3.2.0", "buffer": "6.0.3", "doctoc": "^2.2.1", "esbuild": "0.18.11", "esbuild-plugin-polyfill-node": "^0.3.0", "esbuild-plugin-wasm": "^1.1.0", + "globals": "^15.8.0", + "jssha": "3.2.0", "node-polyfill-webpack-plugin": "2.0.1", "webpack": "5.88.1", "webpack-cli": "5.1.4", diff --git a/packages.dhall b/packages.dhall index cd898c6ef..fca018503 100644 --- a/packages.dhall +++ b/packages.dhall @@ -1,109 +1,3 @@ -{- -Welcome to your new Dhall package-set! - -Below are instructions for how to edit this file for most use -cases, so that you don't need to know Dhall to use it. - -## Warning: Don't Move This Top-Level Comment! - -Due to how `dhall format` currently works, this comment's -instructions cannot appear near corresponding sections below -because `dhall format` will delete the comment. However, -it will not delete a top-level comment like this one. - -## Use Cases - -Most will want to do one or both of these options: -1. Override/Patch a package's dependency -2. Add a package not already in the default package set - -This file will continue to work whether you use one or both options. -Instructions for each option are explained below. - -### Overriding/Patching a package - -Purpose: -- Change a package's dependency to a newer/older release than the - default package set's release -- Use your own modified version of some dependency that may - include new API, changed API, removed API by - using your custom git repo of the library rather than - the package set's repo - -Syntax: -where `entityName` is one of the following: -- dependencies -- repo -- version -------------------------------- -let upstream = -- -in upstream - with packageName.entityName = "new value" -------------------------------- - -Example: -------------------------------- -let upstream = -- -in upstream - with halogen.version = "master" - with halogen.repo = "https://example.com/path/to/git/repo.git" - - with halogen-vdom.version = "v4.0.0" -------------------------------- - -### Additions - -Purpose: -- Add packages that aren't already included in the default package set - -Syntax: -where `` is: -- a tag (i.e. "v4.0.0") -- a branch (i.e. "master") -- commit hash (i.e. "701f3e44aafb1a6459281714858fadf2c4c2a977") -------------------------------- -let upstream = -- -in upstream - with new-package-name = - { dependencies = - [ "dependency1" - , "dependency2" - ] - , repo = - "https://example.com/path/to/git/repo.git" - , version = - "" - } -------------------------------- - -Example: -------------------------------- -let upstream = -- -in upstream - with benchotron = - { dependencies = - [ "arrays" - , "exists" - , "profunctor" - , "strings" - , "quickcheck" - , "lcg" - , "transformers" - , "foldable-traversable" - , "exceptions" - , "node-fs" - , "node-buffer" - , "node-readline" - , "datetime" - , "now" - ] - , repo = - "https://github.com/hdgarrood/purescript-benchotron.git" - , version = - "v7.0.0" - } -------------------------------- --} let upstream = https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20230105/packages.dhall sha256:3e9fbc9ba03e9a1fcfd895f65e2d50ee2f5e86c4cd273f3d5c841b655a0e1bda @@ -266,21 +160,27 @@ let additions = , cardano-serialization-lib = { dependencies = [ "aeson" + , "aff" , "argonaut" , "bifunctors" , "bytearrays" , "effect" , "either" + , "enums" , "maybe" , "nullable" , "ordered-collections" + , "partial" , "prelude" , "profunctor" + , "spec" + , "transformers" , "tuples" + , "unsafe-coerce" ] , repo = "https://github.com/mlabs-haskell/purescript-cardano-serialization-lib" - , version = "26d437c3f398172c839b93b57c30eb43a7fa7ca0" + , version = "v1.0.0" } , cardano-plutus-data-schema = { dependencies = [ "prelude" ] @@ -394,14 +294,15 @@ let additions = , cardano-types = { dependencies = [ "aeson" + , "aff" , "arraybuffer-types" , "arrays" , "bifunctors" , "bytearrays" , "cardano-plutus-data-schema" , "cardano-serialization-lib" - , "console" , "control" + , "datetime" , "effect" , "either" , "encoding" @@ -415,6 +316,8 @@ let additions = , "literals" , "maybe" , "monad-logger" + , "mote" + , "mote-testplan" , "newtype" , "nonempty" , "nullable" @@ -422,11 +325,12 @@ let additions = , "partial" , "prelude" , "profunctor" + , "profunctor-lenses" , "quickcheck" , "rationals" , "record" , "safe-coerce" - , "strings" + , "spec" , "these" , "tuples" , "typelevel-prelude" @@ -435,7 +339,7 @@ let additions = , "unsafe-coerce" ] , repo = "https://github.com/mlabs-haskell/purescript-cardano-types" - , version = "v1.0.2" + , version = "56877b43ea392ef6486e37d52e1c37d8c2b8c42d" } , cardano-message-signing = { dependencies = @@ -516,7 +420,7 @@ let additions = ] , repo = "https://github.com/mlabs-haskell/purescript-cardano-transaction-builder" - , version = "v1.0.0" + , version = "48866bd7f5eeb8e0870c97384264d08bda9c2725" } , mote-testplan = { dependencies = diff --git a/plutip-server/.gitignore b/plutip-server/.gitignore deleted file mode 100644 index 838458f20..000000000 --- a/plutip-server/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/dist/ \ No newline at end of file diff --git a/plutip-server/LICENSE b/plutip-server/LICENSE deleted file mode 100644 index 2d81c86b8..000000000 --- a/plutip-server/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2022 MLabs Ltd. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/plutip-server/README.md b/plutip-server/README.md deleted file mode 100644 index d07d943d7..000000000 --- a/plutip-server/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# plutip-server - -Plutip-server is a simple HTTP interface for [Plutip](https://github.com/mlabs-haskell/plutip) to start and stop local plutip clusters on demand. - -CTL handles communication with Plutip via this server and there's usually no need to use it directly, though `plutip-server` can be useful if you need to control Plutip from a different service (although [`plutip-local-cluster`](https://github.com/mlabs-haskell/plutip/tree/master/local-cluster), which is a CLI program, is probably more convenient for that). - -Server exposes two POST endpoints for starting and stopping clusters (only up to one active cluster is allowed at a time). - -You can configure cluster parameters like slot length, max tx size, etc. and specify how many wallets to create, including Ada UTxO distribution in each wallet (see [here](../doc/plutip-testing.md#cluster-configuration-options) for how to configure this via CTL). - -On a successful cluster startup `plutip-server` responds with a list of keys of the newly created wallets, node configuration, directory with public and private keys for the wallets and a path to the socket of one of the nodes from the cluster (usually it's the one that finished startup the first). - -`plutip-server` uses Plutip as a [Haskell library](https://github.com/mlabs-haskell/plutip/tree/master#as-a-library) in Servant API handlers via `startFundedCluster` and `stopCluster` functions. diff --git a/plutip-server/cabal.project b/plutip-server/cabal.project deleted file mode 100644 index c1a038651..000000000 --- a/plutip-server/cabal.project +++ /dev/null @@ -1,114 +0,0 @@ -repository cardano-haskell-packages - url: https://input-output-hk.github.io/cardano-haskell-packages - secure: True - root-keys: - 3e0cce471cf09815f930210f7827266fd09045445d65923e6d0238a6cd15126f - 443abb7fb497a134c343faf52f0b659bd7999bc06b7f63fa76dc99d631f9bea1 - a86a1f6ce86c449c46666bda44268677abf29b5b2d2eb5ec7af903ec2f117a82 - bcec67e8e99cabfa7764d75ad9b158d72bfacf70ca1d0ec8bc6b4406d1bf8413 - c00aae8461a256275598500ea0e187588c35a5d5d7454fb57eac18d9edb86a56 - d4a35cd3121aa00d18544bb0ac01c3e1691d618f462c46129271bccf39f7e8ee - --- Align index-states with cardano-wallet -index-state: 2023-06-06T00:00:00Z - -packages: ./. - -tests: true -benchmarks: true -test-show-details: direct -constraints: - -- TH Name shadowing warnings nconstraints: - bimap >= 0.4.0 - , openapi3 >= 3.2.0 - , libsystemd-journal >= 1.4.4 - , systemd >= 2.3.0 - -- dependency of systemd-2.3.0 - , network >= 3.1.1.1 - -- choose versions that work with base >= 4.12 - , hjsonpointer >= 1.5.0 - , hjsonschema >= 1.10.0 - , Cabal >= 3.4.0.0 - , async-timer >= 0.2.0.0 - , unliftio-core >= 0.2.0.1 - , generic-arbitrary >= 0.2.2 - , iohk-monitoring >= 0.1.11 - - -- lower versions of katip won't build with the Win32-2.12.0.1 - -- which is shipped with the ghc-9.2.8 - , katip >= 0.8.7.4 - - -- Cardano Node dependencies: - , cardano-api ^>=8.2 - , cardano-slotting >= 0.1 - , ouroboros-network ^>= 0.8.1.0 - , persistent == 2.13.3.3 - -package cardano-wallet - optimization: False -package cardano-wallet-core - optimization: False -package cardano-wallet-cli - optimization: False -package cardano-wallet-launcher - optimization: False -package cardano-wallet-core-integration - optimization: False - -allow-newer: - hjsonschema:* - , hjsonpointer:* - , *:aeson - , *:hashable - , async-timer:unliftio-core - , ekg:* - , ntp-client:* - , libsystemd-journal:base - -source-repository-package - type: git - location: https://github.com/cardano-foundation/cardano-wallet - tag: ae6e90b99ff14eda88769211218aaae2b0fe528b - --sha256: 060r6z9sy9r1jr8iinlyirprw4k3s54malp9sz732vl7byh6vylf - subdir: - lib/application-extras - lib/balance-tx - lib/crypto-hash-extra - lib/coin-selection - lib/delta-store - lib/delta-table - lib/delta-types - lib/iohk-monitoring-extra - lib/launcher - lib/local-cluster - lib/numeric - lib/primitive - lib/read - lib/temporary-extra - lib/test-utils - lib/text-class - lib/wai-middleware-logging - lib/wallet-benchmarks - lib/wallet - lib/wallet-e2e - -source-repository-package - type: git - location: https://github.com/input-output-hk/cardano-addresses - tag: 44d5a9eb3505b6bfbf281d40fa88531c3253b771 - --sha256: 16rja48ryfjw3531kf15w0h3cdmscqgs8l1z1i2mvahq1vlhr2y6 - subdir: command-line - core - -source-repository-package - type: git - location: https://github.com/cardano-foundation/cardano-wallet-client.git - tag: 353412ca621dc28af53e4a19795338b19bab1b7b - --sha256: 04q58c82wy6x9nkwqbvcxbv6s61fx08h5kf62sb511aqp08id4bb - subdir: generated - -source-repository-package - type: git - location: https://github.com/mlabs-haskell/plutip.git - tag: 1bf0b547cd3689c727586abb8385c008fb2a3d1c - --sha256: sha256-7ZhZUDhlFvV2us4G27iAk6lHezKS/4WA07NQn88VtQU= diff --git a/plutip-server/default.nix b/plutip-server/default.nix deleted file mode 100644 index f6bcc4a10..000000000 --- a/plutip-server/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ pkgs, system, src, plutip, CHaP, cardano-node }: -let - haskellModules = - plutip.haskellModules.${system} ++ [ - ({ config, pkgs, ... }: - let - nodeExes = cardano-node.packages.${system}; - in - { - packages.plutip-server.components.exes.plutip-server = { - pkgconfig = [ [ pkgs.makeWrapper ] ]; - postInstall = with pkgs; '' - wrapProgram $out/bin/plutip-server \ - --prefix PATH : "${lib.makeBinPath [ - nodeExes.cardano-node - nodeExes.cardano-cli - ]}" - ''; - }; - }) - ]; -in -pkgs.haskell-nix.cabalProject { - name = "plutip-server"; - - inherit src; - - inputMap = { - "https://input-output-hk.github.io/cardano-haskell-packages" = CHaP; - }; - - compiler-nix-name = "ghc8107"; - - shell = { - withHoogle = true; - exactDeps = true; - - tools.haskell-language-server = "1.5.0.0"; # Newer versions failed to build - - nativeBuildInputs = with pkgs; [ - # Haskell Tools - haskellPackages.fourmolu - haskellPackages.cabal-install - haskellPackages.cabal-fmt - nixpkgs-fmt - hlint - entr - ghcid - git - fd - - # Cardano tools - cardano-node.packages.${system}.cardano-cli - cardano-node.packages.${system}.cardano-node - ]; - }; - - modules = haskellModules; -} diff --git a/plutip-server/fourmolu.yaml b/plutip-server/fourmolu.yaml deleted file mode 100644 index fc79883a8..000000000 --- a/plutip-server/fourmolu.yaml +++ /dev/null @@ -1,8 +0,0 @@ -indentation: 2 -comma-style: leading -record-brace-space: true -indent-wheres: true -diff-friendly-import-export: true -respectful: true -haddock-style: single-line -newlines-between-decls: 1 diff --git a/plutip-server/hie.yaml b/plutip-server/hie.yaml deleted file mode 100644 index 14f279877..000000000 --- a/plutip-server/hie.yaml +++ /dev/null @@ -1,4 +0,0 @@ -cradle: - cabal: - - path: "./src/" - component: "exe:plutip-server" diff --git a/plutip-server/plutip-server.cabal b/plutip-server/plutip-server.cabal deleted file mode 100644 index da121dc1b..000000000 --- a/plutip-server/plutip-server.cabal +++ /dev/null @@ -1,96 +0,0 @@ -cabal-version: 3.0 -name: plutip-server -version: 0.2 -license-file: LICENSE -author: mlabs -maintainer: TODO -build-type: Simple -extra-source-files: CHANGELOG.md - -common common-language - default-extensions: - BangPatterns - DataKinds - DeriveAnyClass - DeriveFoldable - DeriveFunctor - DeriveGeneric - DeriveLift - DeriveTraversable - DerivingStrategies - EmptyDataDecls - ExplicitForAll - FlexibleContexts - FlexibleInstances - GeneralizedNewtypeDeriving - ImportQualifiedPost - LambdaCase - MonoLocalBinds - MultiParamTypeClasses - NamedFieldPuns - NumericUnderscores - OverloadedStrings - QuasiQuotes - RankNTypes - RecordWildCards - ScopedTypeVariables - StandaloneDeriving - TemplateHaskell - TupleSections - TypeApplications - TypeFamilies - TypeOperators - TypeSynonymInstances - ViewPatterns - -common common-configs - default-language: Haskell2010 - -common common-ghc-options - ghc-options: - -fno-ignore-interface-pragmas -fno-omit-interface-pragmas - -fno-specialize -fno-strictness -fno-warn-orphans -fobject-code - -fplugin-opt PlutusTx.Plugin:defer-errors - -executable plutip-server - import: common-language - import: common-ghc-options - main-is: Main.hs - hs-source-dirs: src - default-language: Haskell2010 - build-depends: - , aeson - , async - , base - , base16-bytestring - , bytestring - , cardano-api - , cardano-ledger-core - , cardano-wallet - , cardano-wallet-launcher - , data-default - , directory - , exceptions - , extra - , filepath - , http-types - , mtl - , optparse-applicative - , plutip-core - , positive - , servant-server - , stm - , text - , time - , unliftio - , wai - , wai-cors - , wai-logger - , warp - - other-modules: - Api - Api.Handlers - Types - - ghc-options: -Wall -threaded -rtsopts diff --git a/plutip-server/src/Api.hs b/plutip-server/src/Api.hs deleted file mode 100644 index b3c6fcc93..000000000 --- a/plutip-server/src/Api.hs +++ /dev/null @@ -1,67 +0,0 @@ -module Api where - -import Api.Handlers ( - startClusterHandler, - stopClusterHandler, - ) -import Control.Monad.IO.Class (liftIO) -import Control.Monad.Reader (runReaderT) -import Data.Kind (Type) -import Network.Wai.Middleware.Cors qualified as Cors -import Servant ( - Application, - Handler, - JSON, - Post, - Proxy (Proxy), - ReqBody, - Server, - ServerT, - hoistServer, - serve, - (:<|>) ((:<|>)), - (:>), - ) -import Types ( - AppM (AppM), - Env (Env), - ServerOptions, - StartClusterRequest, - StartClusterResponse, - StopClusterRequest, - StopClusterResponse, - options, - ) - -type Api = - "start" - :> ReqBody '[JSON] StartClusterRequest - :> Post '[JSON] StartClusterResponse - :<|> "stop" - :> ReqBody '[JSON] StopClusterRequest - :> Post '[JSON] StopClusterResponse - -app :: Env -> Application -app = Cors.cors (const $ Just policy) . serve api . appServer - where - policy :: Cors.CorsResourcePolicy - policy = - Cors.simpleCorsResourcePolicy - { Cors.corsRequestHeaders = ["Content-Type"] - , Cors.corsMethods = ["OPTIONS", "GET", "POST"] - } - -api :: Proxy Api -api = Proxy - -server :: ServerOptions -> ServerT Api AppM -server serverOptions = - startClusterHandler serverOptions - :<|> stopClusterHandler - -appServer :: Env -> Server Api -appServer env@Env {options} = - hoistServer api appHandler (server options) - where - appHandler :: forall (a :: Type). AppM a -> Handler a - appHandler (AppM x) = liftIO $ runReaderT x env diff --git a/plutip-server/src/Api/Handlers.hs b/plutip-server/src/Api/Handlers.hs deleted file mode 100644 index 33452b14a..000000000 --- a/plutip-server/src/Api/Handlers.hs +++ /dev/null @@ -1,118 +0,0 @@ -module Api.Handlers ( - startClusterHandler, - stopClusterHandler, -) where - -import Cardano.Launcher.Node (nodeSocketFile) - -import Control.Concurrent.MVar (isEmptyMVar, putMVar, tryTakeMVar) -import Control.Monad (unless) -import Control.Monad.Except (runExceptT, throwError) -import Control.Monad.Extra (unlessM) -import Control.Monad.IO.Class (liftIO) -import Control.Monad.Reader (asks) -import Data.Default (def) -import Data.Foldable (for_) -import Data.Maybe (fromMaybe) -import Plutip.Cluster (startFundedCluster, stopCluster) -import Plutip.Config ( - ExtraConfig (ExtraConfig, ecEpochSize, ecMaxTxSize, ecSlotLength), - PlutipConfig (extraConfig), - ecRaiseExUnitsToMax, - ) -import Plutip.Keys (signKeyCBORHex) -import Plutip.Types (ClusterEnv (runningNode), RunningNode (RunningNode), keysDir) -import System.Directory (doesFileExist) -import System.FilePath (replaceFileName) -import Types ( - AppM, - ClusterStartupFailureReason ( - ClusterIsRunningAlready, - NegativeLovelaces, - NodeConfigNotFound - ), - ClusterStartupParameters ( - ClusterStartupParameters, - keysDirectory, - nodeConfigPath, - nodeSocketPath, - privateKeys - ), - Env (status), - Lovelace (unLovelace), - ServerOptions, - StartClusterRequest ( - StartClusterRequest, - epochSize, - keysToGenerate, - maxTxSize, - raiseExUnitsToMax, - slotLength - ), - StartClusterResponse ( - ClusterStartupFailure, - ClusterStartupSuccess - ), - StopClusterRequest (StopClusterRequest), - StopClusterResponse (StopClusterFailure, StopClusterSuccess), - ) - -startClusterHandler :: ServerOptions -> StartClusterRequest -> AppM StartClusterResponse -startClusterHandler - _ - StartClusterRequest - { keysToGenerate - , slotLength - , epochSize - , maxTxSize - , raiseExUnitsToMax - } = interpret $ do - -- Check that lovelace amounts are positive - for_ keysToGenerate $ \lovelaceAmounts -> - for_ lovelaceAmounts $ \lovelaces -> - unless (unLovelace lovelaces > 0) $ - throwError NegativeLovelaces - statusMVar <- asks status - isClusterDown <- liftIO $ isEmptyMVar statusMVar - unless isClusterDown $ throwError ClusterIsRunningAlready - let cfg = def {extraConfig = extraConf} - keysToGenerate' = map fromIntegral <$> keysToGenerate - (statusTVar, (clusterEnv, keys)) <- liftIO $ startFundedCluster cfg keysToGenerate' (curry pure) - liftIO $ putMVar statusMVar statusTVar - - let nodeConfigPath = getNodeConfigFile clusterEnv - -- safeguard against directory tree structure changes - unlessM (liftIO $ doesFileExist nodeConfigPath) $ throwError NodeConfigNotFound - pure $ - ClusterStartupSuccess $ - ClusterStartupParameters - { privateKeys = signKeyCBORHex <$> keys - , nodeSocketPath = getNodeSocketFile clusterEnv - , nodeConfigPath = nodeConfigPath - , keysDirectory = keysDir clusterEnv - } - where - getNodeSocketFile (runningNode -> RunningNode conn _ _) = nodeSocketFile conn - getNodeConfigFile = - -- assumption is that node.config lies in the same directory as node.socket - flip replaceFileName "node.config" . getNodeSocketFile - interpret = fmap (either ClusterStartupFailure id) . runExceptT - - extraConf :: ExtraConfig - extraConf = - let defConfig = def - in ExtraConfig - (fromMaybe (ecSlotLength defConfig) slotLength) - (fromMaybe (ecEpochSize defConfig) epochSize) - (fromMaybe (ecMaxTxSize defConfig) maxTxSize) - (fromMaybe (ecRaiseExUnitsToMax defConfig) raiseExUnitsToMax) - -stopClusterHandler :: StopClusterRequest -> AppM StopClusterResponse -stopClusterHandler StopClusterRequest = do - statusMVar <- asks status - maybeClusterStatus <- liftIO $ tryTakeMVar statusMVar - case maybeClusterStatus of - Nothing -> pure $ StopClusterFailure "Cluster is not running" - Just statusTVar -> do - liftIO $ stopCluster statusTVar - pure StopClusterSuccess diff --git a/plutip-server/src/Main.hs b/plutip-server/src/Main.hs deleted file mode 100644 index 35f26c573..000000000 --- a/plutip-server/src/Main.hs +++ /dev/null @@ -1,59 +0,0 @@ -module Main (main) where - -import Api (app) -import Control.Applicative ((<**>)) -import Control.Concurrent.MVar (newEmptyMVar) -import Data.Function ((&)) -import Network.HTTP.Types (Status) -import Network.Wai (Request) -import Network.Wai.Handler.Warp ( - Port, - Settings, - defaultSettings, - runSettings, - setLogger, - setPort, - ) -import Network.Wai.Logger (withStdoutLogger) -import Options.Applicative qualified as Options -import System.Exit (die) -import Types (Env (Env, options, status), ServerOptions (ServerOptions, port)) - -main :: IO () -main = do - serverOptions@ServerOptions {port} <- Options.execParser opts - withStdoutLogger $ \logger -> do - putStrLn $ "Plutip server starting on port " <> show port - runSettings (mkSettings port logger) - . app - =<< either die pure - =<< newEnvIO serverOptions - where - mkSettings :: - Port -> (Request -> Status -> Maybe Integer -> IO ()) -> Settings - mkSettings port logger = defaultSettings & setPort port & setLogger logger - -newEnvIO :: ServerOptions -> IO (Either String Env) -newEnvIO options = do - status <- newEmptyMVar - pure . Right $ Env {status, options} - -opts :: Options.ParserInfo ServerOptions -opts = - Options.info (serverOptionsParser <**> Options.helper) $ - Options.fullDesc - <> Options.progDesc - "plutip-server is used for integration with cardano-transaction-lib" - -serverOptionsParser :: Options.Parser ServerOptions -serverOptionsParser = - ServerOptions - <$> Options.option - Options.auto - ( Options.long "port" - <> Options.short 'p' - <> Options.help "Server port" - <> Options.showDefault - <> Options.value 8082 - <> Options.metavar "INT" - ) diff --git a/plutip-server/src/Types.hs b/plutip-server/src/Types.hs deleted file mode 100644 index 9d7d5227c..000000000 --- a/plutip-server/src/Types.hs +++ /dev/null @@ -1,135 +0,0 @@ -module Types ( - AppM (AppM), - ClusterStartupFailureReason ( - ClusterIsRunningAlready, - NegativeLovelaces, - NodeConfigNotFound - ), - Env (Env, status, options), - ErrorMessage, - Lovelace (unLovelace), - PrivateKey, - ServerOptions (ServerOptions, port), - StartClusterRequest ( - StartClusterRequest, - keysToGenerate, - slotLength, - epochSize, - maxTxSize, - raiseExUnitsToMax - ), - StartClusterResponse ( - ClusterStartupSuccess, - ClusterStartupFailure - ), - ClusterStartupParameters ( - ClusterStartupParameters, - keysDirectory, - nodeSocketPath, - privateKeys, - nodeConfigPath - ), - StopClusterRequest (StopClusterRequest), - StopClusterResponse (StopClusterSuccess, StopClusterFailure), -) where - -import Cardano.Ledger.Slot (EpochSize) -import Control.Concurrent.MVar (MVar) -import Control.Monad.Catch (MonadThrow) -import Control.Monad.IO.Class (MonadIO) -import Control.Monad.Reader (MonadReader, ReaderT) -import Data.Aeson (FromJSON, ToJSON, parseJSON) -import Data.Kind (Type) -import Data.Text (Text) -import GHC.Generics (Generic) -import Network.Wai.Handler.Warp (Port) -import Numeric.Natural (Natural) -import Plutip.Config (NominalDiffTimeMicro) -import Plutip.Cluster (StopClusterRef) - --- TVar is used for signaling by 'startCluster'/'stopCluster' (STM is used --- for blocking). --- MVar is used by plutip-server to store current TVar (we allow maximum of one --- cluster at any given moment). --- This MVar is used by start/stop handlers. --- The payload of ClusterStatus is irrelevant. -type ClusterStatusRef = MVar StopClusterRef - -data Env = Env - { status :: ClusterStatusRef - , options :: ServerOptions - } - -data ServerOptions = ServerOptions - { port :: Port - } - deriving stock (Generic) - -newtype AppM (a :: Type) = AppM (ReaderT Env IO a) - deriving newtype - ( Functor - , Applicative - , Monad - , MonadIO - , MonadReader Env - , MonadThrow - ) - -type ErrorMessage = Text - -newtype Lovelace = Lovelace {unLovelace :: Integer} - deriving stock (Show, Eq, Generic) - deriving newtype (ToJSON, Num, Enum, Ord, Real, Integral) - -instance FromJSON Lovelace where - parseJSON json = do - Lovelace <$> parseJSON json - -data StartClusterRequest = StartClusterRequest - { keysToGenerate :: [[Lovelace]] - -- ^ Lovelace amounts for each UTXO of each wallet - , slotLength :: Maybe NominalDiffTimeMicro - -- ^ Set the SlotLength. If set to Nothing use the default - , epochSize :: Maybe EpochSize - -- ^ Set the EpochSize. If set to Nothing use the default - , maxTxSize :: Maybe Natural - -- ^ Set The maxTxSize. If set to Nothing use the default - , raiseExUnitsToMax :: Maybe Bool - -- ^ Raise the execution units to the maximum when true. - -- If set to Nothing use the default - } - deriving stock (Show, Eq, Generic) - deriving anyclass (FromJSON, ToJSON) - --- CborHex -type PrivateKey = Text - -data ClusterStartupFailureReason - = ClusterIsRunningAlready - | NegativeLovelaces - | NodeConfigNotFound - deriving stock (Show, Eq, Generic) - deriving anyclass (FromJSON, ToJSON) - -data ClusterStartupParameters = ClusterStartupParameters - { privateKeys :: [PrivateKey] - , nodeSocketPath :: FilePath - , nodeConfigPath :: FilePath - , keysDirectory :: FilePath - } - deriving stock (Show, Eq, Generic) - deriving anyclass (FromJSON, ToJSON) - -data StartClusterResponse - = ClusterStartupFailure ClusterStartupFailureReason - | ClusterStartupSuccess ClusterStartupParameters - deriving stock (Show, Eq, Generic) - deriving anyclass (FromJSON, ToJSON) - -data StopClusterRequest = StopClusterRequest - deriving stock (Show, Eq, Generic) - deriving anyclass (FromJSON, ToJSON) - -data StopClusterResponse = StopClusterSuccess | StopClusterFailure ErrorMessage - deriving stock (Show, Eq, Generic) - deriving anyclass (FromJSON, ToJSON) diff --git a/scripts/whitespace-check.sh b/scripts/whitespace-check.sh index 2e0f26cfb..02df695f2 100755 --- a/scripts/whitespace-check.sh +++ b/scripts/whitespace-check.sh @@ -6,7 +6,7 @@ files=" *.md *.nix *.dhall -.eslintrc.json +eslint.config.js .mlc_config.json .tidyrc.json LICENSE diff --git a/spago-packages.nix b/spago-packages.nix index 28853d177..4157d64a6 100644 --- a/spago-packages.nix +++ b/spago-packages.nix @@ -271,11 +271,11 @@ let "cardano-serialization-lib" = pkgs.stdenv.mkDerivation { name = "cardano-serialization-lib"; - version = "26d437c3f398172c839b93b57c30eb43a7fa7ca0"; + version = "v1.0.0"; src = pkgs.fetchgit { url = "https://github.com/mlabs-haskell/purescript-cardano-serialization-lib"; - rev = "26d437c3f398172c839b93b57c30eb43a7fa7ca0"; - sha256 = "1ikz6j3jvls3cvl6znrw55f59abzdaf7ggd2x7j3f81m5cvkxggr"; + rev = "903bf0adeefedc4d065ad6523ad079433bdd8e32"; + sha256 = "0jlfxrx037hyd4v0j7l2b16yxlm6nw6qlnr992hj9nzip36vbpfg"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -283,11 +283,11 @@ let "cardano-transaction-builder" = pkgs.stdenv.mkDerivation { name = "cardano-transaction-builder"; - version = "v1.0.0"; + version = "48866bd7f5eeb8e0870c97384264d08bda9c2725"; src = pkgs.fetchgit { - url = "https://github.com/mlabs-haskell/purescript-cardano-transaction-builder"; - rev = "70d219d6463466458fd381b55d84f458dcaee94a"; - sha256 = "1148x79lxq2rr897cfspkrjspwyjgw5xm9b9188wvgf568703r3w"; + url = "https://github.com/errfrom/purescript-cardano-transaction-builder"; + rev = "48866bd7f5eeb8e0870c97384264d08bda9c2725"; + sha256 = "1k57z6l14679vphw6l8l52hfyj5a1pk7vbjn929nsv0axp5y7fxa"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -295,11 +295,11 @@ let "cardano-types" = pkgs.stdenv.mkDerivation { name = "cardano-types"; - version = "v1.0.2"; + version = "56877b43ea392ef6486e37d52e1c37d8c2b8c42d"; src = pkgs.fetchgit { url = "https://github.com/mlabs-haskell/purescript-cardano-types"; - rev = "40d9468a4712ad2bf57ebede19fae92208f082a0"; - sha256 = "1iawinsrsipqgjrcgv650x3i2iad1z2vlwlhvlcx9880qmv0m9gc"; + rev = "56877b43ea392ef6486e37d52e1c37d8c2b8c42d"; + sha256 = "04h78kivkm9nnz5pxjqvgsf7g9gfzzjn6crwj3lh1m7kxgb1yxds"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -641,6 +641,18 @@ let installPhase = "ln -s $src $out"; }; + "freet" = pkgs.stdenv.mkDerivation { + name = "freet"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-freet.git"; + rev = "21be6fba22599a25812430dda6ba2ca8135920a1"; + sha256 = "006wbr7f19k7vs1jg4wgkwyx1q4wvvs2wqscfcxsp8fzfpn2yqw8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; + "functions" = pkgs.stdenv.mkDerivation { name = "functions"; version = "v6.0.0"; @@ -1049,6 +1061,18 @@ let installPhase = "ln -s $src $out"; }; + "node-streams-aff" = pkgs.stdenv.mkDerivation { + name = "node-streams-aff"; + version = "v4.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-node/purescript-node-streams-aff.git"; + rev = "5c9b6937d14d6fed2273e3ac8780e3d256763e7d"; + sha256 = "1vm5s6mlawdpqamnqfyh1vbsybjm2s972m02h8mza4m47zlca948"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; + "node-url" = pkgs.stdenv.mkDerivation { name = "node-url"; version = "v6.0.0"; @@ -1397,6 +1421,18 @@ let installPhase = "ln -s $src $out"; }; + "safely" = pkgs.stdenv.mkDerivation { + name = "safely"; + version = "v4.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/paf31/purescript-safely.git"; + rev = "19f854737e17b4d058e5a1504a960821db36e4ab"; + sha256 = "1mrpz19smjsamz4cci287z89q715chzxna0gpbvdgivlca4z6879"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; + "spec" = pkgs.stdenv.mkDerivation { name = "spec"; version = "v7.2.0"; diff --git a/spago.dhall b/spago.dhall index 76a3defe1..68f754ae9 100644 --- a/spago.dhall +++ b/spago.dhall @@ -66,6 +66,7 @@ You can edit this file as you like. , "node-process" , "node-readline" , "node-streams" + , "node-streams-aff" , "nonempty" , "now" , "nullable" @@ -74,6 +75,7 @@ You can edit this file as you like. , "ordered-collections" , "orders" , "parallel" + , "parsing" , "partial" , "plutus-types" , "posix-types" @@ -87,6 +89,7 @@ You can edit this file as you like. , "record" , "refs" , "safe-coerce" + , "safely" , "spec" , "spec-quickcheck" , "strings" diff --git a/src/Contract/Test/Assert.purs b/src/Contract/Test/Assert.purs index 2ad6194b2..2531a5ad8 100644 --- a/src/Contract/Test/Assert.purs +++ b/src/Contract/Test/Assert.purs @@ -89,7 +89,7 @@ import Cardano.Types.BigNum as BigNum import Cardano.Types.Value as Value import Contract.Monad (Contract) import Contract.Prelude (Effect) -import Contract.Transaction (getTxMetadata) +import Contract.Transaction (getTxAuxiliaryData) import Contract.Utxos (utxosAt) import Contract.Wallet (getWalletBalance, getWalletUtxos) import Control.Monad.Error.Class (liftEither, throwError) @@ -829,7 +829,10 @@ assertTxHasMetadata assertTxHasMetadata mdLabel txHash expectedMetadata = do generalMetadata <- assertContractMaybe (TransactionHasNoMetadata txHash Nothing) - =<< lift (hush <$> getTxMetadata txHash) + =<< lift + ( map ((=<<) (_.metadata <<< unwrap)) $ hush <$> getTxAuxiliaryData + txHash + ) rawMetadata <- assertContractMaybe (TransactionHasNoMetadata txHash (Just mdLabel)) diff --git a/src/Contract/Test/Plutip.purs b/src/Contract/Test/Plutip.purs deleted file mode 100644 index 459fd40f7..000000000 --- a/src/Contract/Test/Plutip.purs +++ /dev/null @@ -1,73 +0,0 @@ --- | This module contains everything needed for `Contract` testing in Plutip --- | environment. -module Contract.Test.Plutip - ( PlutipTest - , PlutipTestPlan - , defaultPlutipConfig - , module X - ) where - -import Contract.Monad (runContractInEnv) as X -import Contract.Wallet (withKeyWallet) as X -import Ctl.Internal.Contract.Hooks (emptyHooks) -import Ctl.Internal.Plutip.Server - ( runPlutipContract - , runPlutipTestPlan - , testPlutipContracts - , withPlutipContractEnv - ) as X -import Ctl.Internal.Plutip.Types (PlutipConfig) -import Ctl.Internal.Plutip.Types (PlutipConfig) as X -import Ctl.Internal.Test.ContractTest (ContractTest) -import Ctl.Internal.Test.ContractTest (ContractTestPlan) as Server -import Ctl.Internal.Test.ContractTest - ( noWallet - , sameWallets - , withWallets - ) as X -import Ctl.Internal.Test.UtxoDistribution - ( class UtxoDistribution - , InitialUTxODistribution - , InitialUTxOs - , InitialUTxOsWithStakeKey(InitialUTxOsWithStakeKey) - , UtxoAmount - , withStakeKey - ) as X -import Data.Log.Level (LogLevel(Trace)) -import Data.Maybe (Maybe(Nothing)) -import Data.Time.Duration (Seconds(Seconds)) -import Data.UInt as UInt - --- | Type synonym for backwards compatibility. -type PlutipTest = ContractTest -type PlutipTestPlan = Server.ContractTestPlan - --- | A default value for `PlutipConfig` type. -defaultPlutipConfig :: PlutipConfig -defaultPlutipConfig = - { host: "127.0.0.1" - , port: UInt.fromInt 8082 - , logLevel: Trace - -- Server configs are used to deploy the corresponding services. - , ogmiosConfig: - { port: UInt.fromInt 1338 - , host: "127.0.0.1" - , secure: false - , path: Nothing - } - , kupoConfig: - { port: UInt.fromInt 1443 - , host: "127.0.0.1" - , secure: false - , path: Nothing - } - , suppressLogs: true - , customLogger: Nothing - , hooks: emptyHooks - , clusterConfig: - { slotLength: Seconds 0.1 - , epochSize: Nothing - , maxTxSize: Nothing - , raiseExUnitsToMax: false - } - } diff --git a/src/Contract/Test/Testnet.purs b/src/Contract/Test/Testnet.purs new file mode 100644 index 000000000..8b4c3222d --- /dev/null +++ b/src/Contract/Test/Testnet.purs @@ -0,0 +1,59 @@ +module Contract.Test.Testnet + ( defaultTestnetConfig + , module X + ) where + +import Contract.Monad (runContractInEnv) as X +import Contract.Wallet (withKeyWallet) as X +import Ctl.Internal.Contract.Hooks (emptyHooks) +import Ctl.Internal.Test.ContractTest + ( ContractTest + , ContractTestPlan(ContractTestPlan) + , noWallet + , sameWallets + , withWallets + ) as X +import Ctl.Internal.Test.UtxoDistribution + ( class UtxoDistribution + , InitialUTxODistribution + , InitialUTxOs + , InitialUTxOsWithStakeKey(InitialUTxOsWithStakeKey) + , UtxoAmount + , withStakeKey + ) as X +import Ctl.Internal.Testnet.Contract + ( runTestnetContract + , runTestnetTestPlan + , testTestnetContracts + ) as X +import Ctl.Internal.Testnet.Types (Era(Babbage), TestnetConfig) +import Data.Log.Level (LogLevel(Trace)) +import Data.Maybe (Maybe(Nothing)) +import Data.Time.Duration (Seconds(Seconds)) +import Data.UInt (fromInt) as UInt + +defaultTestnetConfig :: TestnetConfig +defaultTestnetConfig = + { logLevel: Trace + , ogmiosConfig: + { port: UInt.fromInt 1338 + , host: "127.0.0.1" + , secure: false + , path: Nothing + } + , kupoConfig: + { port: UInt.fromInt 1443 + , host: "127.0.0.1" + , secure: false + , path: Nothing + } + , customLogger: Nothing + , suppressLogs: true + , hooks: emptyHooks + , clusterConfig: + { testnetMagic: 2 + , era: Babbage + , slotLength: Seconds 0.1 + , epochSize: Nothing + } + } diff --git a/src/Contract/Test/Utils.purs b/src/Contract/Test/Utils.purs index 8ad509696..d02298aa1 100644 --- a/src/Contract/Test/Utils.purs +++ b/src/Contract/Test/Utils.purs @@ -18,7 +18,7 @@ import Node.Process as Process foreign import exitCode :: Int -> Effect Unit -- | Attaches a custom handler on SIGINT to kill the fiber. --- | see https://github.com/Plutonomicon/cardano-transaction-lib/blob/develop/doc/plutip-testing.md#note-on-sigint +-- | see https://github.com/Plutonomicon/cardano-transaction-lib/blob/develop/doc/cardano-testnet-testing.md#note-on-sigint interruptOnSignal :: forall a. Signal -> Fiber a -> Effect Unit interruptOnSignal signal fiber = Process.onSignal signal do launchAff_ do diff --git a/src/Contract/TextEnvelope.purs b/src/Contract/TextEnvelope.purs index f8bca24eb..2411a2856 100644 --- a/src/Contract/TextEnvelope.purs +++ b/src/Contract/TextEnvelope.purs @@ -7,6 +7,7 @@ import Ctl.Internal.Cardano.TextEnvelope , TextEnvelopeType ( PlutusScriptV1 , PlutusScriptV2 + , PlutusScriptV3 , PaymentSigningKeyShelleyed25519 , StakeSigningKeyShelleyed25519 , Other diff --git a/src/Contract/Transaction.purs b/src/Contract/Transaction.purs index 2974c376e..b98d9d144 100644 --- a/src/Contract/Transaction.purs +++ b/src/Contract/Transaction.purs @@ -5,7 +5,7 @@ module Contract.Transaction , balanceTxE , balanceTxs , createAdditionalUtxos - , getTxMetadata + , getTxAuxiliaryData , module BalanceTxError , module X , submit @@ -29,7 +29,6 @@ import Cardano.Transaction.Builder ) import Cardano.Types ( Bech32String - , GeneralTransactionMetadata , PoolPubKeyHash(PoolPubKeyHash) , Transaction(Transaction) , TransactionHash @@ -56,6 +55,7 @@ import Cardano.Types , TransactionOutput(TransactionOutput) , TransactionUnspentOutput(TransactionUnspentOutput) ) as X +import Cardano.Types.AuxiliaryData (AuxiliaryData) import Cardano.Types.Ed25519KeyHash as Ed25519KeyHash import Cardano.Types.OutputDatum (OutputDatum(OutputDatum, OutputDatumHash)) as X import Cardano.Types.PoolPubKeyHash (PoolPubKeyHash(PoolPubKeyHash)) as X @@ -316,14 +316,14 @@ balanceAndLock { transaction, usedUtxos, balancerConstraints } = do void $ withUsedTxOuts $ lockTransactionInputs balancedTx pure balancedTx --- | Fetch transaction metadata. --- | Returns `Right` when the transaction exists and metadata was non-empty -getTxMetadata +-- | Fetch transaction auxiliary data. +-- | Returns `Right` when the transaction exists and auxiliary data is not empty +getTxAuxiliaryData :: TransactionHash - -> Contract (Either GetTxMetadataError GeneralTransactionMetadata) -getTxMetadata th = do + -> Contract (Either GetTxMetadataError AuxiliaryData) +getTxAuxiliaryData txHash = do queryHandle <- getQueryHandle - liftAff $ queryHandle.getTxMetadata th + liftAff $ queryHandle.getTxAuxiliaryData txHash -- | Builds an expected utxo set from transaction outputs. Predicts output -- | references (`TransactionInput`s) for each output by calculating the diff --git a/src/Internal/Cardano/TextEnvelope.purs b/src/Internal/Cardano/TextEnvelope.purs index 48e76e78f..0e291cff8 100644 --- a/src/Internal/Cardano/TextEnvelope.purs +++ b/src/Internal/Cardano/TextEnvelope.purs @@ -3,6 +3,7 @@ module Ctl.Internal.Cardano.TextEnvelope , TextEnvelopeType ( PlutusScriptV1 , PlutusScriptV2 + , PlutusScriptV3 , PaymentSigningKeyShelleyed25519 , StakeSigningKeyShelleyed25519 , Other @@ -14,18 +15,20 @@ module Ctl.Internal.Cardano.TextEnvelope import Prelude import Aeson (class DecodeAeson, decodeAeson, parseJsonStringToAeson) +import Cardano.Types.Language (Language(PlutusV3)) import Cardano.Types.PlutusScript (PlutusScript) import Cardano.Types.PlutusScript as PlutusScript -import Control.Alt ((<|>)) import Ctl.Internal.Types.Cbor (toByteArray) import Data.ByteArray (ByteArray, hexToByteArray) import Data.Either (hush) -import Data.Maybe (Maybe(Nothing)) -import Data.Newtype (class Newtype, wrap) +import Data.Maybe (Maybe(Just, Nothing)) +import Data.Newtype (class Newtype, unwrap, wrap) +import Data.Tuple.Nested ((/\)) data TextEnvelopeType = PlutusScriptV1 | PlutusScriptV2 + | PlutusScriptV3 | PaymentSigningKeyShelleyed25519 | StakeSigningKeyShelleyed25519 | Other String @@ -36,6 +39,7 @@ instance Show TextEnvelopeType where show = case _ of PlutusScriptV1 -> "PlutusScriptV1" PlutusScriptV2 -> "PlutusScriptV2" + PlutusScriptV3 -> "PlutusScriptV3" PaymentSigningKeyShelleyed25519 -> "PaymentSigningKeyShelley_ed25519" StakeSigningKeyShelleyed25519 -> "StakeSigningKeyShelley_ed25519" Other other -> other @@ -45,6 +49,7 @@ instance DecodeAeson TextEnvelopeType where decodeAeson aeson >>= case _ of "PlutusScriptV1" -> pure PlutusScriptV1 "PlutusScriptV2" -> pure PlutusScriptV2 + "PlutusScriptV3" -> pure PlutusScriptV3 "PaymentSigningKeyShelley_ed25519" -> pure PaymentSigningKeyShelleyed25519 "StakeSigningKeyShelley_ed25519" -> pure @@ -81,15 +86,16 @@ decodeTextEnvelope json = do ba <- decodeCborHexToBytes cborHex pure $ wrap { type_, description, bytes: ba } -plutusScriptFromEnvelope - :: TextEnvelope -> Maybe PlutusScript +plutusScriptFromEnvelope :: TextEnvelope -> Maybe PlutusScript plutusScriptFromEnvelope (TextEnvelope envelope) = - plutusScriptV1FromEnvelope <|> plutusScriptV2FromEnvelope + case envelope.type_ of + PlutusScriptV1 -> + Just $ PlutusScript.plutusV1Script envelopeBytes + PlutusScriptV2 -> + Just $ PlutusScript.plutusV2Script envelopeBytes + PlutusScriptV3 -> + -- TODO: add plutusV3Script to Cardano.Types.PlutusScript + Just $ wrap $ unwrap envelopeBytes /\ PlutusV3 + _ -> Nothing where - plutusScriptV1FromEnvelope = do - unless (envelope.type_ == PlutusScriptV1) Nothing - pure $ PlutusScript.plutusV1Script $ wrap envelope.bytes - - plutusScriptV2FromEnvelope = do - unless (envelope.type_ == PlutusScriptV2) Nothing - pure $ PlutusScript.plutusV2Script $ wrap envelope.bytes + envelopeBytes = wrap envelope.bytes diff --git a/src/Internal/CardanoCli.purs b/src/Internal/CardanoCli.purs new file mode 100644 index 000000000..05e44adfd --- /dev/null +++ b/src/Internal/CardanoCli.purs @@ -0,0 +1,228 @@ +module Ctl.Internal.CardanoCli + ( CardanoNodeInstance + , CardanoCliTxOutInfo + , queryUtxosViaCardanoCli + , cardanoCliTxOutInfoToUtxo + ) where + +import Contract.Prelude + +import Cardano.Serialization.Lib as CSL +import Cardano.Types as Cardano.Types +import Cardano.Types.Address as Cardano.Types.Address +import Cardano.Types.AssetName as Cardano.Types.AssetName +import Cardano.Types.BigNum as BigNum +import Cardano.Types.Value as Cardano.Types.Value +import Contract.Value as Contract.Value +import Control.Alt ((<|>)) +import Control.Monad.Except (throwError) +import Control.Parallel (parallel, sequential) +import Ctl.Internal.Spawn as Ctl.Internal.Spawn +import Ctl.Internal.Testnet.Utils (annotateError) +import Data.Array as Array +import Data.Bifunctor (lmap) +import Data.ByteArray (ByteArray) +import Data.ByteArray as Data.ByteArray +import Data.List as List +import Data.String (Pattern(Pattern), split, trim) as String +import Data.String.CodeUnits (fromCharArray) as String +import Data.UInt (UInt) +import Data.UInt as UInt +import Effect.Exception (error) +import Node.Buffer as Node.Buffer +import Node.ChildProcess as Node.ChildProcess +import Node.Encoding as Node.Encoding +import Node.Path as Node.Path +import Node.Stream.Aff as Node.Stream.Aff +import Parsing as Parsing +import Parsing.Combinators as Parsing.Combinators +import Parsing.String as Parsing.String +import Parsing.String.Basic as Parsing.String.Basic + +type CardanoNodeInstance = + { socketPath :: Node.Path.FilePath + , testnetMagic :: Int + } + +cardanoCliTxOutInfoToUtxo + :: Cardano.Types.Address + -> CardanoCliTxOutInfo + -> Cardano.Types.TransactionInput /\ Cardano.Types.TransactionOutput +cardanoCliTxOutInfoToUtxo address { input: { txHash, txOutId }, amount } = + let + txIn = Cardano.Types.TransactionInput + { index: txOutId, transactionId: txHash } + txOut = Cardano.Types.TransactionOutput + { address + , amount + , datum: Nothing + , scriptRef: Nothing + } + in + txIn /\ txOut + +type CardanoCliTxOutInfo = + { input :: + { txHash :: Cardano.Types.TransactionHash + , txOutId :: UInt + } + , amount :: Cardano.Types.Value -- Coin + } + +-- | A line of the CLI output of 'cardano-cli query utxo' containing utxo information +newtype CliUtxo = CliUtxo String + +parseTxOutIgnoringDatums + :: CliUtxo -> Either Parsing.ParseError CardanoCliTxOutInfo +parseTxOutIgnoringDatums (CliUtxo src) = Parsing.runParser src do + Parsing.String.Basic.skipSpaces + txHash <- parseTxHash + Parsing.String.Basic.skipSpaces + txOutId <- parseTxOutputIndex + let + txDatumBegin = + Parsing.String.string "TxOutDatumNone" + <|> Parsing.String.string "TxOutDatumInline" + <|> Parsing.String.string "TxOutDatumHash" + + Parsing.String.Basic.skipSpaces + rawValues <- Parsing.Combinators.manyTill + (parseAsset <* Parsing.String.string " + ") + txDatumBegin + value <- + noteParser "Can't sum up asset amounts" + $ Contract.Value.sum + $ Array.fromFoldable rawValues + pure + { input: { txHash, txOutId } + , amount: value + } + +-- | Queries address funds via cardano-cli and returns the first UTxO data. +-- Note, that it assumes no output datum and script ref. +queryUtxosViaCardanoCli + :: CardanoNodeInstance + -> Cardano.Types.Address + -> Aff (Array CardanoCliTxOutInfo) +queryUtxosViaCardanoCli { socketPath, testnetMagic } address = + annotateError "queryUtxosViaCardanoCli" do + { stdout } <- execCardanoCli + [ "query" + , "utxo" + , "--socket-path" + , socketPath + , "--testnet-magic" + , show testnetMagic + , "--address" + , Cardano.Types.Address.toBech32 address + ] + let + parsingError utxos (Parsing.ParseError msg pos) = mconcat + [ "Cannot parse UTxOs: " + , show utxos + , " because of " + , msg + , " at " + , show pos + ] + case List.fromFoldable stdout of + List.Cons _ (List.Cons _ utxos) -> + map Array.fromFoldable + <<< liftEither + <<< lmap (error <<< parsingError utxos) + $ for utxos (parseTxOutIgnoringDatums <<< CliUtxo) + _ -> throwError $ error $ "Output is too short " <> show stdout + +execCardanoCli + :: Array String + -> Aff + { stdout :: Array String + , process :: Node.ChildProcess.ChildProcess + } +execCardanoCli params = annotateError "execCardanoCli" do + let cmd = "cardano-cli " <> intercalate " " params + { channels, process } <- Ctl.Internal.Spawn.exec cmd + let + bufferToLines = + map (String.split (String.Pattern "\n") <<< String.trim) + <<< liftEffect + <<< Node.Buffer.toString Node.Encoding.UTF8 + output <- sequential ado + stderr <- parallel + $ map join + <<< traverse bufferToLines + <<< fst + =<< Node.Stream.Aff.readAll channels.stderr + stdout <- parallel + $ map join + $ traverse bufferToLines + <<< fst + =<< Node.Stream.Aff.readAll channels.stdout + in { stderr, stdout } + when (not $ Array.null output.stderr) do + throwError + $ error + $ intercalate "\n" output.stderr + pure { stdout: output.stdout, process } + +-- * Parsing + +parseTxOutputIndex :: Parsing.Parser String UInt +parseTxOutputIndex = parseNatural \n -> + note ("Can't parse Tx output index: " <> n) + $ UInt.fromString n + +parseAsset :: Parsing.Parser String Cardano.Types.Value +parseAsset = do + amount <- parseAmount + Parsing.String.Basic.skipSpaces + parseLovelace amount <|> parseNativeAsset amount + where + parseAmount = parseNatural \n -> + note ("Can't parse asset amount: " <> n) + $ BigNum.fromString n + parseLovelace amount = ado + void $ Parsing.String.string "lovelace" + in Cardano.Types.Value.coinToValue $ wrap amount + parseNativeAsset amount = ado + cs <- parseScriptHash + void $ Parsing.String.char '.' + tn <- parseAssetName + in Contract.Value.singleton cs tn amount + +parseTxHash :: Parsing.Parser String Cardano.Types.TransactionHash +parseTxHash = map wrap + <<< noteParser "Cannot parse tx hash from byte array" + <<< CSL.fromBytes + =<< parseHex + +parseScriptHash :: Parsing.Parser String Cardano.Types.ScriptHash +parseScriptHash = parseHex >>= \bytes -> + map wrap + $ noteParser ("Cannot parse script hash from byte array" <> show bytes) + $ CSL.fromBytes bytes + +parseAssetName :: Parsing.Parser String Cardano.Types.AssetName +parseAssetName = + noteParser "Cannot create asset name from the parsed bytes" + <<< Cardano.Types.AssetName.mkAssetName + =<< parseHex + +makeString :: forall f. Foldable f => f Char -> String +makeString = String.fromCharArray <<< Array.fromFoldable + +parseNatural :: forall n. (String -> Either String n) -> Parsing.Parser String n +parseNatural toNumber = Parsing.liftEither + <<< toNumber + <<< makeString + =<< Parsing.Combinators.many Parsing.String.Basic.digit + +noteParser :: forall s a. String -> Maybe a -> Parsing.Parser s a +noteParser err = Parsing.liftEither <<< note err + +parseHex :: Parsing.Parser String ByteArray +parseHex = + noteParser "Cannot parse hex-encoded byte array" + <<< Data.ByteArray.hexToByteArray + <<< makeString + =<< Parsing.Combinators.many Parsing.String.Basic.hexDigit diff --git a/src/Internal/CardanoCli/QueryHandler.purs b/src/Internal/CardanoCli/QueryHandler.purs new file mode 100644 index 000000000..3ab6b0938 --- /dev/null +++ b/src/Internal/CardanoCli/QueryHandler.purs @@ -0,0 +1,93 @@ +module Internal.CardanoCli.QueryHandler + ( withCardanoCliCompletion + ) where + +import Contract.Prelude + +import Cardano.Types as Cardano.Types +import Cardano.Types.Address (Address) +import Cardano.Types.TransactionInput (TransactionInput) +import Cardano.Types.TransactionOutput (TransactionOutput) +import Contract.ClientError as Contract.ClientError +import Contract.Monad (Contract, ContractEnv) +import Control.Alt ((<|>)) +import Control.Monad.Error.Class (try) +import Control.Monad.Except (ExceptT(ExceptT), runExceptT) +import Control.Monad.Reader (local) +import Ctl.Internal.CardanoCli as CardanoCli +import Data.Bifunctor (bimap) +import Data.Lens (Lens', (%~)) +import Data.Lens.Record (prop) +import Data.Map as Map +import Effect.Exception (Error, message) +import Type.Proxy (Proxy(Proxy)) + +type UtxosAtQuery = + Cardano.Types.Address + -> Aff (Either Contract.ClientError.ClientError Cardano.Types.UtxoMap) + +type GetUtxoByOrefQuery = + TransactionInput + -> Aff (Either Contract.ClientError.ClientError (Maybe TransactionOutput)) + +-- | Adds to the utxosAt results UTxOs found by cardano-cli but not found by the current 'utxosAt' query. +-- UTxOs found by cardano-cli assumed to have no datum or script ref. +withCardanoCliCompletion + :: forall a + . CardanoCli.CardanoNodeInstance + -> Address + -> Contract a + -> Contract a +withCardanoCliCompletion node genesisAddr = + local $ (utxosAtL %~ completeUtxosAt node) >>> + (getUtxoByOrefL %~ completeGetUtxoByOref node genesisAddr) + +utxosAtL :: Lens' ContractEnv UtxosAtQuery +utxosAtL = prop (Proxy :: _ "handle") <<< prop (Proxy :: _ "utxosAt") + +getUtxoByOrefL :: Lens' ContractEnv GetUtxoByOrefQuery +getUtxoByOrefL = prop (Proxy :: _ "handle") <<< prop + (Proxy :: _ "getUtxoByOref") + +-- | Adds to the results UTxOs found by cardano-cli but not found by the given 'utxosAt' query. +-- UTxOs found by cardano-cli assumed to have no datum or script ref. +completeUtxosAt + :: CardanoCli.CardanoNodeInstance + -> UtxosAtQuery + -> UtxosAtQuery +completeUtxosAt node utxosAt address = runExceptT do + let + toCliError :: Error -> Contract.ClientError.ClientError + toCliError = Contract.ClientError.ClientOtherError <<< message + + toUtxoMap :: Array CardanoCli.CardanoCliTxOutInfo -> Cardano.Types.UtxoMap + toUtxoMap = Map.fromFoldable + <<< map (CardanoCli.cardanoCliTxOutInfoToUtxo address) + cardanoCliUtxos <- ExceptT + $ map (bimap toCliError toUtxoMap) + $ try + $ CardanoCli.queryUtxosViaCardanoCli node address + kupoUtxos <- ExceptT $ utxosAt address + pure $ Map.union kupoUtxos cardanoCliUtxos + +-- | Adds to the results UTxOs found by cardano-cli but not found by the given 'getUtxoByOref' query. +-- UTxOs found by cardano-cli assumed to have no datum or script ref. +completeGetUtxoByOref -- FIXME + :: CardanoCli.CardanoNodeInstance + -> Address + -> GetUtxoByOrefQuery + -> GetUtxoByOrefQuery +completeGetUtxoByOref node address getUtxoByOref oref = runExceptT do + let + toCliError :: Error -> Contract.ClientError.ClientError + toCliError = Contract.ClientError.ClientOtherError <<< message + + toUtxoMap :: Array CardanoCli.CardanoCliTxOutInfo -> Cardano.Types.UtxoMap + toUtxoMap = Map.fromFoldable + <<< map (CardanoCli.cardanoCliTxOutInfoToUtxo address) + cardanoCliUtxos <- ExceptT + $ map (bimap toCliError toUtxoMap) + $ try + $ CardanoCli.queryUtxosViaCardanoCli node address + mUtxo <- ExceptT $ getUtxoByOref oref + pure $ mUtxo <|> Map.lookup oref cardanoCliUtxos diff --git a/src/Internal/Contract/QueryHandle.purs b/src/Internal/Contract/QueryHandle.purs index 3d9e665b9..c678c7854 100644 --- a/src/Internal/Contract/QueryHandle.purs +++ b/src/Internal/Contract/QueryHandle.purs @@ -22,7 +22,7 @@ import Ctl.Internal.QueryM.Kupo ( getDatumByHash , getOutputAddressesByTxHash , getScriptByHash - , getTxMetadata + , getTxAuxiliaryData , getUtxoByOref , isTxConfirmed , utxosAt @@ -57,7 +57,7 @@ queryHandleForCtlBackend runQueryM params backend = , getUtxoByOref: runQueryM' <<< Kupo.getUtxoByOref , getOutputAddressesByTxHash: runQueryM' <<< Kupo.getOutputAddressesByTxHash , doesTxExist: runQueryM' <<< map (map isJust) <<< Kupo.isTxConfirmed - , getTxMetadata: runQueryM' <<< Kupo.getTxMetadata + , getTxAuxiliaryData: runQueryM' <<< Kupo.getTxAuxiliaryData , utxosAt: runQueryM' <<< Kupo.utxosAt , getChainTip: Right <$> runQueryM' QueryM.getChainTip , getCurrentEpoch: runQueryM' QueryM.getCurrentEpoch @@ -100,7 +100,7 @@ queryHandleForBlockfrostBackend logParams backend = , getOutputAddressesByTxHash: runBlockfrostServiceM' <<< Blockfrost.getOutputAddressesByTxHash , doesTxExist: runBlockfrostServiceM' <<< Blockfrost.doesTxExist - , getTxMetadata: runBlockfrostServiceM' <<< Blockfrost.getTxMetadata + , getTxAuxiliaryData: runBlockfrostServiceM' <<< Blockfrost.getTxAuxiliaryData , utxosAt: runBlockfrostServiceM' <<< Blockfrost.utxosAt , getChainTip: runBlockfrostServiceM' Blockfrost.getChainTip , getCurrentEpoch: diff --git a/src/Internal/Contract/QueryHandle/Type.purs b/src/Internal/Contract/QueryHandle/Type.purs index 7f8264ab6..10afe6510 100644 --- a/src/Internal/Contract/QueryHandle/Type.purs +++ b/src/Internal/Contract/QueryHandle/Type.purs @@ -6,7 +6,6 @@ module Ctl.Internal.Contract.QueryHandle.Type import Cardano.Types ( Address , DataHash - , GeneralTransactionMetadata , NetworkId , PlutusData , PoolPubKeyHash @@ -19,6 +18,7 @@ import Cardano.Types , TransactionOutput , UtxoMap ) +import Cardano.Types.AuxiliaryData (AuxiliaryData) import Ctl.Internal.Contract.QueryHandle.Error (GetTxMetadataError) import Ctl.Internal.QueryM.Ogmios ( AdditionalUtxoSet @@ -38,9 +38,9 @@ type AffE (a :: Type) = Aff (Either ClientError a) type QueryHandle = { getDatumByHash :: DataHash -> AffE (Maybe PlutusData) , getScriptByHash :: ScriptHash -> AffE (Maybe ScriptRef) - , getTxMetadata :: + , getTxAuxiliaryData :: TransactionHash - -> Aff (Either GetTxMetadataError GeneralTransactionMetadata) + -> Aff (Either GetTxMetadataError AuxiliaryData) , getUtxoByOref :: TransactionInput -> AffE (Maybe TransactionOutput) , getOutputAddressesByTxHash :: TransactionHash -> AffE (Array Address) , doesTxExist :: TransactionHash -> AffE Boolean diff --git a/src/Internal/Plutip/PortCheck.purs b/src/Internal/Plutip/PortCheck.purs deleted file mode 100644 index ca4343128..000000000 --- a/src/Internal/Plutip/PortCheck.purs +++ /dev/null @@ -1,15 +0,0 @@ -module Ctl.Internal.Plutip.PortCheck - ( isPortAvailable - ) where - -import Prelude - -import Control.Promise (Promise, toAffE) -import Data.UInt (UInt, toInt) -import Effect (Effect) -import Effect.Aff (Aff) - -foreign import _isPortAvailable :: Int -> Effect (Promise Boolean) - -isPortAvailable :: UInt -> Aff Boolean -isPortAvailable = toAffE <<< _isPortAvailable <<< toInt diff --git a/src/Internal/Plutip/Server.purs b/src/Internal/Plutip/Server.purs deleted file mode 100644 index 3f0501ba4..000000000 --- a/src/Internal/Plutip/Server.purs +++ /dev/null @@ -1,692 +0,0 @@ -module Ctl.Internal.Plutip.Server - ( checkPlutipServer - , runPlutipContract - , runPlutipTestPlan - , startPlutipCluster - , startPlutipServer - , stopChildProcessWithPort - , stopPlutipCluster - , testPlutipContracts - , withPlutipContractEnv - ) where - -import Prelude - -import Aeson (decodeAeson, encodeAeson, parseJsonStringToAeson, stringifyAeson) -import Affjax (defaultRequest) as Affjax -import Affjax.RequestBody as RequestBody -import Affjax.RequestHeader as Header -import Affjax.ResponseFormat as Affjax.ResponseFormat -import Cardano.Types (NetworkId(MainnetId)) -import Cardano.Types.BigNum as BigNum -import Cardano.Types.PrivateKey (PrivateKey(PrivateKey)) -import Cardano.Wallet.Key (PrivatePaymentKey(PrivatePaymentKey)) -import Contract.Chain (waitNSlots) -import Contract.Config (defaultSynchronizationParams, defaultTimeParams) -import Contract.Monad (Contract, ContractEnv, liftContractM, runContractInEnv) -import Control.Alternative (guard) -import Control.Monad.Error.Class (liftEither, throwError) -import Control.Monad.State (State, execState, modify_) -import Control.Monad.Trans.Class (lift) -import Control.Monad.Writer (censor, execWriterT, tell) -import Ctl.Internal.Affjax (request) as Affjax -import Ctl.Internal.Contract.Monad - ( buildBackend - , getLedgerConstants - , mkQueryHandle - , stopContractEnv - ) -import Ctl.Internal.Contract.QueryBackend (mkCtlBackendParams) -import Ctl.Internal.Helpers ((<>)) -import Ctl.Internal.Logging (Logger, mkLogger, setupLogs) -import Ctl.Internal.Plutip.PortCheck (isPortAvailable) -import Ctl.Internal.Plutip.Spawn - ( ManagedProcess - , NewOutputAction(Success, NoOp) - , OnSignalRef - , cleanupOnSigint - , cleanupTmpDir - , removeOnSignal - , spawn - , stop - ) -import Ctl.Internal.Plutip.Types - ( ClusterStartupParameters - , ClusterStartupRequest(ClusterStartupRequest) - , PlutipConfig - , PrivateKeyResponse(PrivateKeyResponse) - , StartClusterResponse(ClusterStartupSuccess, ClusterStartupFailure) - , StopClusterRequest(StopClusterRequest) - , StopClusterResponse - ) -import Ctl.Internal.Plutip.Utils (tmpdir) -import Ctl.Internal.QueryM.UniqueId (uniqueId) -import Ctl.Internal.Service.Error - ( ClientError(ClientDecodeJsonError, ClientHttpError) - , pprintClientError - ) -import Ctl.Internal.Test.ContractTest - ( ContractTest(ContractTest) - , ContractTestPlan(ContractTestPlan) - , ContractTestPlanHandler - ) -import Ctl.Internal.Test.UtxoDistribution - ( class UtxoDistribution - , InitialUTxODistribution - , InitialUTxOs - , decodeWallets - , encodeDistribution - , keyWallets - , transferFundsFromEnterpriseToBase - ) -import Ctl.Internal.Types.UsedTxOuts (newUsedTxOuts) -import Data.Array as Array -import Data.Bifunctor (lmap) -import Data.Either (Either(Left, Right), either, isLeft) -import Data.Foldable (fold) -import Data.HTTP.Method as Method -import Data.Log.Level (LogLevel) -import Data.Log.Message (Message) -import Data.Maybe (Maybe(Nothing, Just), fromMaybe, maybe) -import Data.Newtype (over, unwrap, wrap) -import Data.Set as Set -import Data.String.CodeUnits (indexOf) as String -import Data.String.Pattern (Pattern(Pattern)) -import Data.Traversable (foldMap, for, for_, sequence_, traverse_) -import Data.Tuple (fst, snd) -import Data.Tuple.Nested (type (/\), (/\)) -import Data.UInt (UInt) -import Data.UInt as UInt -import Effect.Aff (Aff, Milliseconds(Milliseconds), try) -import Effect.Aff (bracket) as Aff -import Effect.Aff.Class (liftAff) -import Effect.Aff.Retry - ( RetryPolicy - , constantDelay - , exponentialBackoff - , limitRetriesByCumulativeDelay - , recovering - ) -import Effect.Class (liftEffect) -import Effect.Exception (error, message, throw) -import Effect.Ref (Ref) -import Effect.Ref as Ref -import Mote (bracket) as Mote -import Mote.Description (Description(Group, Test)) -import Mote.Monad (MoteT(MoteT), mapTest) -import Mote.TestPlanM (TestPlanM) -import Node.ChildProcess (defaultSpawnOptions) -import Node.FS.Sync (exists, mkdir) as FSSync -import Node.Path (FilePath, dirname) -import Partial.Unsafe (unsafePartial) -import Safe.Coerce (coerce) -import Type.Prelude (Proxy(Proxy)) - --- | Run a single `Contract` in Plutip environment. -runPlutipContract - :: forall (distr :: Type) (wallets :: Type) (a :: Type) - . UtxoDistribution distr wallets - => PlutipConfig - -> distr - -> (wallets -> Contract a) - -> Aff a -runPlutipContract cfg distr cont = withPlutipContractEnv cfg distr - \env wallets -> - runContractInEnv env (cont wallets) - --- | Provide a `ContractEnv` connected to Plutip. --- | can be used to run multiple `Contract`s using `runContractInEnv`. -withPlutipContractEnv - :: forall (distr :: Type) (wallets :: Type) (a :: Type) - . UtxoDistribution distr wallets - => PlutipConfig - -> distr - -> (ContractEnv -> wallets -> Aff a) - -> Aff a -withPlutipContractEnv plutipCfg distr cont = do - cleanupRef <- liftEffect $ Ref.new mempty - Aff.bracket - (try $ startPlutipContractEnv plutipCfg distr cleanupRef) - (const $ runCleanup cleanupRef) - $ liftEither >=> \{ env, wallets, printLogs } -> - whenError printLogs (cont env wallets) - --- | Run several `Contract`s in tests in a (single) Plutip environment (plutip-server and cluster, kupo, etc.). --- | NOTE: This uses `MoteT`s bracketing, and thus has the same caveats. --- | Namely, brackets are run for each of the top-level groups and tests --- | inside the bracket. --- | If you wish to only set up Plutip once, ensure all tests that are passed --- | to `testPlutipContracts` are wrapped in a single group. --- | https://github.com/Plutonomicon/cardano-transaction-lib/blob/develop/doc/plutip-testing.md#testing-with-mote -testPlutipContracts - :: PlutipConfig - -> TestPlanM ContractTest Unit - -> TestPlanM (Aff Unit) Unit -testPlutipContracts plutipCfg tp = do - plutipTestPlan <- lift $ execDistribution tp - runPlutipTestPlan plutipCfg plutipTestPlan - --- | Run a `ContractTestPlan` in a (single) Plutip environment. --- | Supports wallet reuse - see docs on sharing wallet state between --- | wallets in `doc/plutip-testing.md`. -runPlutipTestPlan - :: PlutipConfig - -> ContractTestPlan - -> TestPlanM (Aff Unit) Unit -runPlutipTestPlan plutipCfg (ContractTestPlan runContractTestPlan) = do - -- Modify tests to pluck out parts of a single combined distribution - runContractTestPlan \distr tests -> do - cleanupRef <- liftEffect $ Ref.new mempty - -- Sets a single Mote bracket at the top level, it will be run for all - -- immediate tests and groups - bracket (startPlutipContractEnv plutipCfg distr cleanupRef) - (runCleanup cleanupRef) - $ flip mapTest tests \test { env, wallets, printLogs, clearLogs } -> do - whenError printLogs (runContractInEnv env (test wallets)) - clearLogs - where - -- `MoteT`'s bracket doesn't support supplying the constructed resource into - -- the main action, so we use a `Ref` to store and read the result. - bracket - :: forall (a :: Type) (b :: Type) - . Aff a - -> Aff Unit - -> TestPlanM (a -> Aff b) Unit - -> TestPlanM (Aff b) Unit - bracket before' after' act = do - resultRef <- liftEffect $ Ref.new (Left $ error "Plutip not initialized") - let - before = do - res <- try $ before' - liftEffect $ Ref.write res resultRef - pure res - after = const $ after' - Mote.bracket { before, after } $ flip mapTest act \t -> do - result <- liftEffect $ Ref.read resultRef >>= liftEither - t result - -runCleanup :: Ref (Array (Aff Unit)) -> Aff Unit -runCleanup cleanupRef = do - cleanups <- liftEffect $ Ref.read cleanupRef - sequence_ (try <$> cleanups) - --- Similar to `catchError` but preserves the error -whenError :: forall (a :: Type). Aff Unit -> Aff a -> Aff a -whenError whenErrorAction action = do - res <- try action - when (isLeft res) whenErrorAction - liftEither res - --- | Lifts the UTxO distributions of each test out of Mote, into a combined --- | distribution. Adapts the tests to pick their distribution out of the --- | combined distribution. --- | NOTE: Skipped tests still have their distribution generated. --- | This is the current method of constructing all the wallets with required distributions --- | in one go during Plutip startup. -execDistribution :: TestPlanM ContractTest Unit -> Aff ContractTestPlan -execDistribution (MoteT mote) = execWriterT mote <#> go - where - -- Recursively go over the tree of test `Description`s and construct a `ContractTestPlan` callback. - -- When run the `ContractTestPlan` will reconstruct the whole `MoteT` value passed to `execDistribution` - -- via similar writer effects (plus combining distributions) which append test descriptions - -- or wrap them in a group. - go :: Array (Description Aff ContractTest) -> ContractTestPlan - go = flip execState emptyContractTestPlan <<< traverse_ case _ of - Test rm { bracket, label, value: ContractTest runTest } -> - runTest \distr test -> do - addTests distr $ MoteT - (tell [ Test rm { bracket, label, value: test } ]) - Group rm { bracket, label, value } -> do - let ContractTestPlan runGroupPlan = go value - runGroupPlan \distr tests -> - addTests distr $ over MoteT - (censor (pure <<< Group rm <<< { bracket, label, value: _ })) - tests - - -- This function is used by `go` for iteratively adding Mote tests (internally Writer monad actions) - -- to the `ContractTestPlan` in the State monad _and_ for combining UTxO distributions used by tests. - -- Given a distribution and tests (a MoteT value) this runs a `ContractTestPlan`, i.e. passes its - -- stored distribution and tests to our handler, and then makes a new `ContractTestPlan`, but this time - -- storing a tuple of stored and passed distributions and also storing a pair of Mote tests, modifying - -- the previously stored tests to use the first distribution, and the passed tests the second distribution - -- - -- `go` starts at the top of the test tree and step-by-step constructs a big `ContractTestPlan` which - -- stores distributions of all inner tests tupled together and tests from the original test tree, which - -- know how to get their distribution out of the big tuple. - addTests - :: forall (distr :: Type) (wallets :: Type) - . ContractTestPlanHandler distr wallets (State ContractTestPlan Unit) - addTests distr tests = do - modify_ \(ContractTestPlan runContractTestPlan) -> runContractTestPlan - \distr' tests' -> ContractTestPlan \h -> h (distr' /\ distr) do - mapTest (_ <<< fst) tests' - mapTest (_ <<< snd) tests - - -- Start with an empty plan, which passes an empty distribution - -- and an empty array of test `Description`s to the function that - -- will run tests. - emptyContractTestPlan :: ContractTestPlan - emptyContractTestPlan = ContractTestPlan \h -> h unit (pure unit) - --- | Provide a `ContractEnv` connected to Plutip. --- | Can be used to run multiple `Contract`s using `runContractInEnv`. --- | Resources which are allocated in the `Aff` computation must be de-allocated --- | via the `Ref (Array (Aff Unit))` parameter, even if the computation did not --- | succesfully complete. --- Startup is implemented sequentially, rather than with nested `Aff.bracket`, --- to allow non-`Aff` computations to occur between setup and cleanup. -startPlutipContractEnv - :: forall (distr :: Type) (wallets :: Type) - . UtxoDistribution distr wallets - => PlutipConfig - -> distr - -> Ref (Array (Aff Unit)) - -> Aff - { env :: ContractEnv - , wallets :: wallets - , printLogs :: Aff Unit - , clearLogs :: Aff Unit - } -startPlutipContractEnv plutipCfg distr cleanupRef = do - configCheck plutipCfg - tryWithReport startPlutipServer' "Could not start Plutip server" - (ourKey /\ response) <- tryWithReport startPlutipCluster' - "Could not start Plutip cluster" - tryWithReport (startOgmios' response) "Could not start Ogmios" - tryWithReport (startKupo' response) "Could not start Kupo" - { env, printLogs, clearLogs } <- mkContractEnv' - wallets <- mkWallets' env ourKey response - void $ try $ liftEffect do - for_ env.hooks.onClusterStartup \clusterParamsCb -> do - clusterParamsCb - { privateKeys: response.privateKeys <#> unwrap - , nodeSocketPath: response.nodeSocketPath - , nodeConfigPath: response.nodeConfigPath - , privateKeysDirectory: response.keysDirectory - } - pure - { env - , wallets - , printLogs - , clearLogs - } - where - tryWithReport - :: forall (a :: Type) - . Aff a - -> String - -> Aff a - tryWithReport what prefix = do - result <- try what - case result of - Left err -> throwError $ error $ prefix <> ": " <> message err - Right result' -> pure result' - - -- Similar to `Aff.bracket`, except cleanup is pushed onto a stack to be run - -- later. - bracket - :: forall (a :: Type) (b :: Type) - . Aff a - -> (a -> Aff Unit) - -> (a -> Aff b) - -> Aff b - bracket before after action = do - Aff.bracket - before - (\res -> liftEffect $ Ref.modify_ ([ after res ] <> _) cleanupRef) - action - - startPlutipServer' :: Aff Unit - startPlutipServer' = - bracket (startPlutipServer plutipCfg) - (stopChildProcessWithPort plutipCfg.port) - (const $ checkPlutipServer plutipCfg) - - startPlutipCluster' - :: Aff (PrivatePaymentKey /\ ClusterStartupParameters) - startPlutipCluster' = do - let - distrArray = - encodeDistribution $ - ourInitialUtxos (encodeDistribution distr) /\ - distr - for_ distrArray $ traverse_ \n -> when (n < BigNum.fromInt 1_000_000) do - liftEffect $ throw $ "UTxO is too low: " <> BigNum.toString n <> - ", must be at least 1_000_000 Lovelace" - bracket - (startPlutipCluster plutipCfg distrArray) - (const $ void $ stopPlutipCluster plutipCfg) - pure - - startOgmios' :: ClusterStartupParameters -> Aff Unit - startOgmios' response = - bracket (startOgmios plutipCfg response) - (stopChildProcessWithPort plutipCfg.ogmiosConfig.port) - (const $ pure unit) - - startKupo' :: ClusterStartupParameters -> Aff Unit - startKupo' response = - bracket (startKupo plutipCfg response) - (stopChildProcessWithPortAndRemoveOnSignal plutipCfg.kupoConfig.port) - \(process /\ workdir /\ _) -> do - liftEffect $ cleanupTmpDir process workdir - - mkWallets' - :: ContractEnv - -> PrivatePaymentKey - -> ClusterStartupParameters - -> Aff wallets - mkWallets' env ourKey response = do - runContractInEnv - env { customLogger = Just (\_ _ -> pure unit) } - do - wallets <- - liftContractM - "Impossible happened: could not decode wallets. Please report as bug" - $ decodeWallets distr (coerce response.privateKeys) - let walletsArray = keyWallets (Proxy :: Proxy distr) wallets - void $ waitNSlots BigNum.one - transferFundsFromEnterpriseToBase ourKey walletsArray - pure wallets - - mkContractEnv' - :: Aff - { env :: ContractEnv - , printLogs :: Aff Unit - , clearLogs :: Aff Unit - } - mkContractEnv' | plutipCfg.suppressLogs = do - -- if logs should be suppressed, setup the machinery and continue with - -- the bracket - { addLogEntry, suppressedLogger, printLogs, clearLogs } <- - liftEffect $ setupLogs plutipCfg.logLevel plutipCfg.customLogger - let - configLogger = Just $ map liftEffect <<< addLogEntry - - bracket - ( mkClusterContractEnv - plutipCfg { customLogger = configLogger } - suppressedLogger - configLogger - ) - stopContractEnv - \env -> pure - { env - , printLogs: liftEffect printLogs - , clearLogs: liftEffect clearLogs - } - mkContractEnv' = - -- otherwise, proceed with the env setup and provide a normal logger - bracket - ( mkClusterContractEnv plutipCfg - (mkLogger plutipCfg.logLevel plutipCfg.customLogger) - plutipCfg.customLogger - ) - stopContractEnv - \env -> pure - { env - , printLogs: pure unit - , clearLogs: pure unit - } - --- | Throw an exception if `PlutipConfig` contains ports that are occupied. -configCheck :: PlutipConfig -> Aff Unit -configCheck cfg = do - let - services :: Array (UInt /\ String) - services = - [ cfg.port /\ "plutip-server" - , cfg.ogmiosConfig.port /\ "ogmios" - , cfg.kupoConfig.port /\ "kupo" - ] - totalDelay = 10000.00 - retryPolicy = limitRetriesByCumulativeDelay (Milliseconds totalDelay) $ - exponentialBackoff (Milliseconds 100.0) - recovering retryPolicy [ \_ _ -> pure true ] \_ -> do - occupiedServices <- Array.catMaybes <$> for services \service@(port /\ _) -> - do - isPortAvailable port <#> \isAvailable -> Just service <* guard - (not isAvailable) - unless (Array.null occupiedServices) do - liftEffect $ throw $ - "Unable to run the following services, because the ports are occupied:\ - \\n" <> foldMap printServiceEntry occupiedServices - where - printServiceEntry :: UInt /\ String -> String - printServiceEntry (port /\ name) = - "- " <> name <> " (port: " <> show (UInt.toInt port) <> ")\n" - --- | Start the plutip cluster, initializing the state with the given --- | UTxO distribution. Also initializes an extra payment key (aka --- | `ourKey`) with some UTxOs for use with further plutip --- | setup. `ourKey` has funds proportional to the total amount of the --- | UTxOs in the passed distribution, so it can be used to handle --- | transaction fees. -startPlutipCluster - :: PlutipConfig - -> InitialUTxODistribution - -> Aff (PrivatePaymentKey /\ ClusterStartupParameters) -startPlutipCluster cfg keysToGenerate = do - let - url = mkServerEndpointUrl cfg "start" - -- TODO: Non-default values for `slotLength` and `epochSize` break staking - -- rewards, see https://github.com/mlabs-haskell/plutip/issues/149 - epochSize = fromMaybe (UInt.fromInt 80) cfg.clusterConfig.epochSize - res <- do - response <- liftAff - ( Affjax.request - Affjax.defaultRequest - { content = Just - $ RequestBody.String - $ stringifyAeson - $ encodeAeson - $ ClusterStartupRequest - { keysToGenerate - , epochSize - , slotLength: cfg.clusterConfig.slotLength - , maxTxSize: cfg.clusterConfig.maxTxSize - , raiseExUnitsToMax: cfg.clusterConfig.raiseExUnitsToMax - } - , responseFormat = Affjax.ResponseFormat.string - , headers = [ Header.ContentType (wrap "application/json") ] - , url = url - , method = Left Method.POST - } - ) - pure $ response # either - (Left <<< ClientHttpError) - \{ body } -> lmap (ClientDecodeJsonError body) - $ (decodeAeson <=< parseJsonStringToAeson) body - either (liftEffect <<< throw <<< pprintClientError) pure res >>= - case _ of - ClusterStartupFailure reason -> do - liftEffect $ throw $ - "Failed to start up cluster. Reason: " <> show reason - ClusterStartupSuccess response@{ privateKeys } -> - case Array.uncons privateKeys of - Nothing -> - liftEffect $ throw $ - "Impossible happened: insufficient private keys provided by plutip. Please report as bug." - Just { head: PrivateKeyResponse ourKey, tail } -> - pure $ PrivatePaymentKey ourKey /\ response { privateKeys = tail } - --- | Calculate the initial UTxOs needed for `ourKey` to cover --- | transaction costs for the given initial distribution -ourInitialUtxos :: InitialUTxODistribution -> InitialUTxOs -ourInitialUtxos utxoDistribution = - let - total = Array.foldr (\e acc -> unsafePartial $ fold e # append acc) - BigNum.zero - utxoDistribution - in - [ -- Take the total value of the UTxOs and add some extra on top - -- of it to cover the possible transaction fees. Also make sure - -- we don't request a 0 ada UTxO - unsafePartial $ append total (BigNum.fromInt 1_000_000) - ] - -stopPlutipCluster :: PlutipConfig -> Aff StopClusterResponse -stopPlutipCluster cfg = do - let url = mkServerEndpointUrl cfg "stop" - res <- do - response <- liftAff - ( Affjax.request - Affjax.defaultRequest - { content = Just - $ RequestBody.String - $ stringifyAeson - $ encodeAeson - $ StopClusterRequest - , responseFormat = Affjax.ResponseFormat.string - , headers = [ Header.ContentType (wrap "application/json") ] - , url = url - , method = Left Method.POST - } - ) - pure $ response # either - (Left <<< ClientHttpError) - \{ body } -> lmap (ClientDecodeJsonError body) - $ (decodeAeson <=< parseJsonStringToAeson) - body - either (liftEffect <<< throw <<< show) pure res - -startOgmios :: PlutipConfig -> ClusterStartupParameters -> Aff ManagedProcess -startOgmios cfg params = do - spawn "ogmios" ogmiosArgs defaultSpawnOptions - $ Just - $ String.indexOf (Pattern "networkParameters") - >>> maybe NoOp (const Success) - where - ogmiosArgs :: Array String - ogmiosArgs = - [ "--host" - , cfg.ogmiosConfig.host - , "--port" - , UInt.toString cfg.ogmiosConfig.port - , "--node-socket" - , params.nodeSocketPath - , "--node-config" - , params.nodeConfigPath - , "--include-transaction-cbor" - ] - -startKupo - :: PlutipConfig - -> ClusterStartupParameters - -> Aff (ManagedProcess /\ String /\ OnSignalRef) -startKupo cfg params = do - tmpDir <- liftEffect tmpdir - randomStr <- liftEffect $ uniqueId "" - let - workdir = tmpDir <> randomStr <> "-kupo-db" - testClusterDir = (dirname <<< dirname) params.nodeConfigPath - liftEffect do - workdirExists <- FSSync.exists workdir - unless workdirExists (FSSync.mkdir workdir) - childProcess <- spawnKupoProcess workdir - -- here we also set the SIGINT handler for the whole process - sig <- liftEffect $ cleanupOnSigint workdir testClusterDir - pure (childProcess /\ workdir /\ sig) - where - spawnKupoProcess :: FilePath -> Aff ManagedProcess - spawnKupoProcess workdir = - spawn "kupo" (kupoArgs workdir) defaultSpawnOptions $ - Just (String.indexOf outputString >>> maybe NoOp (const Success)) - where - outputString :: Pattern - outputString = Pattern "ConfigurationCheckpointsForIntersection" - - kupoArgs :: FilePath -> Array String - kupoArgs workdir = - [ "--match" - , "*/*" - , "--since" - , "origin" - , "--workdir" - , workdir - , "--host" - , cfg.kupoConfig.host - , "--port" - , UInt.toString cfg.kupoConfig.port - , "--node-socket" - , params.nodeSocketPath - , "--node-config" - , params.nodeConfigPath - ] - -startPlutipServer :: PlutipConfig -> Aff ManagedProcess -startPlutipServer cfg = do - spawn "plutip-server" [ "-p", UInt.toString cfg.port ] - defaultSpawnOptions - Nothing - -checkPlutipServer :: PlutipConfig -> Aff Unit -checkPlutipServer cfg = do - -- We are trying to call stopPlutipCluster endpoint to ensure that - -- `plutip-server` has started. - void - $ recovering defaultRetryPolicy - ([ \_ _ -> pure true ]) - $ const - $ stopPlutipCluster cfg - --- | Kill a process and wait for it to stop listening on a specific port. -stopChildProcessWithPort :: UInt -> ManagedProcess -> Aff Unit -stopChildProcessWithPort port childProcess = do - stop childProcess - void $ recovering defaultRetryPolicy ([ \_ _ -> pure true ]) - \_ -> do - isAvailable <- isPortAvailable port - unless isAvailable do - liftEffect $ throw "retry" - -stopChildProcessWithPortAndRemoveOnSignal - :: UInt -> (ManagedProcess /\ String /\ OnSignalRef) -> Aff Unit -stopChildProcessWithPortAndRemoveOnSignal port (childProcess /\ _ /\ sig) = do - stop $ childProcess - void $ recovering defaultRetryPolicy ([ \_ _ -> pure true ]) - \_ -> do - isAvailable <- isPortAvailable port - unless isAvailable do - liftEffect $ throw "retry" - liftEffect $ removeOnSignal sig - -mkClusterContractEnv - :: PlutipConfig - -> Logger - -> Maybe (LogLevel -> Message -> Aff Unit) - -> Aff ContractEnv -mkClusterContractEnv plutipCfg logger customLogger = do - usedTxOuts <- newUsedTxOuts - backend <- buildBackend logger $ mkCtlBackendParams - { ogmiosConfig: plutipCfg.ogmiosConfig - , kupoConfig: plutipCfg.kupoConfig - } - ledgerConstants <- getLedgerConstants - plutipCfg { customLogger = customLogger } - backend - backendKnownTxs <- liftEffect $ Ref.new Set.empty - pure - { backend - , handle: mkQueryHandle plutipCfg backend - , networkId: MainnetId - , logLevel: plutipCfg.logLevel - , customLogger: customLogger - , suppressLogs: plutipCfg.suppressLogs - , hooks: plutipCfg.hooks - , wallet: Nothing - , usedTxOuts - , ledgerConstants - -- timeParams have no effect when KeyWallet is used - , timeParams: defaultTimeParams - , synchronizationParams: defaultSynchronizationParams - , knownTxs: { backend: backendKnownTxs } - } - -defaultRetryPolicy :: RetryPolicy -defaultRetryPolicy = limitRetriesByCumulativeDelay (Milliseconds 3000.00) $ - constantDelay (Milliseconds 100.0) - -mkServerEndpointUrl :: PlutipConfig -> String -> String -mkServerEndpointUrl cfg path = do - "http://" <> cfg.host <> ":" <> UInt.toString cfg.port <> path diff --git a/src/Internal/Plutip/Spawn.js b/src/Internal/Plutip/Spawn.js deleted file mode 100644 index 93cba32e6..000000000 --- a/src/Internal/Plutip/Spawn.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -export function clearLineHandler(readline) { - return () => { - readline.removeAllListeners("line"); - }; -} - -import fs from "fs"; - -export function _rmdirSync(path) { - return () => fs.rmSync(path, { recursive: true }); -} - -export function removeOnSignal({ signal, callback }) { - return () => { - process.removeListener(signal, callback); - }; -} - -export function onSignalImpl(signal) { - return callback => () => { - process.on(signal, callback); - return { signal, callback }; - }; -} diff --git a/src/Internal/Plutip/Types.purs b/src/Internal/Plutip/Types.purs deleted file mode 100644 index 45f15943e..000000000 --- a/src/Internal/Plutip/Types.purs +++ /dev/null @@ -1,196 +0,0 @@ -module Ctl.Internal.Plutip.Types - ( ClusterStartupParameters - , ErrorMessage - , FilePath - , PlutipConfig - , ClusterStartupRequest(ClusterStartupRequest) - , PrivateKeyResponse(PrivateKeyResponse) - , ClusterStartupFailureReason - ( ClusterIsRunningAlready - , NegativeLovelaces - , NodeConfigNotFound - ) - , StartClusterResponse - ( ClusterStartupFailure - , ClusterStartupSuccess - ) - , StopClusterRequest(StopClusterRequest) - , StopClusterResponse(StopClusterSuccess, StopClusterFailure) - ) where - -import Prelude - -import Aeson - ( class DecodeAeson - , class EncodeAeson - , JsonDecodeError(TypeMismatch, UnexpectedValue) - , decodeAeson - , encodeAeson - , finiteNumber - , toStringifiedNumbersJson - , (.:) - ) -import Cardano.Types.PrivateKey (PrivateKey(PrivateKey)) -import Cardano.Types.PrivateKey as PrivateKey -import Cardano.Types.RawBytes (RawBytes(RawBytes)) -import Ctl.Internal.Contract.Hooks (Hooks) -import Ctl.Internal.Helpers (unsafeFromJust) -import Ctl.Internal.ServerConfig (ServerConfig) -import Ctl.Internal.Test.UtxoDistribution (InitialUTxODistribution) -import Data.ByteArray (hexToByteArray) -import Data.Either (Either(Left), note) -import Data.Generic.Rep (class Generic) -import Data.Log.Level (LogLevel) -import Data.Log.Message (Message) -import Data.Maybe (Maybe) -import Data.Newtype (class Newtype) -import Data.Show.Generic (genericShow) -import Data.Time.Duration (Seconds(Seconds)) -import Data.UInt (UInt) -import Effect.Aff (Aff) - --- | A config that is used to run tests on Plutip clusters. --- | Note that the test suite starts the services on the specified ports. --- | It does not expect them to be running. -type PlutipConfig = - { host :: String - , port :: UInt - , logLevel :: LogLevel - -- Server configs are used to deploy the corresponding services: - , ogmiosConfig :: ServerConfig - , kupoConfig :: ServerConfig - , customLogger :: Maybe (LogLevel -> Message -> Aff Unit) - , suppressLogs :: Boolean - , hooks :: Hooks - , clusterConfig :: - { slotLength :: Seconds - , epochSize :: Maybe UInt - , maxTxSize :: Maybe UInt - , raiseExUnitsToMax :: Boolean - } - } - -type FilePath = String - -type ErrorMessage = String - -newtype ClusterStartupRequest = ClusterStartupRequest - { keysToGenerate :: InitialUTxODistribution - , epochSize :: UInt - , slotLength :: Seconds - , maxTxSize :: Maybe UInt - , raiseExUnitsToMax :: Boolean - } - -instance EncodeAeson ClusterStartupRequest where - encodeAeson - ( ClusterStartupRequest - { keysToGenerate - , epochSize - , slotLength: Seconds slotLength - , maxTxSize - , raiseExUnitsToMax - } - ) = encodeAeson - { keysToGenerate - , epochSize - , slotLength: unsafeFromJust "instance EncodeAeson ClusterStartupRequest" $ - finiteNumber slotLength - , maxTxSize - , raiseExUnitsToMax - } - -newtype PrivateKeyResponse = PrivateKeyResponse PrivateKey - -derive instance Newtype PrivateKeyResponse _ -derive instance Generic PrivateKeyResponse _ - -instance Show PrivateKeyResponse where - show _ = "(PrivateKeyResponse \"\")" - -instance DecodeAeson PrivateKeyResponse where - decodeAeson json = do - cborStr <- decodeAeson json - cborBytes <- note err $ hexToByteArray cborStr - PrivateKeyResponse <$> note err - (PrivateKey.fromRawBytes (RawBytes cborBytes)) - where - err :: JsonDecodeError - err = TypeMismatch "PrivateKey" - -type ClusterStartupParameters = - { privateKeys :: Array PrivateKeyResponse - , nodeSocketPath :: FilePath - , nodeConfigPath :: FilePath - , keysDirectory :: FilePath - } - -data ClusterStartupFailureReason - = ClusterIsRunningAlready - | NegativeLovelaces - | NodeConfigNotFound - -derive instance Generic ClusterStartupFailureReason _ - -instance Show ClusterStartupFailureReason where - show = genericShow - -instance DecodeAeson ClusterStartupFailureReason where - decodeAeson aeson = do - decodeAeson aeson >>= case _ of - "ClusterIsRunningAlready" -> do - pure ClusterIsRunningAlready - "NegativeLovelaces" -> pure NegativeLovelaces - "NodeConfigNotFound" -> pure NodeConfigNotFound - _ -> do - Left (UnexpectedValue (toStringifiedNumbersJson aeson)) - -data StartClusterResponse - = ClusterStartupFailure ClusterStartupFailureReason - | ClusterStartupSuccess ClusterStartupParameters - -derive instance Generic StartClusterResponse _ - -instance Show StartClusterResponse where - show = genericShow - -instance DecodeAeson StartClusterResponse where - decodeAeson aeson = do - obj <- decodeAeson aeson - obj .: "tag" >>= case _ of - "ClusterStartupSuccess" -> do - contents <- obj .: "contents" - ClusterStartupSuccess <$> decodeAeson contents - "ClusterStartupFailure" -> do - failure <- obj .: "contents" - ClusterStartupFailure <$> decodeAeson failure - _ -> do - Left (UnexpectedValue (toStringifiedNumbersJson aeson)) - -data StopClusterRequest = StopClusterRequest - -derive instance Generic StopClusterRequest _ - -instance Show StopClusterRequest where - show = genericShow - -instance EncodeAeson StopClusterRequest where - encodeAeson _ = encodeAeson ([] :: Array Int) - -data StopClusterResponse = StopClusterSuccess | StopClusterFailure ErrorMessage - -derive instance Generic StopClusterResponse _ - -instance Show StopClusterResponse where - show = genericShow - -instance DecodeAeson StopClusterResponse where - decodeAeson aeson = do - obj <- decodeAeson aeson - obj .: "tag" >>= case _ of - "StopClusterSuccess" -> pure StopClusterSuccess - "StopClusterFailure" -> do - failure <- obj .: "contents" - StopClusterFailure <$> decodeAeson failure - _ -> do - Left (UnexpectedValue (toStringifiedNumbersJson aeson)) diff --git a/src/Internal/Plutip/Utils.js b/src/Internal/Plutip/Utils.js deleted file mode 100644 index ab594520c..000000000 --- a/src/Internal/Plutip/Utils.js +++ /dev/null @@ -1,5 +0,0 @@ -import os from "os"; - -export function tmpdir() { - return os.tmpdir(); -} diff --git a/src/Internal/Plutip/Utils.purs b/src/Internal/Plutip/Utils.purs deleted file mode 100644 index 610390fab..000000000 --- a/src/Internal/Plutip/Utils.purs +++ /dev/null @@ -1,9 +0,0 @@ -module Ctl.Internal.Plutip.Utils - ( tmpdir - ) where - -import Effect (Effect) - --- TODO: remove this function when PS bindings for os.tmpdir are available. --- https://github.com/Plutonomicon/cardano-transaction-lib/issues/726 -foreign import tmpdir :: Effect String diff --git a/src/Internal/ProcessConstraints.purs b/src/Internal/ProcessConstraints.purs index c1cf2434f..89a5f1854 100644 --- a/src/Internal/ProcessConstraints.purs +++ b/src/Internal/ProcessConstraints.purs @@ -183,7 +183,8 @@ import Data.Map as Map import Data.Maybe (Maybe(Nothing, Just), fromMaybe, maybe) import Data.Newtype (unwrap, wrap) import Data.Set as Set -import Data.Traversable (for, traverse_) +import Data.Traversable (traverse_) +import Data.Tuple (uncurry) import Data.Tuple.Nested (type (/\), (/\)) import Effect (Effect) import Effect.Aff.Class (liftAff) @@ -640,11 +641,6 @@ processConstraint MustPayToPubKeyAddress pkh skh mDatum scriptRef amount -> do networkId <- getNetworkId runExceptT do - -- If non-inline datum is presented, add it to 'datumWitnesses' and - -- Array of datums. - datum <- for mDatum \(dat /\ datp) -> do - when (datp == DatumWitness) $ lift $ addDatum dat - pure $ outputDatum dat datp let address = case skh of Just skh' -> BaseAddress @@ -659,7 +655,7 @@ processConstraint txOut = TransactionOutput { address , amount - , datum + , datum: uncurry outputDatum <$> mDatum , scriptRef: scriptRef } _cpsTransaction <<< _body <<< _outputs %= Array.(:) txOut @@ -668,7 +664,6 @@ processConstraint networkId <- getNetworkId runExceptT do let - datum' = outputDatum dat datp txOut = TransactionOutput { address: case mbCredential of Nothing -> EnterpriseAddress @@ -681,11 +676,9 @@ processConstraint , stakeCredential: wrap cred } , amount - , datum: Just datum' + , datum: Just $ outputDatum dat datp , scriptRef: scriptRef } - -- Note we don't `addDatum` as this included as part of `mustPayToScript` - -- constraint already. _cpsTransaction <<< _body <<< _outputs %= Array.(:) txOut _valueSpentBalancesOutputs <>= provideValue amount MustPayToNativeScript nsh mbCredential amount -> do diff --git a/src/Internal/QueryM/Kupo.purs b/src/Internal/QueryM/Kupo.purs index d4bbe9d47..3a5eb589b 100644 --- a/src/Internal/QueryM/Kupo.purs +++ b/src/Internal/QueryM/Kupo.purs @@ -1,7 +1,7 @@ module Ctl.Internal.QueryM.Kupo ( getDatumByHash , getScriptByHash - , getTxMetadata + , getTxAuxiliaryData , getUtxoByOref , getOutputAddressesByTxHash , isTxConfirmed @@ -30,9 +30,10 @@ import Cardano.Types ( Address , BigNum , DataHash - , GeneralTransactionMetadata + , Language(PlutusV3) , MultiAsset , PlutusData + , PlutusScript(PlutusScript) , ScriptHash , Slot , TransactionHash(TransactionHash) @@ -43,6 +44,7 @@ import Cardano.Types ) import Cardano.Types.Address as Address import Cardano.Types.AssetName (mkAssetName) +import Cardano.Types.AuxiliaryData (AuxiliaryData) import Cardano.Types.BigNum (toString) as BigNum import Cardano.Types.CborBytes (CborBytes) import Cardano.Types.MultiAsset as MultiAsset @@ -78,7 +80,7 @@ import Data.Generic.Rep (class Generic) import Data.HTTP.Method (Method(GET)) import Data.Lens (_Right, to, (^?)) import Data.Map (Map) -import Data.Map (fromFoldable, isEmpty, lookup, values) as Map +import Data.Map (fromFoldable, lookup, values) as Map import Data.Maybe (Maybe(Just, Nothing), fromMaybe) import Data.Newtype (class Newtype, unwrap, wrap) import Data.Show.Generic (genericShow) @@ -170,10 +172,10 @@ isTxConfirmedAff config txHash = runExceptT do -- Take the first utxo's slot to give the transactions slot pure $ uncons utxos <#> _.head >>> unwrapKupoUtxoSlot -getTxMetadata +getTxAuxiliaryData :: TransactionHash - -> QueryM (Either GetTxMetadataError GeneralTransactionMetadata) -getTxMetadata txHash = runExceptT do + -> QueryM (Either GetTxMetadataError AuxiliaryData) +getTxAuxiliaryData txHash = runExceptT do ExceptT (lmap GetTxMetadataClientError <$> isTxConfirmed txHash) >>= case _ of Nothing -> throwError GetTxMetadataTxNotFoundError Just slot -> do @@ -181,16 +183,17 @@ getTxMetadata txHash = runExceptT do endpoint = "/metadata/" <> BigNum.toString (unwrap slot) <> "?transaction_id=" <> txHashToHex txHash - kupoMetadata <- ExceptT $ + kupoAuxData <- ExceptT $ lmap GetTxMetadataClientError <<< handleAffjaxResponse <$> kupoGetRequest endpoint - case unwrapKupoMetadata kupoMetadata of + case unwrapKupoAuxData kupoAuxData of Nothing -> throwError GetTxMetadataMetadataEmptyOrMissingError - Just metadata - | Map.isEmpty (unwrap metadata) -> throwError - GetTxMetadataMetadataEmptyOrMissingError - | otherwise -> pure metadata + Just auxData + | unwrap auxData == mempty -> + throwError GetTxMetadataMetadataEmptyOrMissingError + | otherwise -> + pure auxData -------------------------------------------------------------------------------- -- `utxosAt` response parsing @@ -381,7 +384,11 @@ instance DecodeAeson KupoDatum where -- `getScriptByHash` response parsing -------------------------------------------------------------------------------- -data KupoScriptLanguage = NativeScript | PlutusV1Script | PlutusV2Script +data KupoScriptLanguage + = NativeScript + | PlutusV1Script + | PlutusV2Script + | PlutusV3Script derive instance Generic KupoScriptLanguage _ @@ -393,9 +400,10 @@ instance DecodeAeson KupoScriptLanguage where "native" -> pure NativeScript "plutus:v1" -> pure PlutusV1Script "plutus:v2" -> pure PlutusV2Script + "plutus:v3" -> pure PlutusV3Script invalid -> Left $ TypeMismatch $ - "language: expected 'native' or 'plutus:v{1|2}', got: " <> invalid + "language: expected 'native' or 'plutus:v{1|2|3}', got: " <> invalid newtype KupoScriptRef = KupoScriptRef (Maybe ScriptRef) @@ -422,6 +430,10 @@ instance DecodeAeson KupoScriptRef where PlutusV2Script -> pure $ PlutusScriptRef $ PlutusScript.plutusV2Script $ wrap $ unwrap scriptBytes + PlutusV3Script -> + -- TODO: add plutusV3Script to Cardano.Types.PlutusScript + pure $ PlutusScriptRef $ PlutusScript $ unwrap scriptBytes /\ + PlutusV3 ------------------------------------------------------------------------------- -- `isTxConfirmed` response parsing @@ -445,28 +457,28 @@ unwrapKupoUtxoSlot :: KupoUtxoSlot -> Slot unwrapKupoUtxoSlot (KupoUtxoSlot slot) = slot -------------------------------------------------------------------------------- --- `getTxMetadata` reponse parsing +-- `getTxAuxiliaryData` response parsing -------------------------------------------------------------------------------- -newtype KupoMetadata = KupoMetadata (Maybe GeneralTransactionMetadata) +newtype KupoAuxiliaryData = KupoAuxiliaryData (Maybe AuxiliaryData) -derive instance Generic KupoMetadata _ -derive instance Eq KupoMetadata +derive instance Generic KupoAuxiliaryData _ +derive instance Eq KupoAuxiliaryData -instance Show KupoMetadata where +instance Show KupoAuxiliaryData where show = genericShow -instance DecodeAeson KupoMetadata where +instance DecodeAeson KupoAuxiliaryData where decodeAeson = decodeAeson >=> case _ of [ { raw: cbor } :: { raw :: CborBytes } ] -> do - metadata <- note (TypeMismatch "Hexadecimal encoded Metadata") $ + auxData <- note (TypeMismatch "Hexadecimal encoded AuxiliaryData") $ decodeCbor cbor - pure $ KupoMetadata $ Just $ metadata - [] -> Right $ KupoMetadata Nothing + pure $ KupoAuxiliaryData $ Just auxData + [] -> Right $ KupoAuxiliaryData Nothing _ -> Left $ TypeMismatch "Singleton or Empty Array" -unwrapKupoMetadata :: KupoMetadata -> Maybe GeneralTransactionMetadata -unwrapKupoMetadata (KupoMetadata mbMetadata) = mbMetadata +unwrapKupoAuxData :: KupoAuxiliaryData -> Maybe AuxiliaryData +unwrapKupoAuxData (KupoAuxiliaryData mAuxData) = mAuxData -------------------------------------------------------------------------------- -- Helpers diff --git a/src/Internal/QueryM/Ogmios.purs b/src/Internal/QueryM/Ogmios.purs index 8d1cb2eb8..4c1543a71 100644 --- a/src/Internal/QueryM/Ogmios.purs +++ b/src/Internal/QueryM/Ogmios.purs @@ -65,12 +65,9 @@ module Ctl.Internal.QueryM.Ogmios , releaseMempoolCall , submitTxCall , submitSuccessPartialResp - , slotLengthFactor , parseIpv6String , rationalToSubcoin , showRedeemerPointer - , decodeRedeemerPointer - , redeemerPtrTypeMismatch ) where import Prelude @@ -99,7 +96,7 @@ import Cardano.Serialization.Lib (fromBytes, ipv4_new) import Cardano.Types ( Bech32String , BigNum(BigNum) - , Language(PlutusV1, PlutusV2) + , Language(PlutusV1, PlutusV2, PlutusV3) , RedeemerTag , VRFKeyHash(VRFKeyHash) ) @@ -126,10 +123,11 @@ import Cardano.Types.NativeScript ) ) import Cardano.Types.PlutusScript (PlutusScript(PlutusScript)) -import Cardano.Types.PlutusScript as PlutusScript import Cardano.Types.PoolMetadata (PoolMetadata(PoolMetadata)) import Cardano.Types.PoolPubKeyHash (PoolPubKeyHash) -import Cardano.Types.RedeemerTag (RedeemerTag(Spend, Mint, Cert, Reward)) as RedeemerTag +import Cardano.Types.RedeemerTag + ( RedeemerTag(Spend, Mint, Cert, Reward, Vote, Propose) + ) as RedeemerTag import Cardano.Types.Relay ( Relay(SingleHostAddr, SingleHostName, MultiHostName) ) @@ -158,6 +156,7 @@ import Ctl.Internal.Types.EraSummaries ( EraSummaries(EraSummaries) , EraSummary(EraSummary) , EraSummaryParameters(EraSummaryParameters) + , EraSummaryTime(EraSummaryTime) ) import Ctl.Internal.Types.ProtocolParameters ( ProtocolParameters(ProtocolParameters) @@ -185,7 +184,7 @@ import Data.Map as Map import Data.Maybe (Maybe(Nothing, Just), fromMaybe, maybe) import Data.Newtype (class Newtype, unwrap, wrap) import Data.Show.Generic (genericShow) -import Data.String (Pattern(Pattern), Replacement(Replacement), split) +import Data.String (Pattern(Pattern), Replacement(Replacement)) import Data.String (replaceAll) as String import Data.String.Common (split) as String import Data.String.Utils as StringUtils @@ -514,15 +513,23 @@ instance DecodeAeson OgmiosEraSummaries where -- in "start" "end" fields and "slotLength". decodeAeson = aesonArray (map (wrap <<< wrap) <<< traverse decodeEraSummary) where + decodeEraSummaryTime :: Aeson -> Either JsonDecodeError EraSummaryTime + decodeEraSummaryTime = aesonObject \obj -> do + time <- flip getField "seconds" =<< getField obj "time" + slot <- getField obj "slot" + epoch <- getField obj "epoch" + pure $ wrap { time, slot, epoch } + decodeEraSummary :: Aeson -> Either JsonDecodeError EraSummary decodeEraSummary = aesonObject \o -> do - start <- getField o "start" + start <- decodeEraSummaryTime =<< getField o "start" -- The field "end" is required by Ogmios API, but it can optionally return -- 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 <$> decodeAeson end' + end <- + if isNull end' then pure Nothing else Just <$> decodeEraSummaryTime end' parameters <- decodeEraSummaryParameters =<< getField o "parameters" pure $ wrap { start, end, parameters } @@ -530,10 +537,7 @@ instance DecodeAeson OgmiosEraSummaries where :: Object Aeson -> Either JsonDecodeError EraSummaryParameters decodeEraSummaryParameters o = do epochLength <- getField o "epochLength" - slotLength <- wrap <$> - ( (*) slotLengthFactor <$> - (flip getField "seconds" =<< getField o "slotLength") - ) + slotLength <- flip getField "milliseconds" =<< getField o "slotLength" safeZone <- fromMaybe zero <$> getField o "safeZone" pure $ wrap { epochLength, slotLength, safeZone } @@ -541,11 +545,15 @@ instance EncodeAeson OgmiosEraSummaries where encodeAeson (OgmiosEraSummaries (EraSummaries eraSummaries)) = fromArray $ map encodeEraSummary eraSummaries where + encodeEraSummaryTime :: EraSummaryTime -> Aeson + encodeEraSummaryTime (EraSummaryTime { time, slot, epoch }) = + encodeAeson { "time": { "seconds": time }, "slot": slot, "epoch": epoch } + encodeEraSummary :: EraSummary -> Aeson encodeEraSummary (EraSummary { start, end, parameters }) = encodeAeson - { "start": start - , "end": end + { "start": encodeEraSummaryTime start + , "end": encodeEraSummaryTime <$> end , "parameters": encodeEraSummaryParameters parameters } @@ -553,15 +561,10 @@ instance EncodeAeson OgmiosEraSummaries where encodeEraSummaryParameters (EraSummaryParameters params) = encodeAeson { "epochLength": params.epochLength - , "slotLength": { "seconds": params.slotLength } + , "slotLength": { "milliseconds": params.slotLength } , "safeZone": params.safeZone } --- Ogmios returns `slotLength` in seconds, and we use milliseconds, --- so we need to convert between them. -slotLengthFactor :: Number -slotLengthFactor = 1000.0 - instance DecodeOgmios OgmiosEraSummaries where decodeOgmios = decodeResult decodeAeson @@ -644,8 +647,10 @@ instance DecodeOgmios PoolParametersR where decodePoolParameters :: Object Aeson -> Either JsonDecodeError PoolParameters decodePoolParameters objParams = do vrfKeyhash <- decodeVRFKeyHash =<< objParams .: "vrfVerificationKeyHash" - pledge <- objParams .: "pledge" >>= aesonObject (\obj -> obj .: "lovelace") - cost <- objParams .: "cost" >>= aesonObject (\obj -> obj .: "lovelace") + pledge <- objParams .: "pledge" >>= aesonObject \obj -> + obj .: "ada" >>= flip getField "lovelace" + cost <- objParams .: "cost" >>= aesonObject \obj -> + obj .: "ada" >>= flip getField "lovelace" margin <- decodeUnitInterval =<< objParams .: "margin" rewardAccount <- objParams .: "rewardAccount" >>= RewardAddress.fromBech32 >>> note (TypeMismatch "RewardAddress") @@ -757,6 +762,8 @@ showRedeemerPointer ptr = show ptr.redeemerTag <> ":" <> show ptr.redeemerIndex type ExecutionUnits = { memory :: BigNum, steps :: BigNum } +type OgmiosRedeemerPtr = { index :: UInt, purpose :: String } + newtype TxEvaluationR = TxEvaluationR (Either TxEvaluationFailure TxEvaluationResult) @@ -790,32 +797,32 @@ instance DecodeAeson TxEvaluationResult where :: Aeson -> Either JsonDecodeError (RedeemerPointer /\ ExecutionUnits) decodeRdmrPtrExUnitsItem elem = do res - :: { validator :: String + :: { validator :: OgmiosRedeemerPtr , budget :: { memory :: BigNum, cpu :: BigNum } } <- decodeAeson elem redeemerPtr <- decodeRedeemerPointer res.validator pure $ redeemerPtr /\ { memory: res.budget.memory, steps: res.budget.cpu } -redeemerPtrTypeMismatch :: JsonDecodeError -redeemerPtrTypeMismatch = TypeMismatch - "Expected redeemer pointer to be encoded as: \ - \^(spend|mint|certificate|withdrawal):[0-9]+$" +redeemerTypeMismatch :: JsonDecodeError +redeemerTypeMismatch = TypeMismatch + "Expected redeemer to be one of: \ + \(spend|mint|publish|withdraw|vote|propose)" -decodeRedeemerPointer :: String -> Either JsonDecodeError RedeemerPointer -decodeRedeemerPointer redeemerPtrRaw = note redeemerPtrTypeMismatch - case split (Pattern ":") redeemerPtrRaw of - [ tagRaw, indexRaw ] -> - { redeemerTag: _, redeemerIndex: _ } - <$> redeemerTagFromString tagRaw - <*> UInt.fromString indexRaw - _ -> Nothing +decodeRedeemerPointer + :: { index :: UInt, purpose :: String } + -> Either JsonDecodeError RedeemerPointer +decodeRedeemerPointer { index: redeemerIndex, purpose } = + note redeemerTypeMismatch $ { redeemerTag: _, redeemerIndex } <$> + redeemerTagFromString purpose redeemerTagFromString :: String -> Maybe RedeemerTag redeemerTagFromString = case _ of "spend" -> Just RedeemerTag.Spend "mint" -> Just RedeemerTag.Mint - "certificate" -> Just RedeemerTag.Cert - "withdrawal" -> Just RedeemerTag.Reward + "publish" -> Just RedeemerTag.Cert + "withdraw" -> Just RedeemerTag.Reward + "vote" -> Just RedeemerTag.Vote + "propose" -> Just RedeemerTag.Propose _ -> Nothing type OgmiosDatum = String @@ -870,7 +877,8 @@ instance DecodeAeson ScriptFailure where errorData <- maybe (Left (AtKey "data" MissingValue)) pure error.data case error.code of 3011 -> do - res :: { missingScripts :: Array String } <- decodeAeson errorData + res :: { missingScripts :: Array OgmiosRedeemerPtr } <- decodeAeson + errorData missing <- traverse decodeRedeemerPointer res.missingScripts pure $ MissingRequiredScripts { missing: missing, resolved: Nothing } 3012 -> do @@ -888,7 +896,8 @@ instance DecodeAeson ScriptFailure where , txId: res.unsuitableOutputReference.transaction.id } 3110 -> do - res :: { extraneousRedeemers :: Array String } <- decodeAeson errorData + res :: { extraneousRedeemers :: Array OgmiosRedeemerPtr } <- decodeAeson + errorData ExtraRedeemers <$> traverse decodeRedeemerPointer res.extraneousRedeemers 3111 -> do @@ -939,7 +948,8 @@ instance DecodeAeson TxEvaluationFailure where where parseElem elem = do - res :: { validator :: String, error :: ScriptFailure } <- decodeAeson elem + res :: { validator :: OgmiosRedeemerPtr, error :: ScriptFailure } <- + decodeAeson elem (_ /\ res.error) <$> decodeRedeemerPointer res.validator collectIntoMap :: forall k v. Ord k => Array (k /\ v) -> Map k (List v) @@ -983,24 +993,20 @@ rationalToSubcoin (PParamRational rat) = do denominator <- BigNum.fromBigInt $ Rational.denominator rat pure $ UnitInterval { numerator, denominator } +type OgmiosAdaLovelace = { "ada" :: { "lovelace" :: BigNum } } +type OgmiosBytes = { "bytes" :: UInt } + -- | A type that corresponds to Ogmios response. type ProtocolParametersRaw = { "minFeeCoefficient" :: UInt - , "minFeeConstant" :: - { "lovelace" :: UInt } + , "minFeeConstant" :: OgmiosAdaLovelace , "minUtxoDepositCoefficient" :: BigNum - , "maxBlockBodySize" :: - { "bytes" :: UInt } - , "maxBlockHeaderSize" :: - { "bytes" :: UInt } - , "maxTransactionSize" :: - { "bytes" :: UInt } - , "maxValueSize" :: - { "bytes" :: UInt } - , "stakeCredentialDeposit" :: - { "lovelace" :: BigNum } - , "stakePoolDeposit" :: - { "lovelace" :: BigNum } + , "maxBlockBodySize" :: OgmiosBytes + , "maxBlockHeaderSize" :: OgmiosBytes + , "maxTransactionSize" :: OgmiosBytes + , "maxValueSize" :: OgmiosBytes + , "stakeCredentialDeposit" :: OgmiosAdaLovelace + , "stakePoolDeposit" :: OgmiosAdaLovelace , "stakePoolRetirementEpochBound" :: UInt , "desiredNumberOfStakePools" :: UInt , "stakePoolPledgeInfluence" :: PParamRational @@ -1010,11 +1016,11 @@ type ProtocolParametersRaw = { "major" :: UInt , "minor" :: UInt } - , "minStakePoolCost" :: - { "lovelace" :: BigNum } + , "minStakePoolCost" :: OgmiosAdaLovelace , "plutusCostModels" :: { "plutus:v1" :: Array Cardano.Int , "plutus:v2" :: Maybe (Array Cardano.Int) + , "plutus:v3" :: Maybe (Array Cardano.Int) } , "scriptExecutionPrices" :: { "memory" :: PParamRational @@ -1052,11 +1058,11 @@ instance DecodeAeson OgmiosProtocolParameters where , maxBlockHeaderSize: ps.maxBlockHeaderSize.bytes , maxBlockBodySize: ps.maxBlockBodySize.bytes , maxTxSize: ps.maxTransactionSize.bytes - , txFeeFixed: ps.minFeeConstant.lovelace + , txFeeFixed: wrap ps.minFeeConstant.ada.lovelace , txFeePerByte: ps.minFeeCoefficient - , stakeAddressDeposit: wrap ps.stakeCredentialDeposit.lovelace - , stakePoolDeposit: wrap ps.stakePoolDeposit.lovelace - , minPoolCost: wrap ps.minStakePoolCost.lovelace + , stakeAddressDeposit: wrap ps.stakeCredentialDeposit.ada.lovelace + , stakePoolDeposit: wrap ps.stakePoolDeposit.ada.lovelace + , minPoolCost: wrap ps.minStakePoolCost.ada.lovelace , poolRetireMaxEpoch: wrap ps.stakePoolRetirementEpochBound , stakePoolTargetNum: ps.desiredNumberOfStakePools , poolPledgeInfluence: unwrap ps.stakePoolPledgeInfluence @@ -1068,7 +1074,10 @@ instance DecodeAeson OgmiosProtocolParameters where ( PlutusV1 /\ CostModel ps.plutusCostModels."plutus:v1" ) - , (PlutusV2 /\ _) <<< CostModel <$> ps.plutusCostModels."plutus:v2" + , Tuple PlutusV2 <<< CostModel <$> + ps.plutusCostModels."plutus:v2" + , Tuple PlutusV3 <<< CostModel <$> + ps.plutusCostModels."plutus:v3" ] , prices: prices , maxTxExUnits: decodeExUnits ps.maxExecutionUnitsPerTransaction @@ -1205,20 +1214,19 @@ instance EncodeAeson AdditionalUtxoSet where encodeScriptRef :: ScriptRef -> Aeson encodeScriptRef (NativeScriptRef s) = - encodeAeson $ + encodeAeson { "language": "native" -- NOTE: We omit the cbor argument. , "json": (encodeNativeScript s) } - encodeScriptRef (PlutusScriptRef (ps@(PlutusScript (_ /\ PlutusV1)))) = - encodeAeson - { "language": "plutus:v1" - , "cbor": byteArrayToHex $ unwrap $ PlutusScript.getBytes ps - } - encodeScriptRef (PlutusScriptRef (ps@(PlutusScript (_ /\ PlutusV2)))) = + encodeScriptRef (PlutusScriptRef (PlutusScript (script /\ lang))) = encodeAeson - { "language": "plutus:v2" - , "cbor": byteArrayToHex $ unwrap $ PlutusScript.getBytes ps + { "language": + case lang of + PlutusV1 -> "plutus:v1" + PlutusV2 -> "plutus:v2" + PlutusV3 -> "plutus:v3" + , "cbor": byteArrayToHex script } encodeValue :: Value -> Aeson diff --git a/src/Internal/Serialization/MinFee.purs b/src/Internal/Serialization/MinFee.purs index 9a882efb0..3e3337fdd 100644 --- a/src/Internal/Serialization/MinFee.purs +++ b/src/Internal/Serialization/MinFee.purs @@ -19,18 +19,23 @@ import Cardano.Types.ExUnitPrices as ExUnitPrices import Cardano.Types.NativeScript (NativeScript(ScriptAll)) import Cardano.Types.PublicKey as PublicKey import Cardano.Types.Transaction as Transaction +import Contract.Prim.ByteArray (hexToRawBytes) import Control.Monad.Error.Class (class MonadThrow) import Ctl.Internal.Helpers (unsafeFromJust) import Ctl.Internal.NativeScripts (getMaximumSigners) import Ctl.Internal.Types.ProtocolParameters ( ProtocolParameters(ProtocolParameters) ) -import Data.Array as Array +import Data.Array (length, range, replicate) as Array +import Data.Foldable (fold) +import Data.Int (hexadecimal) as Radix +import Data.Int (toStringAs) as Int import Data.Lens ((.~)) import Data.Maybe (fromJust) import Data.Newtype (unwrap, wrap) import Data.Set (Set) -import Data.Set as Set +import Data.Set (fromFoldable, size) as Set +import Data.String (length) as String import Effect.Class (class MonadEffect) import Effect.Exception (Error) import Partial.Unsafe (unsafePartial) @@ -49,7 +54,7 @@ calculateMinFeeCsl (ProtocolParameters pparams) selfSigners txNoSigs = do let cslLinearFee = linearFee_new (unwrap $ BigNum.fromUInt pparams.txFeePerByte) - (unwrap $ BigNum.fromUInt pparams.txFeeFixed) + (unwrap $ unwrap pparams.txFeeFixed) let fee = minFee cslTx cslLinearFee let exUnitPrices = pparams.prices @@ -82,21 +87,27 @@ addFakeSignatures selfSigners tx = nSelfSigners = let n = Set.size selfSigners in if n == 0 then 1 else n + nFakeSigs = nRequiredSigners + nsPossibleSigners + nSelfSigners in - tx # _witnessSet <<< _vkeys .~ - ( Array.replicate (nRequiredSigners + nsPossibleSigners + nSelfSigners) - fakeVkeywitness - ) + -- Generate unique vkeys because Vkeywitnesses now has Set + -- semantics. + tx # _witnessSet <<< _vkeys .~ map mkFakeVkeyWitness + (Array.range one nFakeSigs) -fakeVkeywitness :: Vkeywitness -fakeVkeywitness = Vkeywitness +mkFakeVkeyWitness :: Int -> Vkeywitness +mkFakeVkeyWitness n = Vkeywitness { vkey: - ( Vkey - ( unsafePartial $ fromJust $ PublicKey.fromBech32 - -- This should not fail assuming the hardcoded bech32 key is valid. - "ed25519_pk1p9sf9wz3t46u9ghht44203gerxt82kzqaqw74fqrmwjmdy8sjxmqknzq8j" - ) - ) + Vkey + ( let + nHex = Int.toStringAs Radix.hexadecimal n + in + unsafeFromJust "Ctl.Internal.Serialization.MinFee.mkFakeVkeyWitness" + ( fold (Array.replicate (64 - String.length nHex) "0") <> nHex # + ( PublicKey.fromRawBytes + <=< hexToRawBytes + ) + ) + ) , signature: ( unsafePartial $ fromJust $ Ed25519Signature.fromBech32 "ed25519_sig1mr6pm5kanam2wkmae70jx7fjkzepghefj0lmnczu6fra\ diff --git a/src/Internal/ServerConfig.purs b/src/Internal/ServerConfig.purs index 76d4a883b..8b42d9109 100644 --- a/src/Internal/ServerConfig.purs +++ b/src/Internal/ServerConfig.purs @@ -4,6 +4,7 @@ module Ctl.Internal.ServerConfig , blockfrostPublicMainnetServerConfig , blockfrostPublicPreprodServerConfig , blockfrostPublicPreviewServerConfig + , blockfrostPublicSanchonetServerConfig , blockfrostSelfHostedServerConfig , defaultKupoServerConfig , defaultOgmiosWsConfig @@ -61,6 +62,14 @@ blockfrostPublicPreprodServerConfig = , path: Just "/api/v0" } +blockfrostPublicSanchonetServerConfig :: ServerConfig +blockfrostPublicSanchonetServerConfig = + { port: UInt.fromInt 443 + , host: "cardano-sanchonet.blockfrost.io" + , secure: true + , path: Just "/api/v0" + } + blockfrostPublicMainnetServerConfig :: ServerConfig blockfrostPublicMainnetServerConfig = { port: UInt.fromInt 443 diff --git a/src/Internal/Service/Blockfrost.purs b/src/Internal/Service/Blockfrost.purs index f8130c5ae..e833f083a 100644 --- a/src/Internal/Service/Blockfrost.purs +++ b/src/Internal/Service/Blockfrost.purs @@ -49,6 +49,7 @@ module Ctl.Internal.Service.Blockfrost , getScriptByHash , getScriptInfo , getSystemStart + , getTxAuxiliaryData , getTxMetadata , getUtxoByOref , getValidatorHashDelegationsAndRewards @@ -85,12 +86,14 @@ import Cardano.AsCbor (decodeCbor, encodeCbor) import Cardano.Serialization.Lib (toBytes) import Cardano.Types ( AssetClass(AssetClass) + , AuxiliaryData , DataHash , GeneralTransactionMetadata(GeneralTransactionMetadata) - , Language(PlutusV2, PlutusV1) + , Language(PlutusV3, PlutusV2, PlutusV1) , PlutusData , PoolPubKeyHash , RawBytes + , RedeemerTag , ScriptHash , StakePubKeyHash , Transaction @@ -127,8 +130,10 @@ import Cardano.Types.NativeScript ) import Cardano.Types.NetworkId (NetworkId) import Cardano.Types.OutputDatum (OutputDatum(OutputDatum, OutputDatumHash)) +import Cardano.Types.PlutusScript (PlutusScript) import Cardano.Types.PlutusScript as PlutusScript import Cardano.Types.PoolPubKeyHash as PoolPubKeyHash +import Cardano.Types.RedeemerTag (RedeemerTag(Spend, Mint, Cert, Reward)) as RedeemerTag import Cardano.Types.RewardAddress as RewardAddress import Cardano.Types.ScriptRef (ScriptRef(NativeScriptRef, PlutusScriptRef)) import Cardano.Types.Value (assetToValue, lovelaceValueOf, sum) as Value @@ -162,7 +167,6 @@ import Ctl.Internal.QueryM.Ogmios , TxEvaluationFailure(ScriptFailures, UnparsedError) , TxEvaluationR , TxEvaluationResult(TxEvaluationResult) - , decodeRedeemerPointer ) import Ctl.Internal.QueryM.Ogmios as Ogmios import Ctl.Internal.ServerConfig (ServerConfig, mkHttpUrl) @@ -191,13 +195,16 @@ import Ctl.Internal.Types.EraSummaries import Ctl.Internal.Types.ProtocolParameters ( CostModelV1 , CostModelV2 + , CostModelV3 , ProtocolParameters(ProtocolParameters) , convertPlutusV1CostModel , convertPlutusV2CostModel + , convertPlutusV3CostModel ) import Ctl.Internal.Types.Rational (Rational, reduce) import Ctl.Internal.Types.StakeValidatorHash (StakeValidatorHash) import Ctl.Internal.Types.SystemStart (SystemStart(SystemStart)) +import Data.Array (catMaybes) import Data.Array (find, length) as Array import Data.Bifunctor (lmap) import Data.BigNumber (BigNumber, toFraction) @@ -218,12 +225,14 @@ import Data.MediaType.Common (applicationJSON) as MediaType import Data.Newtype (class Newtype, unwrap, wrap) import Data.Number (infinity) import Data.Show.Generic (genericShow) -import Data.String (splitAt) as String +import Data.String (Pattern(Pattern)) +import Data.String (split, splitAt) as String import Data.Time.Duration (Seconds(Seconds), convertDuration) import Data.Traversable (for, for_, traverse) import Data.Tuple (Tuple(Tuple), fst, snd) import Data.Tuple.Nested (type (/\), (/\)) import Data.UInt (UInt) +import Data.UInt (fromString) as UInt import Effect.Aff (Aff) import Effect.Aff.Class (liftAff) import Effect.Class (liftEffect) @@ -231,6 +240,7 @@ import Effect.Exception (error) import Foreign.Object (Object) import Foreign.Object as ForeignObject import JS.BigInt (fromString, toNumber) as BigInt +import Prim.TypeError (class Warn, Text) -------------------------------------------------------------------------------- -- BlockfrostServiceM @@ -668,23 +678,79 @@ doesTxExist txHash = do Left e -> Left e -------------------------------------------------------------------------------- --- Get transaction metadata --------------------------------------------------------------------------------- +-- Get transaction auxiliary data +getTxAuxiliaryData + :: TransactionHash + -> BlockfrostServiceM (Either GetTxMetadataError AuxiliaryData) +getTxAuxiliaryData txHash = runExceptT do + metadata <- ExceptT $ getMetadata + scriptRefs <- ExceptT $ getTxScripts txHash + pure $ wrap + { metadata: Just metadata + , nativeScripts: arrayToMaybe $ getNativeScripts scriptRefs + , plutusScripts: arrayToMaybe $ getPlutusScripts scriptRefs + } + + where + + getMetadata = do + response <- blockfrostGetRequest (TransactionMetadata txHash) + pure case unwrapBlockfrostMetadata <$> handleBlockfrostResponse response of + Left (ClientHttpResponseError (Affjax.StatusCode 404) _) -> + Left GetTxMetadataTxNotFoundError + Left e -> Left (GetTxMetadataClientError e) + Right metadata + | Map.isEmpty (unwrap metadata) -> + Left GetTxMetadataMetadataEmptyOrMissingError + | otherwise -> Right metadata + + getNativeScripts :: Array ScriptRef -> Array NativeScript + getNativeScripts = catMaybes <<< map isNativeScript + where + isNativeScript (NativeScriptRef script) = Just script + isNativeScript (PlutusScriptRef _) = Nothing + + getPlutusScripts :: Array ScriptRef -> Array PlutusScript + getPlutusScripts = catMaybes <<< map isPlutusScript + where + isPlutusScript (PlutusScriptRef script) = Just script + isPlutusScript (NativeScriptRef _) = Nothing + + arrayToMaybe :: forall a. Array a -> Maybe (Array a) + arrayToMaybe [] = Nothing + arrayToMaybe xs = Just xs getTxMetadata - :: TransactionHash + :: Warn + ( Text + "deprecated: getTxMetadata. use Ctl.Internal.Service.Blockfrost.getTxAuxiliaryData" + ) + => TransactionHash -> BlockfrostServiceM (Either GetTxMetadataError GeneralTransactionMetadata) getTxMetadata txHash = do - response <- blockfrostGetRequest (TransactionMetadata txHash) - pure case unwrapBlockfrostMetadata <$> handleBlockfrostResponse response of - Left (ClientHttpResponseError (Affjax.StatusCode 404) _) -> - Left GetTxMetadataTxNotFoundError - Left e -> - Left (GetTxMetadataClientError e) - Right metadata - | Map.isEmpty (unwrap metadata) -> - Left GetTxMetadataMetadataEmptyOrMissingError - | otherwise -> Right metadata + eAuxData <- getTxAuxiliaryData txHash + pure $ case eAuxData of + Left err -> Left err + Right auxiliaryData -> case (unwrap auxiliaryData).metadata of + Nothing -> Left GetTxMetadataMetadataEmptyOrMissingError + Just metadata -> Right metadata + +getTxScripts + :: TransactionHash + -> BlockfrostServiceM (Either GetTxMetadataError (Array ScriptRef)) +getTxScripts txHash = runExceptT do + (blockfrostUtxoMap :: BlockfrostUtxosOfTransaction) <- ExceptT $ + blockfrostGetRequest (UtxosOfTransaction txHash) + <#> lmap GetTxMetadataClientError <<< handle404AsMempty <<< + handleBlockfrostResponse + let + (scriptHashes :: Array ScriptHash) = catMaybes + $ map (_.scriptHash <<< unwrap <<< snd) + $ unwrap blockfrostUtxoMap + catMaybes <$> traverse (ExceptT <<< scriptByHash) scriptHashes + + where + scriptByHash t = (lmap GetTxMetadataClientError) <$> getScriptByHash t -------------------------------------------------------------------------------- -- Get current epoch information @@ -913,6 +979,28 @@ decodeBlockfrostTxEvaluationResult = aesonObject $ \obj -> do steps <- getField exUnitsObj "steps" pure $ redeemerPtr /\ { memory, steps } +decodeRedeemerPointer :: String -> Either JsonDecodeError RedeemerPointer +decodeRedeemerPointer redeemerPtrRaw = note redeemerPtrTypeMismatch + case String.split (Pattern ":") redeemerPtrRaw of + [ tagRaw, indexRaw ] -> + { redeemerTag: _, redeemerIndex: _ } + <$> redeemerTagFromString tagRaw + <*> UInt.fromString indexRaw + _ -> Nothing + +redeemerTagFromString :: String -> Maybe RedeemerTag +redeemerTagFromString = case _ of + "spend" -> Just RedeemerTag.Spend + "mint" -> Just RedeemerTag.Mint + "certificate" -> Just RedeemerTag.Cert + "withdrawal" -> Just RedeemerTag.Reward + _ -> Nothing + +redeemerPtrTypeMismatch :: JsonDecodeError +redeemerPtrTypeMismatch = TypeMismatch + "Expected redeemer pointer to be encoded as: \ + \^(spend|mint|certificate|withdrawal):[0-9]+$" + data OldScriptFailure = ExtraRedeemers (Array RedeemerPointer) | MissingRequiredDatums @@ -1433,6 +1521,7 @@ type BlockfrostProtocolParametersRaw = , "cost_models" :: { "PlutusV1" :: { | CostModelV1 } , "PlutusV2" :: { | CostModelV2 } + , "PlutusV3" :: CostModelV3 } , "price_mem" :: FiniteBigNumber , "price_step" :: FiniteBigNumber @@ -1497,6 +1586,9 @@ instance DecodeAeson BlockfrostProtocolParameters where maybe (Left $ AtKey "coins_per_utxo_size" $ MissingValue) pure $ (Coin <<< unwrap <$> raw.coins_per_utxo_size) + plutusV3CostModel <- note (AtKey "PlutusV3" $ TypeMismatch "CostModel") $ + convertPlutusV3CostModel raw.cost_models."PlutusV3" + pure $ BlockfrostProtocolParameters $ ProtocolParameters { protocolVersion: raw.protocol_major_ver /\ raw.protocol_minor_ver -- The following two parameters were removed from Babbage @@ -1504,7 +1596,7 @@ instance DecodeAeson BlockfrostProtocolParameters where , maxBlockHeaderSize: raw.max_block_header_size , maxBlockBodySize: raw.max_block_size , maxTxSize: raw.max_tx_size - , txFeeFixed: raw.min_fee_b + , txFeeFixed: Coin $ BigNum.fromUInt raw.min_fee_b , txFeePerByte: raw.min_fee_a , stakeAddressDeposit: Coin $ unwrap raw.key_deposit , stakePoolDeposit: Coin $ unwrap raw.pool_deposit @@ -1518,6 +1610,7 @@ instance DecodeAeson BlockfrostProtocolParameters where , costModels: Map.fromFoldable [ PlutusV1 /\ convertPlutusV1CostModel raw.cost_models."PlutusV1" , PlutusV2 /\ convertPlutusV2CostModel raw.cost_models."PlutusV2" + , PlutusV3 /\ plutusV3CostModel ] , prices , maxTxExUnits: diff --git a/src/Internal/Plutip/PortCheck.js b/src/Internal/Spawn.js similarity index 50% rename from src/Internal/Plutip/PortCheck.js rename to src/Internal/Spawn.js index dedb2434a..cb5140b3a 100644 --- a/src/Internal/Plutip/PortCheck.js +++ b/src/Internal/Spawn.js @@ -1,5 +1,36 @@ +"use strict"; + +import stream from "node:stream"; import net from "net"; +export function clearLineHandler(readline) { + return () => { + readline.removeAllListeners("line"); + }; +} + +export const readableFromBuffer = buf => () => + stream.Readable.from(buf, { objectMode: false }); + +import fs from "fs"; + +export function _rmdirSync(path) { + return () => fs.rmSync(path, { recursive: true }); +} + +export function removeOnSignal({ signal, callback }) { + return () => { + process.removeListener(signal, callback); + }; +} + +export function onSignalImpl(signal) { + return callback => () => { + process.on(signal, callback); + return { signal, callback }; + }; +} + export function _isPortAvailable(port) { return () => new Promise((resolve, reject) => { diff --git a/src/Internal/Plutip/Spawn.purs b/src/Internal/Spawn.purs similarity index 53% rename from src/Internal/Plutip/Spawn.purs rename to src/Internal/Spawn.purs index c8f94c005..7c9a08ef4 100644 --- a/src/Internal/Plutip/Spawn.purs +++ b/src/Internal/Spawn.purs @@ -1,43 +1,59 @@ -- | This module provides ability to spawn a program using `spawn` and wait -- | for some specific output that indicates that the program has started -- | successfully or failed, in which case an exception is thrown. -module Ctl.Internal.Plutip.Spawn +module Ctl.Internal.Spawn ( NewOutputAction(NoOp, Success, Cancel) , OnSignalRef , ManagedProcess(ManagedProcess) , spawn + , exec , stop , waitForStop , cleanupTmpDir , cleanupOnSigint , removeOnSignal + , waitForSignal + , isPortAvailable + , killProcessWithPort + , _rmdirSync + , FilePath ) where -import Prelude +import Contract.Prelude -import Control.Monad.Error.Class (throwError) -import Ctl.Internal.Plutip.Types (FilePath) +import Control.Monad.Error.Class (liftMaybe, throwError) +import Control.Promise (Promise, toAffE) import Data.Either (Either(Left)) import Data.Foldable (foldMap) import Data.Maybe (Maybe(Just, Nothing)) import Data.Posix.Signal (Signal(SIGINT)) import Data.Posix.Signal as Signal +import Data.Time.Duration (Milliseconds(Milliseconds)) +import Data.UInt (UInt) +import Data.UInt as UInt +import Debug (traceM) import Effect (Effect) import Effect.AVar (AVar) import Effect.AVar (empty, tryPut) as AVar import Effect.Aff (Aff, Canceler(Canceler), makeAff) +import Effect.Aff as Aff import Effect.Aff.AVar (isEmpty, read, status) as AVar +import Effect.Aff.Retry + ( RetryPolicy + , constantDelay + , limitRetriesByCumulativeDelay + , recovering + ) import Effect.Class (liftEffect) -import Effect.Exception (Error, error) +import Effect.Exception (Error, error, throw) +import Effect.Exception (message) as Error import Effect.Ref as Ref -import Node.ChildProcess - ( ChildProcess - , SpawnOptions - , kill - , stdout - ) +import Node.Buffer as Node.Buffer +import Node.ChildProcess (ChildProcess, SpawnOptions, kill, stderr, stdout) import Node.ChildProcess as ChildProcess +import Node.ChildProcess as Node.ChildProcess import Node.ReadLine (Interface, close, createInterface, setLineHandler) as RL +import Node.Stream as Node.Stream -- | Carry along an `AVar` which resolves when the process closes. -- | Necessary due to `child_process` having no way to query if a process has @@ -57,7 +73,7 @@ spawn :: String -> Array String -> SpawnOptions - -> Maybe (String -> NewOutputAction) + -> Maybe ({ output :: String, line :: String } -> Effect NewOutputAction) -> Aff ManagedProcess spawn cmd args opts mbFilter = makeAff (spawn' cmd args opts mbFilter) @@ -66,7 +82,7 @@ spawn' :: String -> Array String -> SpawnOptions - -> Maybe (String -> NewOutputAction) + -> Maybe ({ output :: String, line :: String } -> Effect NewOutputAction) -> (Either Error ManagedProcess -> Effect Unit) -> Effect Canceler spawn' cmd args opts mbFilter cont = do @@ -74,13 +90,19 @@ spawn' cmd args opts mbFilter cont = do let fullCmd = cmd <> foldMap (" " <> _) args closedAVar <- AVar.empty interface <- RL.createInterface (stdout child) mempty + stderrInterface <- RL.createInterface (stderr child) mempty + flip RL.setLineHandler stderrInterface \str -> do + traceM $ "stderr: " <> str outputRef <- Ref.new "" ChildProcess.onClose child \code -> do RL.close interface void $ AVar.tryPut code closedAVar output <- Ref.read outputRef - cont $ Left $ error $ - "Process " <> fullCmd <> " exited. Output:\n" <> output + cont $ Left $ error + $ "Process " + <> fullCmd + <> " exited. Output:\n" + <> output -- Ideally we call `RL.close interface` instead of detaching the listener -- via `clearLineHandler interface`, but it causes issues with the output @@ -93,7 +115,7 @@ spawn' cmd args opts mbFilter cont = do flip RL.setLineHandler interface \str -> do output <- Ref.modify (_ <> str <> "\n") outputRef - case filter output of + filter { output, line: str } >>= case _ of Success -> do clearLineHandler interface cont (pure mp) @@ -101,11 +123,52 @@ spawn' cmd args opts mbFilter cont = do kill SIGINT child clearLineHandler interface cont $ Left $ error - $ "Process cancelled because output received: " <> str + $ "Process cancelled because output received: " + <> str _ -> pure unit pure $ Canceler $ const $ liftEffect $ kill SIGINT child +exec + :: String + -> Aff + { channels :: + { stdout :: Node.Stream.Readable () + , stderr :: Node.Stream.Readable () + } + , process :: Node.ChildProcess.ChildProcess + } +exec cmd = Aff.makeAff \cont -> do + processRef <- Ref.new Nothing + isCanceledRef <- Ref.new false + let + isCanceled = Ref.read isCanceledRef + markCanceled = Ref.write true isCanceledRef + -- log $ show { exec: cmd } + process <- Node.ChildProcess.exec + cmd + Node.ChildProcess.defaultExecOptions + ( \{ error: err, stderr, stdout } -> isCanceled >>= flip unless do + process <- + liftMaybe (error "Couldn't find executed process" :: Error) + =<< Ref.read processRef + stderrStream <- readableFromBuffer stderr + stdoutStream <- readableFromBuffer stdout + let + result = + { channels: { stderr: stderrStream, stdout: stdoutStream } + , process + } + cont $ maybe (Right result) Left err + ) + Ref.write (Just process) processRef + pure $ Aff.Canceler \err -> liftEffect do + markCanceled + cont $ Left err + +foreign import readableFromBuffer + :: Node.Buffer.Buffer -> Effect (Node.Stream.Readable ()) + foreign import clearLineHandler :: RL.Interface -> Effect Unit stop :: ManagedProcess -> Aff Unit @@ -131,6 +194,18 @@ foreign import removeOnSignal :: OnSignalRef -> Effect Unit onSignal :: Signal -> Effect Unit -> Effect OnSignalRef onSignal sig = onSignalImpl (Signal.toString sig) +-- | Just as onSignal, but Aff. +waitForSignal :: Signal -> Aff Unit +waitForSignal signal = makeAff \cont -> do + isCanceledRef <- Ref.new false + onSignalRef <- onSignal signal + $ Ref.read isCanceledRef + >>= flip unless (cont $ Right unit) + pure $ Canceler \err -> liftEffect do + Ref.write true isCanceledRef + removeOnSignal onSignalRef + cont $ Left err + cleanupOnSigint :: FilePath -> FilePath -> Effect OnSignalRef cleanupOnSigint workingDir testClusterDir = do sig <- onSignal SIGINT do @@ -138,7 +213,35 @@ cleanupOnSigint workingDir testClusterDir = do _rmdirSync testClusterDir pure sig +killByPort :: UInt -> Effect Unit +killByPort port = + void $ Node.ChildProcess.exec + ("fuser -k " <> show (UInt.toInt port) <> "/tcp") + Node.ChildProcess.defaultExecOptions + (maybe (pure unit) (log <<< Error.message) <<< _.error) + +-- | Kill a process and wait for it to stop listening on a specific port. +killProcessWithPort :: UInt -> Aff Unit +killProcessWithPort port = do + liftEffect $ killByPort port + void $ recovering defaultRetryPolicy ([ \_ _ -> pure true ]) + \_ -> do + isAvailable <- isPortAvailable port + unless isAvailable do + liftEffect $ throw "retry" + +defaultRetryPolicy :: RetryPolicy +defaultRetryPolicy = limitRetriesByCumulativeDelay (Milliseconds 3000.00) $ + constantDelay (Milliseconds 100.0) + cleanupTmpDir :: ManagedProcess -> FilePath -> Effect Unit cleanupTmpDir (ManagedProcess _ child _) workingDir = do ChildProcess.onExit child \_ -> do _rmdirSync workingDir + +type FilePath = String + +foreign import _isPortAvailable :: Int -> Effect (Promise Boolean) + +isPortAvailable :: UInt -> Aff Boolean +isPortAvailable = toAffE <<< _isPortAvailable <<< UInt.toInt diff --git a/src/Internal/Test/E2E/Route.purs b/src/Internal/Test/E2E/Route.purs index cd0dd4f2f..3108a3dfb 100644 --- a/src/Internal/Test/E2E/Route.purs +++ b/src/Internal/Test/E2E/Route.purs @@ -9,7 +9,7 @@ module Ctl.Internal.Test.E2E.Route import Prelude -import Cardano.Types (NetworkId(MainnetId)) +import Cardano.Types (NetworkId(TestnetId)) import Cardano.Types.PrivateKey (PrivateKey) import Cardano.Types.PrivateKey as PrivateKey import Cardano.Types.RawBytes (RawBytes(RawBytes)) @@ -162,7 +162,7 @@ route configs tests = do Nothing -> do clusterSetup@{ keys: { payment, stake } } <- getClusterSetupRepeatedly - when (config.networkId /= MainnetId) do + when (config.networkId /= TestnetId) do liftEffect $ throw wrongNetworkIdOnCluster pure $ { paymentKey: payment, stakeKey: stake } /\ Just clusterSetup let @@ -201,8 +201,9 @@ route configs tests = do wrongNetworkIdOnCluster :: String wrongNetworkIdOnCluster = "No payment keys were specified, which implies they should be retrieved " - <> "from a local cluster, however, network ID was set to TestnetId, " - <> "which is incompatible with Plutip, that always uses MainnetId." + <> "from a local cluster, however, network ID was set to MainnetId, " + <> + "which is incompatible with cardano-testnet, that always uses TestnetId." -- Override config values with parameters from cluster setup setClusterOptions diff --git a/src/Internal/Test/E2E/Runner.purs b/src/Internal/Test/E2E/Runner.purs index 383fef8d1..ab4be97ee 100644 --- a/src/Internal/Test/E2E/Runner.purs +++ b/src/Internal/Test/E2E/Runner.purs @@ -24,8 +24,6 @@ import Ctl.Internal.Affjax (request) as Affjax import Ctl.Internal.Contract.Hooks (emptyHooks) import Ctl.Internal.Contract.QueryBackend (QueryBackend(CtlBackend)) import Ctl.Internal.Helpers (liftedM, unsafeFromJust, (<>)) -import Ctl.Internal.Plutip.Server (withPlutipContractEnv) -import Ctl.Internal.Plutip.Types (PlutipConfig) import Ctl.Internal.QueryM (ClusterSetup) import Ctl.Internal.Test.E2E.Browser (withBrowser) import Ctl.Internal.Test.E2E.Feedback @@ -50,7 +48,7 @@ import Ctl.Internal.Test.E2E.Types , ChromeUserDataDir , E2ETest , E2ETestRuntime - , E2EWallet(NoWallet, PlutipCluster, WalletExtension) + , E2EWallet(NoWallet, LocalTestnet, WalletExtension) , ExtensionParams , Extensions , RunningE2ETest @@ -78,6 +76,8 @@ import Ctl.Internal.Test.E2E.Wallets , namiSign ) import Ctl.Internal.Test.UtxoDistribution (withStakeKey) +import Ctl.Internal.Testnet.Contract (withTestnetContractEnv) +import Ctl.Internal.Testnet.Types (Era(Babbage), TestnetConfig) import Data.Array (catMaybes, mapMaybe, nub) import Data.Array as Array import Data.ByteArray (hexToByteArray) @@ -195,11 +195,9 @@ runE2ETests opts rt = do ) (testPlan opts rt) -buildPlutipConfig :: TestOptions -> PlutipConfig -buildPlutipConfig options = - { host: "127.0.0.1" - , port: fromMaybe (UInt.fromInt defaultPorts.plutip) options.plutipPort - , logLevel: Trace +buildLocalTestnetConfig :: TestOptions -> TestnetConfig +buildLocalTestnetConfig options = + { logLevel: Trace , ogmiosConfig: { port: fromMaybe (UInt.fromInt defaultPorts.ogmios) options.ogmiosPort , host: "127.0.0.1" @@ -216,10 +214,10 @@ buildPlutipConfig options = , customLogger: Just \_ _ -> pure unit , hooks: emptyHooks , clusterConfig: - { slotLength: Seconds 0.05 + { testnetMagic: 2 + , era: Babbage + , slotLength: Seconds 0.05 , epochSize: Nothing - , maxTxSize: Nothing - , raiseExUnitsToMax: false } } @@ -246,12 +244,11 @@ testPlan opts@{ tests } rt@{ wallets } = do withE2ETest true (wrap url) browser \{ page } -> do subscribeToTestStatusUpdates opts.passBrowserLogs page - -- Plutip in E2E tests - { url, wallet: PlutipCluster } -> do + -- cardano-testnet in E2E tests + { url, wallet: LocalTestnet } -> do let - amount = unsafeFromJust "testPlan: integer overflow" $ BigNum.mul - (BigNum.fromInt 2_000_000_000) - (BigNum.fromInt 100) + amount = unsafeFromJust "testPlan: integer overflow" $ + BigNum.fromString "5000000000" -- 5k ADA distr = withStakeKey privateStakeKey [ amount , amount @@ -259,9 +256,7 @@ testPlan opts@{ tests } rt@{ wallets } = , amount , amount ] - -- TODO: don't connect to services in ContractEnv, just start them - -- https://github.com/Plutonomicon/cardano-transaction-lib/issues/1197 - liftAff $ withPlutipContractEnv (buildPlutipConfig opts) distr + liftAff $ withTestnetContractEnv (buildLocalTestnetConfig opts) distr \env wallet -> do kwPaymentKey <- liftAff $ getPrivatePaymentKey wallet kwMStakeKey <- liftAff $ getPrivateStakeKey wallet diff --git a/src/Internal/Test/E2E/Types.purs b/src/Internal/Test/E2E/Types.purs index bbb3594ac..f4b0c8282 100644 --- a/src/Internal/Test/E2E/Types.purs +++ b/src/Internal/Test/E2E/Types.purs @@ -20,7 +20,7 @@ module Ctl.Internal.Test.E2E.Types , mkE2ETest , RunningE2ETest , SomeWallet - , E2EWallet(NoWallet, PlutipCluster, WalletExtension) + , E2EWallet(NoWallet, LocalTestnet, WalletExtension) , getE2EWalletExtension ) where @@ -120,7 +120,7 @@ type SettingsRuntime = , settingsArchive :: SettingsArchive } -data E2EWallet = NoWallet | PlutipCluster | WalletExtension WalletExt +data E2EWallet = NoWallet | LocalTestnet | WalletExtension WalletExt derive instance Generic E2EWallet _ derive instance Eq E2EWallet @@ -149,7 +149,7 @@ mkE2ETest str = <|> (tryWalletPrefix "lode" <#> mkTestEntry (WalletExtension LodeExt)) <|> (tryWalletPrefix "nami" <#> mkTestEntry (WalletExtension NamiExt)) <|> (tryWalletPrefix "lace" <#> mkTestEntry (WalletExtension LaceExt)) - <|> (tryWalletPrefix "plutip" <#> mkTestEntry PlutipCluster) + <|> (tryWalletPrefix "plutip" <#> mkTestEntry LocalTestnet) <|> (pure $ mkTestEntry NoWallet str) where tryWalletPrefix :: String -> Maybe String diff --git a/src/Internal/Testnet/Contract.purs b/src/Internal/Testnet/Contract.purs new file mode 100644 index 000000000..fcb05c735 --- /dev/null +++ b/src/Internal/Testnet/Contract.purs @@ -0,0 +1,375 @@ +module Ctl.Internal.Testnet.Contract + ( runTestnetContract + , runTestnetTestPlan + , testTestnetContracts + , withTestnetContractEnv + , execDistribution + ) where + +import Contract.Prelude + +import Cardano.Serialization.Lib (privateKey_generateEd25519) as Csl +import Cardano.Types (NetworkId(TestnetId)) +import Cardano.Types.Address (Address, getPaymentCredential, getStakeCredential) +import Cardano.Types.BigInt (BigInt) +import Cardano.Types.BigInt (fromInt) as BigInt +import Cardano.Types.BigNum (fromBigInt, toBigInt) as BigNum +import Cardano.Types.Credential (Credential(PubKeyHashCredential)) +import Cardano.Types.PaymentCredential (PaymentCredential(PaymentCredential)) +import Cardano.Types.StakeCredential (StakeCredential(StakeCredential)) +import Cardano.Types.StakePubKeyHash (StakePubKeyHash(StakePubKeyHash)) +import Cardano.Wallet.Key (KeyWallet) +import Contract.Address (getNetworkId) +import Contract.Log (logInfo') +import Contract.Monad + ( Contract + , ContractEnv + , liftContractE + , liftContractM + , liftedM + , runContractInEnv + ) +import Contract.Transaction (awaitTxConfirmed, submitTxFromConstraints) +import Contract.TxConstraints (TxConstraints) +import Contract.TxConstraints (mustPayToPubKey, mustPayToPubKeyAddress) as Constraints +import Contract.Value (Value) +import Contract.Value (getCoin, lovelaceValueOf) as Value +import Contract.Wallet + ( getWalletAddress + , getWalletUtxos + , mkKeyWalletFromPrivateKeys + , withKeyWallet + ) +import Control.Monad.State (State, execState, modify_) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Writer (censor, execWriterT, tell) +import Control.Parallel (parTraverse) +import Ctl.Internal.Test.ContractTest + ( ContractTest(ContractTest) + , ContractTestPlan(ContractTestPlan) + , ContractTestPlanHandler + ) +import Ctl.Internal.Test.UtxoDistribution + ( class UtxoDistribution + , decodeWallets + , encodeDistribution + , keyWallets + ) +import Ctl.Internal.Testnet.DistributeFundsV2 (DistrFundsParams) +import Ctl.Internal.Testnet.DistributeFundsV2 (Tx(Tx), makeDistributionPlan) as DistrFunds +import Ctl.Internal.Testnet.Server + ( StartedTestnetCluster + , makeClusterContractEnv + , startTestnetCluster + ) +import Ctl.Internal.Testnet.Types (TestnetConfig) +import Ctl.Internal.Testnet.Utils + ( cleanupOnExit + , read872GenesisKey + , runCleanup + , whenError + ) +import Data.Array (concat, fromFoldable, zip) as Array +import Data.Map (values) as Map +import Effect.Aff (bracket) as Aff +import Effect.Aff (try) +import Effect.Exception (error) +import Effect.Ref (Ref) +import Effect.Ref (new, read, write) as Ref +import Internal.CardanoCli.QueryHandler (withCardanoCliCompletion) +import Mote (bracket) as Mote +import Mote.Description (Description(Group, Test)) +import Mote.Monad (MoteT(MoteT), mapTest) +import Mote.TestPlanM (TestPlanM) +import Type.Proxy (Proxy(Proxy)) + +-- | Run a single `Contract` in cardano-testnet environment. +runTestnetContract + :: forall (distr :: Type) (wallets :: Type) (a :: Type) + . UtxoDistribution distr wallets + => TestnetConfig + -> distr + -> (wallets -> Contract a) + -> Aff a +runTestnetContract cfg distr cont = + withTestnetContractEnv cfg distr \env wallets -> + runContractInEnv env (cont wallets) + +-- | Provide a `ContractEnv` connected to cardano-testnet. +-- | Can be used to run multiple `Contract`s using `runContractInEnv`. +withTestnetContractEnv + :: forall (distr :: Type) (wallets :: Type) (a :: Type) + . UtxoDistribution distr wallets + => TestnetConfig + -> distr + -> (ContractEnv -> wallets -> Aff a) + -> Aff a +withTestnetContractEnv cfg distr cont = do + cleanupRef <- liftEffect $ Ref.new mempty + Aff.bracket + (try $ startTestnetContractEnv cfg distr cleanupRef) + (const $ runCleanup cleanupRef) + $ liftEither + >=> \{ env, wallets, printLogs } -> + whenError printLogs (cont env wallets) + +-- | Run several `Contract`s in tests in a (single) cardano-testnet environment (cardano-testnet, ogmios, kupo, etc.). +-- | NOTE: This uses `MoteT`s bracketing, and thus has the same caveats. +-- | Namely, brackets are run for each of the top-level groups and tests +-- | inside the bracket. +-- | If you wish to only set up Testnet once, ensure all tests that are passed +-- | to `testTestnetContracts` are wrapped in a single group. +-- | https://github.com/Plutonomicon/cardano-transaction-lib/blob/develop/doc/cardano-testnet-testing.md#testing-with-mote FIXME +testTestnetContracts + :: TestnetConfig + -> TestPlanM ContractTest Unit + -> TestPlanM (Aff Unit) Unit +testTestnetContracts cfg tp = do + testnetTestPlan <- lift $ execDistribution tp + runTestnetTestPlan cfg testnetTestPlan + +-- | Run a `ContractTestPlan` in a (single) cardano-testnet environment. +-- | Supports wallet reuse - see docs on sharing wallet state between +-- | wallets in `doc/cardano-testnet-testing.md`. FIXME +runTestnetTestPlan + :: TestnetConfig + -> ContractTestPlan + -> TestPlanM (Aff Unit) Unit +runTestnetTestPlan cfg (ContractTestPlan runContractTestPlan) = do + -- Modify tests to pluck out parts of a single combined distribution + runContractTestPlan \distr tests -> do + cleanupRef <- liftEffect $ Ref.new mempty + -- Sets a single Mote bracket at the top level, it will be run for all + -- immediate tests and groups + bracket (startTestnetContractEnv cfg distr cleanupRef) + (runCleanup cleanupRef) + $ flip mapTest tests \test { env, wallets, printLogs, clearLogs } -> do + whenError printLogs (runContractInEnv env (test wallets)) + clearLogs + where + -- `MoteT`'s bracket doesn't support supplying the constructed resource into + -- the main action, so we use a `Ref` to store and read the result. + bracket + :: forall (a :: Type) (b :: Type) + . Aff a + -> Aff Unit + -> TestPlanM (a -> Aff b) Unit + -> TestPlanM (Aff b) Unit + bracket before' after' act = do + resultRef <- liftEffect $ Ref.new + (Left $ error "cardano-testnet not initialized") + let + before = do + res <- try $ before' + liftEffect $ Ref.write res resultRef + pure res + after = const $ after' + Mote.bracket { before, after } $ flip mapTest act \t -> do + result <- liftEffect $ Ref.read resultRef >>= liftEither + t result + +-- | Lifts the UTxO distributions of each test out of Mote, into a combined +-- | distribution. Adapts the tests to pick their distribution out of the +-- | combined distribution. +-- | NOTE: Skipped tests still have their distribution generated. +-- | This is the current method of constructing all the wallets with required distributions +-- | in one go during TestNet startup. +execDistribution :: TestPlanM ContractTest Unit -> Aff ContractTestPlan +execDistribution (MoteT mote) = execWriterT mote <#> go + where + -- Recursively go over the tree of test `Description`s and construct a `ContractTestPlan` callback. + -- When run the `ContractTestPlan` will reconstruct the whole `MoteT` value passed to `execDistribution` + -- via similar writer effects (plus combining distributions) which append test descriptions + -- or wrap them in a group. + go :: Array (Description Aff ContractTest) -> ContractTestPlan + go = flip execState emptyContractTestPlan <<< traverse_ case _ of + Test rm { bracket, label, value: ContractTest runTest } -> + runTest \distr test -> do + addTests distr $ MoteT + (tell [ Test rm { bracket, label, value: test } ]) + Group rm { bracket, label, value } -> do + let ContractTestPlan runGroupPlan = go value + runGroupPlan \distr tests -> + addTests distr $ over MoteT + (censor (pure <<< Group rm <<< { bracket, label, value: _ })) + tests + + -- This function is used by `go` for iteratively adding Mote tests (internally Writer monad actions) + -- to the `ContractTestPlan` in the State monad _and_ for combining UTxO distributions used by tests. + -- Given a distribution and tests (a MoteT value) this runs a `ContractTestPlan`, i.e. passes its + -- stored distribution and tests to our handler, and then makes a new `ContractTestPlan`, but this time + -- storing a tuple of stored and passed distributions and also storing a pair of Mote tests, modifying + -- the previously stored tests to use the first distribution, and the passed tests the second distribution + -- + -- `go` starts at the top of the test tree and step-by-step constructs a big `ContractTestPlan` which + -- stores distributions of all inner tests tupled together and tests from the original test tree, which + -- know how to get their distribution out of the big tuple. + addTests + :: forall (distr :: Type) (wallets :: Type) + . ContractTestPlanHandler distr wallets (State ContractTestPlan Unit) + addTests distr tests = do + modify_ \(ContractTestPlan runContractTestPlan) -> runContractTestPlan + \distr' tests' -> ContractTestPlan \h -> h (distr' /\ distr) do + mapTest (_ <<< fst) tests' + mapTest (_ <<< snd) tests + + -- Start with an empty plan, which passes an empty distribution + -- and an empty array of test `Description`s to the function that + -- will run tests. + emptyContractTestPlan :: ContractTestPlan + emptyContractTestPlan = ContractTestPlan \h -> h unit (pure unit) + +-- | Provide a `ContractEnv` connected to cardano-testnet. +-- | can be used to run multiple `Contract`s using `runContractInEnv`. +startTestnetContractEnv + :: forall (distr :: Type) (wallets :: Type) + . UtxoDistribution distr wallets + => TestnetConfig + -> distr + -> Ref (Array (Aff Unit)) + -> Aff + { cluster :: StartedTestnetCluster + , env :: ContractEnv + , wallets :: wallets + , printLogs :: Aff Unit + , clearLogs :: Aff Unit + } +startTestnetContractEnv cfg distr cleanupRef = do + _ <- cleanupOnExit cleanupRef + cluster <- startTestnetCluster cfg cleanupRef + { env, printLogs, clearLogs } <- makeClusterContractEnv cleanupRef cfg + let env' = env { networkId = TestnetId } + wallets <- mkWallets env' cluster + pure + { cluster + , env: env' + , wallets + , printLogs + , clearLogs + } + where + mkWallets :: ContractEnv -> StartedTestnetCluster -> Aff wallets + mkWallets env cluster = + runContractInEnv env do + genesisWallets <- liftEffect readGenesisWallets + let + nodeCfg = + { socketPath: (unwrap cluster).paths.nodeSocketPath + , testnetMagic: cfg.clusterConfig.testnetMagic + } + wallets /\ distrPlan <- makeDistrFundsPlan + (withCardanoCliCompletion nodeCfg) + genesisWallets + distr + execDistrFundsPlan (withCardanoCliCompletion nodeCfg) distrPlan + pure wallets + where + readGenesisWallets :: Effect (Array KeyWallet) + readGenesisWallets = + traverse + ( \location -> do + paymentKey <- read872GenesisKey location + pure $ mkKeyWalletFromPrivateKeys paymentKey Nothing + ) + (unwrap cluster).paths.genesisKeys + +execDistrFundsPlan + :: (forall a. Address -> Contract a -> Contract a) + -> Array (Array (DistrFunds.Tx KeyWallet BigInt)) + -> Contract Unit +execDistrFundsPlan withCardanoCliUtxos rounds = do + network <- getNetworkId + roundsFixed <- + liftContractM "Could not convert target amounts to BigNum's" $ + traverse (traverse (traverse BigNum.fromBigInt)) rounds + traverse_ + ( parTraverse + ( \(DistrFunds.Tx { srcWallet: genesisWallet, utxos }) -> do + withKeyWallet genesisWallet do + genesisAddr <- liftedM "Could not get genesis address" + getWalletAddress + withCardanoCliUtxos genesisAddr do + constraints <- liftAff $ fold <$> traverse + ( \{ wallet, amount } -> do + addrs <- (unwrap wallet).address network + pure $ mustPayToAddress addrs $ Value.lovelaceValueOf + amount + ) + utxos + + txHash <- submitTxFromConstraints mempty constraints + logInfo' $ "FundWalletsFromGenesis txHash: " <> show txHash + awaitTxConfirmed txHash + ) + ) + roundsFixed + +makeDistrFundsPlan + :: forall (distr :: Type) (wallets :: Type) + . UtxoDistribution distr wallets + => (forall a. Address -> Contract a -> Contract a) + -> Array KeyWallet + -> distr + -> Contract (wallets /\ Array (Array (DistrFunds.Tx KeyWallet BigInt))) +makeDistrFundsPlan withCardanoCliUtxos genesisWallets distr = do + let distrArray = map BigNum.toBigInt <$> encodeDistribution distr + privateKeys <- + for (encodeDistribution distr) \_ -> + liftEffect $ wrap <$> Csl.privateKey_generateEd25519 + wallets <- + liftContractM + "Impossible happened: could not decode wallets. Please report as bug" + $ decodeWallets distr privateKeys + let + kws = keyWallets (Proxy :: _ distr) wallets + targets = Array.concat $ sequence <$> Array.zip kws distrArray + sources <- Array.concat <$> + parTraverse (\kw -> map (Tuple kw) <$> getGenesisUtxos kw) + genesisWallets + distrPlan <- + liftContractE $ + DistrFunds.makeDistributionPlan distrFundsParams sources targets + pure $ wallets /\ distrPlan + where + getGenesisUtxos :: KeyWallet -> Contract (Array BigInt) + getGenesisUtxos genesisWallet = + withKeyWallet genesisWallet do + genesisAddr <- liftedM "Could not get genesis address" getWalletAddress + withCardanoCliUtxos genesisAddr do + liftedM "Could not get genesis wallet utxos" getWalletUtxos + <#> map + ( BigNum.toBigInt + <<< unwrap + <<< Value.getCoin + <<< _.amount + <<< unwrap + ) + <<< Array.fromFoldable + <<< Map.values + +-- FIXME: adjust values +distrFundsParams :: DistrFundsParams KeyWallet BigInt +distrFundsParams = + { maxRounds: 3 + , maxUtxosPerTx: 100 + , getUtxoMinAdaForWallet: const zero + , feePerTx: BigInt.fromInt 2_000_000 + } + +-- FIXME: move to helpers +mustPayToAddress :: Address -> Value -> TxConstraints +mustPayToAddress addr = + let + mSkh = case getStakeCredential addr of + Just (StakeCredential (PubKeyHashCredential skh')) -> Just $ + StakePubKeyHash skh' + _ -> Nothing + in + case getPaymentCredential addr of + Just (PaymentCredential (PubKeyHashCredential pkh)) -> + case mSkh of + Nothing -> + Constraints.mustPayToPubKey $ wrap pkh + Just skh -> + Constraints.mustPayToPubKeyAddress (wrap pkh) skh + _ -> mempty diff --git a/src/Internal/Testnet/DistributeFunds.purs b/src/Internal/Testnet/DistributeFunds.purs new file mode 100644 index 000000000..c2f801c19 --- /dev/null +++ b/src/Internal/Testnet/DistributeFunds.purs @@ -0,0 +1,252 @@ +module Ctl.Internal.Testnet.DistributeFunds + ( makeDistributionPlan + , parallelizedDistributionPlan + , SourceState(SourceState) + , Tx(Tx) + , _completeTxs + , _leftover + , _source + , _total + , _totalUtxos + , _tx + , _utxos + -- * Exported for testing purposes + , assignUtxo + , emptyTx + , initialSourceState + ) where + +import Contract.Prelude + +import Control.Alt ((<|>)) +import Data.Array as Array +import Data.Bifunctor (class Bifunctor, bimap) +import Data.Lens (Lens', view, (%~), (+~), (-~), (.~), (^.)) +import Data.Lens.Iso.Newtype (_Newtype) +import Data.Lens.Record (prop) +import Data.List (List(Cons, Nil)) +import Data.List as List +import Data.Map (Map) +import Data.Map as Map +import Effect.Exception.Unsafe (unsafeThrow) +import Type.Proxy (Proxy(Proxy)) + +newtype Tx src target amount = Tx + { source :: { key :: src } + , total :: amount + , totalUtxos :: Int + , utxos :: List { key :: target, amount :: amount } + } + +derive instance Newtype (Tx s t a) _ +derive instance Generic (Tx s t a) _ +derive instance (Eq s, Eq t, Eq a) => Eq (Tx s t a) +derive instance (Ord s, Ord t, Ord a) => Ord (Tx s t a) +instance (Show s, Show t, Show a) => Show (Tx s t a) where + show = genericShow + +emptyTx + :: forall target amount + . amount + -> Tx Unit target amount +emptyTx total = Tx + { source: { key: unit } + , total + , totalUtxos: 0 + , utxos: Nil + } + +newtype SourceState src target amount = SourceState + { source :: src + , leftover :: amount + , tx :: Tx Unit target amount + , completeTxs :: List (Tx Unit target amount) + } + +derive instance Newtype (SourceState s t a) _ +derive instance Generic (SourceState s t a) _ +derive instance (Eq s, Eq t, Eq a) => Eq (SourceState s t a) +derive instance (Ord s, Ord t, Ord a) => Ord (SourceState s t a) +instance (Show s, Show t, Show a) => Show (SourceState s t a) where + show = genericShow + +initialSourceState + :: forall src target amount + . Semiring amount + => { initialFunds :: amount, key :: src } + -> SourceState src target amount +initialSourceState { initialFunds, key } = SourceState + { source: key + , leftover: initialFunds + , tx: emptyTx zero + , completeTxs: Nil + } + +parallelizedDistributionPlan + :: forall src target amount + . Map src (Array (Tx Unit target amount)) + -> Array (Map src (Tx Unit target amount)) +parallelizedDistributionPlan _ = unsafeThrow "hello" + +makeDistributionPlan + :: forall src target amount + . Ord src + => Ord amount + => Ord target + => Ring amount + => Map src amount + -> Map target (Array amount) + -> { maxCoinPerTx :: amount + , maxTargetUtxosPerTx :: Int + } + -> Either + { err :: String + , acc :: List (SourceState src target amount) + } + (Map src (Array (Tx Unit target amount))) +makeDistributionPlan sources targets thresholds = do + let + targetsUtxosAsc :: List { key :: target, amount :: amount } + targetsUtxosAsc = List.sortBy (flip compare) + $ Map.toUnfoldable targets + >>= \(key /\ utxos) -> + { key, amount: _ } <$> List.fromFoldable utxos + + assigned :: Either _ (Map src (Array (Tx Unit target amount))) + assigned = do + sourcesTxs <- foldM + (flip $ assignUtxo thresholds) + ( initialSourceState <<< uncurry { key: _, initialFunds: _ } <$> + Map.toUnfoldable sources + ) + targetsUtxosAsc + let + finish src = + src + # (_tx .~ emptyTx zero) + # (_completeTxs %~ Cons (src ^. _tx)) + sourceToTxs = Map.fromFoldable + $ Tuple + <<< view _source + <*> Array.fromFoldable + <<< view _completeTxs + <<< finish + <$> sourcesTxs + pure sourceToTxs + assigned + +assignUtxo + :: forall target src amount + . Ord amount + => Ring amount + => { maxCoinPerTx :: amount + , maxTargetUtxosPerTx :: Int + } + -> { amount :: amount, key :: target } + -> List (SourceState src target amount) + -> Either + { err :: String + , acc :: List (SourceState src target amount) + } + (List (SourceState src target amount)) +assignUtxo _ _ Nil = Left + { err: "Ran out of sources", acc: Nil } +assignUtxo thresholds utxo acc@(Cons source sources) + | 0 >= thresholds.maxTargetUtxosPerTx = + Left { err: "maxTargetUtxosPerTx must be greater than 1", acc } + | utxo.amount >= thresholds.maxCoinPerTx = + Left + { err: "UTxO required amount is higher than the maxCoinPerTx threshold" + , acc + } + | (source ^. _tx <<< _totalUtxos) + >= thresholds.maxTargetUtxosPerTx = + -- means that this Tx is complete + assignUtxo thresholds utxo + $ startNewTx source sources -- be careful: infinite loop + -- it will terminate because new tx has 0 utxos which is higher than 'maxTargetUtxosPerTx' + | (source ^. _tx <<< _total) + utxo.amount + > thresholds.maxCoinPerTx = + -- means that utxo cannot be fit in this Tx + let + -- try fit this utxo in any source + tryAnother = tryWithAnotherSource + "Cannot fit UTxO amount into the Tx" + (assignUtxo thresholds utxo) + source + sources + -- if no source can fit this utxo, create a new tx + startNew = assignUtxo thresholds utxo + $ startNewTx source sources -- be careful: infinite loop + -- it will terminate because either new Tx starting with 0 total can fit it + -- or the condition above will throw Left + in + tryAnother <|> startNew + | source ^. _leftover < utxo.amount = + -- means that this source cannot fit this tx + -- should try with the rest of sources and fail otherwise + tryWithAnotherSource + "Not enough funds on sources" + (assignUtxo thresholds utxo) + source + sources + | otherwise = + -- means that utxo can be fit into the current tx + let + source' = source + # (_leftover -~ utxo.amount) + # (_tx <<< _total +~ utxo.amount) + # (_tx <<< _totalUtxos +~ 1) + # (_tx <<< _utxos %~ Cons utxo) + in + Right $ Cons source' sources + +-- * Helpers + +-- helper for assignUtxo +tryWithAnotherSource + :: forall s f + . Bifunctor f + => String + -> (List s -> f { err :: String, acc :: List s } (List s)) + -> s + -> List s + -> f { err :: String, acc :: List s } (List s) +tryWithAnotherSource err self source sources = + bimap (\e -> e { err = err <> "/" <> e.err, acc = Cons source e.acc }) + (Cons source) + $ self sources + +-- helper for assignUtxo +startNewTx + :: forall src target amount + . Semiring amount + => SourceState src target amount + -> List (SourceState src target amount) + -> List (SourceState src target amount) +startNewTx source sources = + List.snoc sources + $ (_tx .~ emptyTx zero) + $ (_completeTxs %~ Cons (source ^. _tx)) + $ source + +_totalUtxos :: forall s t a. Lens' (Tx s t a) Int +_totalUtxos = _Newtype <<< prop (Proxy :: _ "totalUtxos") + +_utxos :: forall s t a. Lens' (Tx s t a) (List { key :: t, amount :: a }) +_utxos = _Newtype <<< prop (Proxy :: _ "utxos") + +_total :: forall s t a. Lens' (Tx s t a) a +_total = _Newtype <<< prop (Proxy :: _ "total") + +_tx :: forall s t a. Lens' (SourceState s t a) (Tx Unit t a) +_tx = _Newtype <<< prop (Proxy :: _ "tx") + +_leftover :: forall s t a. Lens' (SourceState s t a) a +_leftover = _Newtype <<< prop (Proxy :: _ "leftover") + +_source :: forall s t a. Lens' (SourceState s t a) s +_source = _Newtype <<< prop (Proxy :: _ "source") + +_completeTxs :: forall s t a. Lens' (SourceState s t a) (List (Tx Unit t a)) +_completeTxs = _Newtype <<< prop (Proxy :: _ "completeTxs") diff --git a/src/Internal/Testnet/DistributeFundsV2.purs b/src/Internal/Testnet/DistributeFundsV2.purs new file mode 100644 index 000000000..4476cc86f --- /dev/null +++ b/src/Internal/Testnet/DistributeFundsV2.purs @@ -0,0 +1,266 @@ +module Ctl.Internal.Testnet.DistributeFundsV2 where + +import Prelude + +import Control.Monad.Rec.Class (Step(Done, Loop), tailRecM) +import Control.Safely (foldM) +import Data.Array (fromFoldable, snoc) as Array +import Data.Bifunctor (class Bifunctor) +import Data.Either (Either(Left, Right)) +import Data.Foldable + ( class Foldable + , foldMap + , foldlDefault + , foldr + , foldrDefault + ) +import Data.Generic.Rep (class Generic) +import Data.List (List(Cons, Nil)) +import Data.List (filter, fromFoldable) as List +import Data.Newtype (class Newtype, modify, unwrap, wrap) +import Data.Show.Generic (genericShow) +import Data.Traversable (class Traversable, sequenceDefault, traverse) +import Data.Tuple (uncurry) +import Data.Tuple.Nested (type (/\), (/\)) + +type DistrFundsParams wallet amount = + { maxRounds :: Int + , maxUtxosPerTx :: Int + , getUtxoMinAdaForWallet :: wallet -> amount + , feePerTx :: amount + } + +-- + +newtype Tx wallet amount = Tx + { srcWallet :: wallet + , numUtxos :: Int + , utxos :: List { wallet :: wallet, amount :: amount } + } + +derive instance Generic (Tx wallet amount) _ +derive instance Newtype (Tx wallet amount) _ +derive instance (Eq wallet, Eq amount) => Eq (Tx wallet amount) + +instance (Show wallet, Show amount) => Show (Tx wallet amount) where + show = genericShow + +instance Functor (Tx wallet) where + map f (Tx tx) = + wrap $ tx + { utxos = + map (\utxo -> utxo { amount = f utxo.amount }) + tx.utxos + } + +instance Bifunctor Tx where + bimap f g (Tx tx) = + wrap $ tx + { srcWallet = f tx.srcWallet + , utxos = map (\utxo -> { wallet: f utxo.wallet, amount: g utxo.amount }) + tx.utxos + } + +instance Foldable (Tx wallet) where + foldl f a = foldlDefault f a + foldr f a = foldrDefault f a + foldMap f = foldMap (f <<< _.amount) <<< _.utxos <<< unwrap + +instance Traversable (Tx wallet) where + sequence = sequenceDefault + traverse f (Tx tx) = ado + utxos <- traverse + (\{ wallet, amount } -> { wallet, amount: _ } <$> f amount) + tx.utxos + in wrap $ tx { utxos = utxos } + +emptyTx :: forall wallet amount. wallet -> Tx wallet amount +emptyTx srcWallet = wrap + { srcWallet + , numUtxos: zero + , utxos: Nil + } + +isTxNonEmpty :: forall wallet amount. Tx wallet amount -> Boolean +isTxNonEmpty (Tx { numUtxos }) = numUtxos > zero + +-- + +type SourceState wallet amount = + { srcWallet :: wallet + , leftover :: amount + , currentTx :: Tx wallet amount + } + +initSourceState + :: forall wallet amount + . wallet + -> amount + -> SourceState wallet amount +initSourceState srcWallet initFunds = + { srcWallet + , leftover: initFunds + , currentTx: emptyTx srcWallet + } + +resetSourceTx + :: forall wallet amount + . SourceState wallet amount + -> SourceState wallet amount +resetSourceTx src = src { currentTx = emptyTx src.srcWallet } + +-- + +data DistrFundsError + = DistrFunds_MaxUtxosPerTxLowerLimitError + | DistrFunds_AssignUtxoError + | DistrFunds_MaxRoundsExceededError + +derive instance Generic DistrFundsError _ +derive instance Eq DistrFundsError + +instance Show DistrFundsError where + show = genericShow + +type DistrFundsRoundResult wallet amount = + { sources :: List (SourceState wallet amount) + , deferredTargets :: List (wallet /\ amount) + } + +data AssignUtxoResult wallet amount + = AssignUtxo_Unassigned + | AssignUtxo_Deferred + | AssignUtxo_AssignedToSource (SourceState wallet amount) + +derive instance Generic (AssignUtxoResult wallet amount) _ +derive instance (Eq wallet, Eq amount) => Eq (AssignUtxoResult wallet amount) + +instance (Show wallet, Show amount) => Show (AssignUtxoResult wallet amount) where + show = genericShow + +makeDistributionPlan + :: forall wallet amount + . Ord amount + => Ring amount + => DistrFundsParams wallet amount + -> Array (wallet /\ amount) + -> Array (wallet /\ amount) + -> Either DistrFundsError (Array (Array (Tx wallet amount))) +makeDistributionPlan params initSources initTargets + | params.maxUtxosPerTx < one = Left DistrFunds_MaxUtxosPerTxLowerLimitError + | otherwise = + tailRecM worker + { sources: List.fromFoldable $ uncurry initSourceState <$> initSources + , targets: List.fromFoldable initTargets + , rounds: mempty + , roundIdx: zero + } + where + worker { sources, targets, rounds, roundIdx } + | roundIdx == params.maxRounds = + Left DistrFunds_MaxRoundsExceededError + | otherwise = + runDistrFundsRound params sources targets <#> \res -> + let + completedTxs = List.filter isTxNonEmpty $ _.currentTx <$> + res.sources + rounds' = Array.snoc rounds $ Array.fromFoldable completedTxs + in + case res.deferredTargets of + Nil -> Done rounds' + _ -> Loop + { sources: resetSourceTx <$> res.sources + , targets: res.deferredTargets + , rounds: rounds' + , roundIdx: roundIdx + one + } + +runDistrFundsRound + :: forall wallet amount + . Ord amount + => Ring amount + => DistrFundsParams wallet amount + -> List (SourceState wallet amount) + -> List (wallet /\ amount) + -> Either DistrFundsError (DistrFundsRoundResult wallet amount) +runDistrFundsRound params initSources targets = + foldM + ( \distrFundsAcc target -> + let + assignUtxoRes /\ sourcesUpdated = + foldr (tryNextSource params target) (AssignUtxo_Unassigned /\ Nil) + distrFundsAcc.sources + in + case assignUtxoRes of + AssignUtxo_Unassigned -> + Left DistrFunds_AssignUtxoError + AssignUtxo_Deferred -> + Right $ distrFundsAcc + { deferredTargets = Cons target distrFundsAcc.deferredTargets + } + AssignUtxo_AssignedToSource _ -> + Right $ distrFundsAcc + { sources = sourcesUpdated + } + ) + { sources: initSources + , deferredTargets: Nil + } + targets + +tryNextSource + :: forall wallet amount + . Ord amount + => Ring amount + => DistrFundsParams wallet amount + -> wallet /\ amount + -> SourceState wallet amount + -> AssignUtxoResult wallet amount /\ List (SourceState wallet amount) + -> AssignUtxoResult wallet amount /\ List (SourceState wallet amount) +tryNextSource params (targetWallet /\ amount) source (acc /\ sources) = + case acc of + AssignUtxo_AssignedToSource _ -> + -- utxo already assigned, skip other sources + acc /\ Cons source sources + _ -> + let + targetNormalized = + targetWallet /\ max (params.getUtxoMinAdaForWallet targetWallet) + amount + in + case acc, assignUtxoToSource params source targetNormalized of + AssignUtxo_Deferred, AssignUtxo_Unassigned -> + -- utxo marked as deferred that cannot fit into the current tx + -- should remain deferred + AssignUtxo_Deferred /\ Cons source sources + _, new@(AssignUtxo_AssignedToSource sourceUpdated) -> + new /\ Cons sourceUpdated sources + _, new -> + new /\ Cons source sources + +assignUtxoToSource + :: forall wallet amount + . Ord amount + => Ring amount + => DistrFundsParams wallet amount + -> SourceState wallet amount + -> wallet /\ amount + -> AssignUtxoResult wallet amount +assignUtxoToSource params source (targetWallet /\ amountNormalized) + | (source.leftover - params.feePerTx) < amountNormalized = + AssignUtxo_Unassigned + | (unwrap source.currentTx).numUtxos + one > params.maxUtxosPerTx = + AssignUtxo_Deferred + | otherwise = + AssignUtxo_AssignedToSource $ source + { leftover = source.leftover - amountNormalized + , currentTx = modify + ( \tx -> tx + { numUtxos = tx.numUtxos + one + , utxos = Cons + { wallet: targetWallet, amount: amountNormalized } + tx.utxos + } + ) + source.currentTx + } diff --git a/src/Internal/Testnet/Server.purs b/src/Internal/Testnet/Server.purs new file mode 100644 index 000000000..a2959bf53 --- /dev/null +++ b/src/Internal/Testnet/Server.purs @@ -0,0 +1,603 @@ +module Ctl.Internal.Testnet.Server + ( Channels + , StartedTestnetCluster(MkStartedTestnetCluster) + , startKupo + , startOgmios + , startTestnetCluster + , makeClusterContractEnv + ) where + +import Contract.Prelude hiding (log) + +import Cardano.Types (NetworkId(MainnetId)) +import Contract.Config (Hooks, defaultSynchronizationParams, defaultTimeParams) +import Contract.Monad (ContractEnv) +import Control.Alt ((<|>)) +import Control.Apply (applySecond) +import Control.Monad.Error.Class (throwError) +import Control.Monad.Rec.Class (Step(Loop), tailRecM) +import Ctl.Internal.Contract.Monad + ( buildBackend + , getLedgerConstants + , mkQueryHandle + , stopContractEnv + ) +import Ctl.Internal.Contract.QueryBackend (mkCtlBackendParams) +import Ctl.Internal.Helpers ((<>)) +import Ctl.Internal.Logging (Logger, mkLogger, setupLogs) +import Ctl.Internal.QueryM.UniqueId (uniqueId) +import Ctl.Internal.ServerConfig (ServerConfig) +import Ctl.Internal.Spawn + ( ManagedProcess(ManagedProcess) + , NewOutputAction(NoOp, Success) + , _rmdirSync + , isPortAvailable + , killProcessWithPort + , spawn + , stop + ) +import Ctl.Internal.Testnet.Types + ( Node + , TestnetClusterConfig + , TestnetConfig + , TestnetPaths + ) +import Ctl.Internal.Testnet.Utils + ( EventSource + , addCleanup + , after + , annotateError + , findNodeDirs + , findTestnetPaths + , getRuntime + , onLine + , readNodes + , runCleanup + , scheduleCleanup + , suppressAndLogErrors + , tmpdir + , tryAndLogErrors + , waitForClose + , waitForError + , waitForEvent + , waitUntil + ) +import Ctl.Internal.Types.UsedTxOuts (newUsedTxOuts) +import Data.Log.Message (Message) +import Data.Maybe (Maybe(Nothing, Just)) +import Data.Set as Set +import Data.String (stripPrefix, trim) as String +import Data.String.CodeUnits (indexOf) as String +import Data.String.Pattern (Pattern(Pattern)) +import Data.Time.Duration (Milliseconds(Milliseconds)) +import Data.UInt (UInt) +import Data.UInt (toString) as UInt +import Effect.Aff (Aff) +import Effect.Aff as Aff +import Effect.Aff.Retry + ( RetryPolicy + , constantDelay + , limitRetriesByCumulativeDelay + , recovering + ) +import Effect.Exception (Error, error, throw) +import Effect.Ref (Ref) +import Effect.Ref (modify_, new, read, write) as Ref +import Foreign.Object as Object +import Node.ChildProcess (defaultSpawnOptions) +import Node.ChildProcess as Node.ChildProcess +import Node.Encoding (Encoding(UTF8)) +import Node.FS.Sync (exists, mkdir) as FSSync +import Node.FS.Sync as Node.FS +import Node.Path (FilePath) +import Node.Process as Node.Process + +type Channels a = + { stderr :: EventSource a + , stdout :: EventSource a + } + +newtype StartedTestnetCluster = MkStartedTestnetCluster + { ogmios :: + { process :: ManagedProcess + , channels :: Channels String + } + , kupo :: + { process :: ManagedProcess + , channels :: Channels String + , workdir :: FilePath + } + , testnet :: + { process :: ManagedProcess + , channels :: Channels String + } + , paths :: TestnetPaths + } + +derive instance Newtype StartedTestnetCluster _ + +startOgmios + :: forall r r' + . { ogmiosConfig :: ServerConfig | r } + -> { nodeSocketPath :: FilePath + , nodeConfigPath :: FilePath + | r' + } + -> Aff ManagedProcess +startOgmios cfg params = do + spawn "ogmios" ogmiosArgs defaultSpawnOptions + $ Just + $ _.output + >>> String.indexOf (Pattern "networkParameters") + >>> maybe NoOp (const Success) + >>> pure + where + ogmiosArgs :: Array String + ogmiosArgs = + [ "--host" + , cfg.ogmiosConfig.host + , "--port" + , UInt.toString cfg.ogmiosConfig.port + , "--node-socket" + , params.nodeSocketPath + , "--node-config" + , params.nodeConfigPath + , "--include-transaction-cbor" + ] + +startKupo + :: forall r r' + . { kupoConfig :: ServerConfig | r } + -> { nodeSocketPath :: FilePath + , nodeConfigPath :: FilePath + | r' + } + -> Ref (Array (Aff Unit)) + -> Aff (ManagedProcess /\ String) +startKupo cfg params cleanupRef = do + tmpDir <- liftEffect tmpdir + randomStr <- liftEffect $ uniqueId "" + let + workdir = tmpDir <> randomStr <> "-kupo-db" + liftEffect do + workdirExists <- FSSync.exists workdir + unless workdirExists (FSSync.mkdir workdir) + childProcess <- + after + (spawnKupoProcess workdir) + -- set up cleanup + $ const + $ liftEffect + $ addCleanup cleanupRef + $ liftEffect + $ _rmdirSync workdir + pure (childProcess /\ workdir) + where + spawnKupoProcess :: FilePath -> Aff ManagedProcess + spawnKupoProcess workdir = + spawn "kupo" (kupoArgs workdir) defaultSpawnOptions $ + Just + ( _.output >>> String.indexOf outputString + >>> maybe NoOp (const Success) + >>> pure + ) + where + outputString :: Pattern + outputString = Pattern "ConfigurationCheckpointsForIntersection" + + kupoArgs :: FilePath -> Array String + kupoArgs workdir = + [ "--match" + , "*/*" + , "--since" + , "origin" + , "--workdir" + , workdir + , "--host" + , cfg.kupoConfig.host + , "--port" + , UInt.toString cfg.kupoConfig.port + , "--node-socket" + , params.nodeSocketPath + , "--node-config" + , params.nodeConfigPath + ] + +-- | Start the testnet cluster, initializing the state with the given +-- | UTxO distribution. Also initializes an extra payment key (aka +-- | `ourKey`) with some UTxOs for use with further testnet +-- | setup. `ourKey` has funds proportional to the total amount of the +-- | UTxOs in the passed distribution, so it can be used to handle +-- | transaction fees. +startTestnetCluster + :: TestnetConfig + -> Ref (Array (Aff Unit)) + -> Aff StartedTestnetCluster +startTestnetCluster cfg cleanupRef = do + { testnet, channels, workdirAbsolute } <- + annotateError "Could not start cardano-testnet" $ + startCardanoTestnet cfg.clusterConfig cleanupRef + + { paths } <- waitUntil (Milliseconds 4000.0) + $ map hush + $ tryAndLogErrors "Waiting for ready state" + $ liftEffect do + + paths <- liftEither =<< findTestnetPaths { workdir: workdirAbsolute } + runtime <- getRuntime paths + pure { runtime, paths } + + ogmios <- annotateError "Could not start ogmios" + $ startOgmios' { paths, workdir: workdirAbsolute } + kupo <- annotateError "Could not start kupo" + $ startKupo' { paths, workdir: workdirAbsolute } + + pure $ MkStartedTestnetCluster + { paths + , ogmios + , kupo + , testnet: { process: testnet, channels } + } + where + startKupo' { paths, workdir } = do + kupo /\ kupoWorkdir <- + scheduleCleanup + cleanupRef + (startKupo cfg paths cleanupRef) + (stopChildProcessWithPort cfg.kupoConfig.port <<< fst) + + void $ Aff.forkAff (waitForClose kupo *> runCleanup cleanupRef) + + kupoChannels <- liftEffect $ getChannels kupo + _ <- redirectChannels + kupoChannels + { stderrTo: + { log: Just $ workdir <> "kupo.stderr.log" + , console: Just "[kupo][error]: " + } + , stdoutTo: + { log: Just $ workdir <> "kupo.stdout.log", console: Nothing } + } + pure { process: kupo, workdir: kupoWorkdir, channels: kupoChannels } + + startOgmios' { paths, workdir } = do + ogmios <- + scheduleCleanup + cleanupRef + (startOgmios cfg paths) + (stopChildProcessWithPort cfg.ogmiosConfig.port) + + void $ Aff.forkAff (waitForClose ogmios *> runCleanup cleanupRef) + + ogmiosChannels <- liftEffect $ getChannels ogmios + _ <- redirectChannels + ogmiosChannels + { stderrTo: + { log: Just $ workdir <> "ogmios.stderr.log" + , console: Just "[ogmios][error]: " + } + , stdoutTo: + { log: Just $ workdir <> "ogmios.stdout.log", console: Nothing } + } + pure { process: ogmios, channels: ogmiosChannels } + +-- | Runs cardano-testnet executable with provided params. +spawnCardanoTestnet + :: { cwd :: FilePath } + -> TestnetClusterConfig + -> Aff { testnet :: ManagedProcess, workspace :: FilePath } +spawnCardanoTestnet { cwd } params = do + env <- liftEffect Node.Process.getEnv + -- initCwd <- liftMaybe (error "Couldn't find INIT_CWD env variable") + -- $ Object.lookup "INIT_CWD" env + let + env' = Object.fromFoldable + [ "TMPDIR" /\ cwd -- only for 8.1.1; 8.7.2 puts it's testnet directory into cwd instead + -- , "CARDANO_NODE_SRC" /\ (initCwd <> "cardano-testnet-files") + , "CARDANO_CLI" /\ "cardano-cli" + , "CREATE_SCRIPT_CONTEXT" /\ "create-script-context" + , "CARDANO_NODE" /\ "cardano-node" + , "CARDANO_SUBMIT_API" /\ "cardano-submit-api" + , "CARDANO_NODE_CHAIRMAN" /\ "cardano-node-chairman" + ] + opts = defaultSpawnOptions + { cwd = Just cwd, env = Just $ Object.union env' env } + workspaceRef <- liftEffect $ Ref.new mempty + ps <- spawn "cardano-testnet" options opts $ + Just + ( \{ line } -> + case String.stripPrefix (Pattern "Workspace: ") (String.trim line) of + Nothing -> pure NoOp + Just workspace -> do + void $ Ref.write workspace workspaceRef + pure Success + ) + workspace <- liftEffect $ Ref.read workspaceRef + pure { testnet: ps, workspace } + where + flag :: String -> String + flag name = "--" <> name + + option :: forall a. Show a => String -> a -> Array String + option name value = [ flag name, show value ] + + options :: Array String + options = join + [ [ "cardano" ] + , option "testnet-magic" params.testnetMagic + , [ flag $ show params.era ] + , option "slot-length" $ unwrap params.slotLength + , maybe mempty + (\epochSize -> [ flag "epoch-length", UInt.toString epochSize ]) + params.epochSize + ] + +startCardanoTestnet + :: TestnetClusterConfig + -> Ref (Array (Aff Unit)) + -> Aff + { testnet :: ManagedProcess + , channels :: + { stderr :: EventSource String + , stdout :: EventSource String + } + , workdirAbsolute :: FilePath + , nodes :: Array { | Node () } + } +startCardanoTestnet params cleanupRef = annotateError "startCardanoTestnet" do + tmpDir <- liftEffect tmpdir + { testnet, workspace } <- spawnCardanoTestnet { cwd: tmpDir } params + channels <- liftEffect $ getChannels testnet + + void $ Aff.forkAff $ annotateError "startCardanoTestnet:waitForErrorOrClose" + do + let + waitError = Just <$> waitForError testnet + waitClose = Nothing <$ waitForClose testnet + cause <- waitError <|> waitClose + runCleanup cleanupRef + throwError $ fromMaybe (error "cardano-testnet process has exited") cause + + nodes <- + waitUntil (Milliseconds 3000.0) $ liftEffect do + hush <$> tryAndLogErrors "startCardanoTestnet:waitForNodes" do + nodeDirs <- findNodeDirs { workdir: workspace } + readNodes { testnetDirectory: workspace, nodeDirs } + + liftEffect $ + for_ nodes \{ port } -> + addCleanup cleanupRef (killProcessWithPort port) + + -- clean up on SIGINT + do + shouldCleanup <- liftEffect + $ Node.Process.lookupEnv "TESTNET_CLEANUP_WORKDIR" + <#> case _ of + Just "0" -> false + _ -> true + when shouldCleanup + $ liftEffect + $ addCleanup cleanupRef + $ liftEffect do + log $ "Cleaning up workdir: " <> workspace + _rmdirSync workspace + + _ <- redirectChannels + { stderr: channels.stderr, stdout: channels.stdout } + { stdoutTo: + { log: Just $ workspace <> "cardano-testnet.stdout.log" + , console: Nothing + } + , stderrTo: + { log: Just $ workspace <> "cardano-testnet.stderr.log" + , console: Nothing + } + } + + log "startCardanoTestnet:done" + pure { testnet, workdirAbsolute: workspace, channels, nodes } + +getChannels + :: ManagedProcess + -> Effect + { stderr :: EventSource String + , stdout :: EventSource String + } +getChannels (ManagedProcess _ process _) = ado + stdout <- onLine (Node.ChildProcess.stdout process) Just + stderr <- onLine (Node.ChildProcess.stderr process) Just + in { stdout, stderr } + +-- Note: it will not throw, so to check the computation result +-- Fiber must be inspected. +redirectChannels + :: { stderr :: EventSource String + , stdout :: EventSource String + } + -> { stderrTo :: { log :: Maybe FilePath, console :: Maybe String } + , stdoutTo :: { log :: Maybe FilePath, console :: Maybe String } + } + -> Aff (Aff.Fiber (Either Error Unit)) +redirectChannels { stderr, stdout } { stderrTo, stdoutTo } = do + handleStderr <- redirectLogging + stderr + { storeLogs: stderrTo.log <#> + { logFile: _ + , toString: identity + } + , handleLine: case stderrTo.console of + Nothing -> const $ pure unit + Just prefix -> append prefix >>> log + } + handleStdout <- redirectLogging + stdout + { storeLogs: stdoutTo.log <#> + { logFile: _ + , toString: identity + } + , handleLine: case stdoutTo.console of + Nothing -> const $ pure unit + Just prefix -> append prefix >>> log + } + pure $ applySecond <$> handleStderr <*> handleStdout + +redirectLogging + :: forall a + . EventSource a + -> { storeLogs :: + Maybe + { logFile :: FilePath + , toString :: a -> String + } + , handleLine :: a -> Effect Unit + } + -> Aff (Aff.Fiber (Either Error Unit)) +redirectLogging events { handleLine, storeLogs } = + Aff.forkAff $ tryAndLogErrors "redirectLogging" $ flip tailRecM unit \_ -> do + line <- waitForEvent events + liftEffect $ suppressAndLogErrors "redirectLogging: callback error" $ void + do + handleLine line + for storeLogs \{ logFile, toString } -> + Node.FS.appendTextFile UTF8 logFile $ toString line <> "\n" + pure $ Loop unit + +type ClusterConfig r = + ( ogmiosConfig :: ServerConfig + , kupoConfig :: ServerConfig + , hooks :: Hooks + | LogParams r + ) + +-- | TODO: Replace original log params with the row type +type LogParams r = + ( logLevel :: LogLevel + , customLogger :: Maybe (LogLevel -> Message -> Aff Unit) + , suppressLogs :: Boolean + | r + ) + +-- Similar to `Aff.bracket`, except cleanup is pushed onto a stack to be run +-- later. +cleanupBracket + :: forall (a :: Type) (b :: Type) + . Ref (Array (Aff Unit)) + -> Aff a + -> (a -> Aff Unit) + -> (a -> Aff b) + -> Aff b +cleanupBracket cleanupRef before after action = do + Aff.bracket + before + (\res -> liftEffect $ Ref.modify_ ([ after res ] <> _) cleanupRef) + action + +mkLogging + :: forall r + . Record (LogParams r) + -> Effect + { updatedConfig :: Record (LogParams r) + , logger :: Logger + , customLogger :: Maybe (LogLevel -> Message -> Aff Unit) + , printLogs :: Aff Unit + , clearLogs :: Aff Unit + } +mkLogging cfg + | cfg.suppressLogs = ado + -- if logs should be suppressed, setup the machinery and continue with + -- the bracket + { addLogEntry, suppressedLogger, printLogs, clearLogs } <- + setupLogs cfg.logLevel cfg.customLogger + let + configLogger = Just $ map liftEffect <<< addLogEntry + in + { updatedConfig: cfg { customLogger = configLogger } + , logger: suppressedLogger + , customLogger: configLogger + , printLogs: liftEffect printLogs + , clearLogs: liftEffect clearLogs + } + | otherwise = pure + -- otherwise, proceed with the env setup and provide a normal logger + { updatedConfig: cfg + , logger: mkLogger cfg.logLevel cfg.customLogger + , customLogger: cfg.customLogger + , printLogs: pure unit + , clearLogs: pure unit + } + +makeNaiveClusterContractEnv + :: forall r + . Record (ClusterConfig r) + -> Logger + -> Maybe (LogLevel -> Message -> Aff Unit) + -> Aff ContractEnv +makeNaiveClusterContractEnv cfg logger customLogger = do + usedTxOuts <- newUsedTxOuts + backend <- buildBackend logger $ mkCtlBackendParams + { ogmiosConfig: cfg.ogmiosConfig + , kupoConfig: cfg.kupoConfig + } + ledgerConstants <- getLedgerConstants + cfg { customLogger = customLogger } + backend + backendKnownTxs <- liftEffect $ Ref.new Set.empty + pure + { backend + , handle: mkQueryHandle cfg backend + , networkId: MainnetId + , logLevel: cfg.logLevel + , customLogger: customLogger + , suppressLogs: cfg.suppressLogs + , hooks: cfg.hooks + , wallet: Nothing + , usedTxOuts + , ledgerConstants + -- timeParams have no effect when KeyWallet is used + , timeParams: defaultTimeParams + , synchronizationParams: defaultSynchronizationParams + , knownTxs: { backend: backendKnownTxs } + } + +-- | Makes cluster ContractEnv with configured logs suppression and cleanup scheduled. +makeClusterContractEnv + :: forall r + . Ref (Array (Aff Unit)) + -> Record (ClusterConfig r) + -> Aff + { env :: ContractEnv + , clearLogs :: Aff Unit + , printLogs :: Aff Unit + } +makeClusterContractEnv cleanupRef cfg = do + { updatedConfig + , logger + , customLogger + , printLogs + , clearLogs + } <- liftEffect $ mkLogging cfg + cleanupBracket + cleanupRef + (makeNaiveClusterContractEnv updatedConfig logger customLogger) + stopContractEnv + $ pure + <<< { env: _, printLogs, clearLogs } + +-- | Kill a process and wait for it to stop listening on a specific port. +stopChildProcessWithPort :: UInt -> ManagedProcess -> Aff Unit +stopChildProcessWithPort port childProcess = do + stop childProcess + void $ recovering defaultRetryPolicy ([ \_ _ -> pure true ]) + \_ -> do + isAvailable <- isPortAvailable port + unless isAvailable do + liftEffect $ throw "retry" + +defaultRetryPolicy :: RetryPolicy +defaultRetryPolicy = limitRetriesByCumulativeDelay (Milliseconds 3000.00) $ + constantDelay (Milliseconds 100.0) + +-- replace with Effect.Console.log to debug. Not providing an option at runtime, +-- because it's just for the CTL developers. +log :: forall m. Monad m => String -> m Unit +log _ = pure unit diff --git a/src/Internal/Testnet/Types.purs b/src/Internal/Testnet/Types.purs new file mode 100644 index 000000000..556027b52 --- /dev/null +++ b/src/Internal/Testnet/Types.purs @@ -0,0 +1,180 @@ +module Ctl.Internal.Testnet.Types + ( CardanoTestnetStartupParams + , Era(Byron, Shelley, Allegra, Mary, Alonzo, Babbage) + , LoggingFormat(LogAsJson, LogAsText) + , TestnetPaths + , Event(Ready872, Finished, Failed, StartupFailed) + , StartupFailure(SpawnFailed, InitializationFailed) + , NodeLocation + , Node + , GenesisUtxoKeyLocation + , OptionalStartupParams + , TestnetRuntime + , TestnetClusterConfig + , TestnetConfig + , LogParams + , defaultOptionalStartupParams + , defaultStartupParams + ) where + +import Contract.Prelude + +import Contract.Config as Config +import Ctl.Internal.Contract.Hooks (Hooks) +import Ctl.Internal.ServerConfig (ServerConfig) +import Data.Log.Message (Message) +import Data.Time.Duration (Milliseconds, Seconds) +import Data.UInt (UInt) +import Node.Path (FilePath) +import Record as Record + +type TestnetConfig = + { logLevel :: LogLevel + -- Server configs are used to deploy the corresponding services: + , ogmiosConfig :: ServerConfig + , kupoConfig :: ServerConfig + , customLogger :: Maybe (LogLevel -> Message -> Aff Unit) + , suppressLogs :: Boolean + , hooks :: Hooks + , clusterConfig :: TestnetClusterConfig + } + +type TestnetClusterConfig = + { testnetMagic :: Int + , era :: Era + , slotLength :: Seconds + , epochSize :: Maybe UInt + -- FIXME: , maxTxSize :: Maybe UInt + -- FIXME: , raiseExUnitsToMax :: Boolean + } + +data Era + = Byron + | Shelley + | Allegra + | Mary + | Alonzo + | Babbage + +data StartupFailure + = SpawnFailed + | InitializationFailed + +derive instance Eq StartupFailure +derive instance Generic StartupFailure _ +instance Show StartupFailure where + show = genericShow + +data Event + = Ready872 -- when cardano-testnet 8.7.2 is ready to go + | Finished + | Failed + | StartupFailed StartupFailure + +derive instance Eq Event +derive instance Generic Event _ +instance Show Event where + show = genericShow + +instance Show Era where + show = case _ of + Byron -> "byron-era" + Shelley -> "shelley-era" + Allegra -> "allegra-era" + Mary -> "mary-era" + Alonzo -> "alonzo-era" + Babbage -> "babbage-era" + +data LoggingFormat = LogAsJson | LogAsText + +instance Show LoggingFormat where + show = case _ of + LogAsJson -> "json" + LogAsText -> "text" + +type OptionalStartupParams r = + ( numPoolNodes :: Maybe Int + , era :: Maybe Era + , epochLength :: Maybe Milliseconds + , slotLength :: Maybe Seconds + , activeSlotsCoeff :: Maybe Number + , enableP2p :: Maybe Boolean + , nodeLoggingFormat :: Maybe LoggingFormat + | r + ) + +-- | Command line params for the cardano-testnet executable +type CardanoTestnetStartupParams r = + ( testnetMagic :: Int + | OptionalStartupParams r + ) + +defaultStartupParams + :: { testnetMagic :: Int } -> Record (CardanoTestnetStartupParams ()) +defaultStartupParams necessaryParams = + defaultOptionalStartupParams `Record.union` necessaryParams + +defaultOptionalStartupParams :: Record (OptionalStartupParams ()) +defaultOptionalStartupParams = + { numPoolNodes: Nothing + , era: Just Babbage + , epochLength: Nothing + , slotLength: Nothing + , activeSlotsCoeff: Nothing + , enableP2p: Nothing + , nodeLoggingFormat: Nothing + } + +type TestnetPaths = + { testnetDirectory :: FilePath + , genesisKeys :: Array { | GenesisUtxoKeyLocation () } + , nodeConfigPath :: FilePath + , nodeSocketPath :: FilePath + , nodeDirs :: Array { | NodeLocation () } + } + +type Node r = + ( socket :: FilePath + , port :: UInt + | NodeLocation r + ) + +type NodeLocation r = + ( idx :: Int + , name :: String + , workdir :: FilePath + | r + ) + +type GenesisUtxoKeyLocation r = + ( path :: FilePath + , idx :: Int + | r + ) + +{- +type TestnetClusterConfig r = + ( hooks :: Config.Hooks + | KupmiosConfig (LogParams r) + ) +-} + +type LogParams r = + ( logLevel :: LogLevel + , customLogger :: Maybe (LogLevel -> Config.Message -> Aff Unit) + , suppressLogs :: Boolean + | r + ) + +{- +type KupmiosConfig r = + ( kupoConfig :: Config.ServerConfig + , ogmiosConfig :: Config.ServerConfig + | r + ) +-} + +type TestnetRuntime r = + ( nodes :: Array { | Node () } + | r + ) diff --git a/src/Internal/Testnet/Utils.js b/src/Internal/Testnet/Utils.js new file mode 100644 index 000000000..45bf58db6 --- /dev/null +++ b/src/Internal/Testnet/Utils.js @@ -0,0 +1,62 @@ +import os from "os"; + +try { + process.setMaxListeners(10000); +} catch (e) { + console.warn(e); +} + +export function tmpdir() { + return os.tmpdir(); +} + +export function setLineHandler(interf) { + return callback => () => { + const signal = "line"; + const cb = line => callback(line)(); + interf.on(signal, cb); + return { signal, callback: cb }; + }; +} +export function setErrorHandler(interfc) { + return callback => () => { + const signal = "error"; + const cb = err => callback(err)(); + interfc.on(signal, cb); + return { signal, callback: cb }; + }; +} +export function onExit(callback) { + const cb = exitcode => { + callback(exitcode)(); + }; + const signal = "exit"; + return () => { + process.on(signal, cb); + return { signal, callback }; + }; +} +export function onBeforeExit(callback) { + const signal = "beforeExit"; + return () => { + process.on(signal, callback); + return { signal, callback }; + }; +} +export function onUncaughtException(callback) { + const cb = error => { + callback(error)(); + }; + const signal = "uncaughtException"; + return () => { + process.on(signal, cb); + return { signal, callback }; + }; +} +export function setCloseHandler(readline) { + return callback => () => { + const signal = "close"; + readline.on(signal, callback); + return { signal, callback }; + }; +} diff --git a/src/Internal/Testnet/Utils.purs b/src/Internal/Testnet/Utils.purs new file mode 100644 index 000000000..401191c03 --- /dev/null +++ b/src/Internal/Testnet/Utils.purs @@ -0,0 +1,615 @@ +module Ctl.Internal.Testnet.Utils + ( find811TestnetWorkir + , findNodeDirs + , EventSource(EventSource) + , onLine + , makeEventSource + , findTestnetPaths + , getNodePort + , getRuntime + , scheduleCleanup + , addCleanup + , tmpdir + , runCleanup + , tryAndLogErrors + , suppressAndLogErrors + , after + , is811TestnetDirectoryName + , onTestnetEvent + , parseEvent + , readNodes + , read872GenesisKey + , whenError + , waitFor + , waitForClose + , waitForError + , waitForEvent + , waitUntil + , waitForTestnet872Workdir + , cleanupOnExit + , annotateError + ) where + +import Contract.Prelude hiding (log) + +import Contract.Config as Contract.Config +import Contract.TextEnvelope + ( TextEnvelope(TextEnvelope) + , TextEnvelopeType(PaymentSigningKeyShelleyed25519) + , decodeTextEnvelope + ) +import Contract.Wallet.KeyFile (privatePaymentKeyFromTextEnvelope) +import Control.Alt ((<|>)) +import Control.Monad.Error.Class + ( class MonadError + , catchError + , liftMaybe + , throwError + ) +import Control.Monad.Except (lift, runExceptT) +import Control.Monad.Rec.Class (Step(Done, Loop), tailRecM) +import Control.Parallel (parallel, sequential) +import Ctl.Internal.Helpers ((<>)) +import Ctl.Internal.QueryM.UniqueId (uniqueId) +import Ctl.Internal.Spawn + ( ManagedProcess(ManagedProcess) + , OnSignalRef + , removeOnSignal + , waitForSignal + ) +import Ctl.Internal.Testnet.Types + ( Event(Ready872, Finished, StartupFailed) + , GenesisUtxoKeyLocation + , Node + , NodeLocation + , StartupFailure(InitializationFailed, SpawnFailed) + , TestnetPaths + , TestnetRuntime + ) +import Data.Array as Array +import Data.Int as Int +import Data.Map as Map +import Data.Posix.Signal (Signal(SIGINT)) +import Data.String (Pattern(Pattern)) +import Data.String as String +import Data.Time.Duration (Milliseconds) +import Data.UInt (UInt) +import Data.UInt as UInt +import Effect.Aff (try) +import Effect.Aff as Aff +import Effect.Class (class MonadEffect) +import Effect.Exception (Error, error, message) +import Effect.Random (randomInt) +import Effect.Ref (Ref) +import Effect.Ref as Ref +import Node.ChildProcess as Node.ChildProcess +import Node.Encoding (Encoding(UTF8)) +import Node.Encoding as Node.Encoding +import Node.FS.Sync as Node.FS +import Node.FS.Sync as Node.FS.Sync +import Node.Path (FilePath) +import Node.Process as Process +import Node.ReadLine as RL +import Node.Stream (Readable) + +-- | For cardano-node 8.1.1 +is811TestnetDirectoryName :: Int -> FilePath -> Boolean +is811TestnetDirectoryName n = + isJust <<< String.stripPrefix (Pattern $ "testnet-" <> show n <> "-test-") + +find811TestnetWorkir + :: { tmpdir :: FilePath, dirIdx :: Int } -> Effect (Maybe FilePath) +find811TestnetWorkir { tmpdir: tmpDir, dirIdx } = + map (tmpDir <> _) + <<< Array.find (is811TestnetDirectoryName dirIdx) + <$> Node.FS.readdir tmpDir + +waitForTestnet872Workdir + :: EventSource String -> { tmpdir :: FilePath } -> Aff { workdir :: FilePath } +waitForTestnet872Workdir src = map { workdir: _ } + <<< waitFor src + <<< parseTestnet872Workdir + +parseTestnet872Workdir :: { tmpdir :: FilePath } -> String -> Maybe FilePath +parseTestnet872Workdir { tmpdir: tmpDir } = String.stripPrefix + $ Pattern + $ " Workspace: " + <> tmpDir + <> "/" + +parseEvent :: String -> Maybe Event +parseEvent = case _ of + -- we can't know this way when 8.1.1 cardano-testnet is ready + " forAll109 =" -> Just Ready872 + "Usage: cardano-testnet cardano [--num-pool-nodes COUNT]" -> + Just $ StartupFailed SpawnFailed + "Failed to start testnet." -> + Just $ StartupFailed InitializationFailed + "Testnet is running. Type CTRL-C to exit." -> + Just Finished + _ -> Nothing + +waitFor :: forall a e. EventSource e -> (e -> Maybe a) -> Aff a +waitFor source f = flip tailRecM unit \_ -> do + event <- waitForEvent source + pure case f event of + Just a -> Done a + Nothing -> Loop unit + +onTestnetEvent :: EventSource String -> Effect (EventSource Event) +onTestnetEvent = narrowEventSource parseEvent + +getRuntime :: TestnetPaths -> Effect (Record (TestnetRuntime ())) +getRuntime paths = do + nodes <- readNodes paths + -- genesis <- readGenesis {workdir: paths.testnetDirectory} + pure { nodes {-, genesis-} } + +readNodes + :: forall r + . { nodeDirs :: Array { | NodeLocation () } + , testnetDirectory :: FilePath + | r + } + -> Effect (Array { | Node () }) +readNodes { nodeDirs, testnetDirectory } = do + for nodeDirs \{ idx, workdir, name } -> do + let + socketPath = testnetDirectory <> "socket" <> name + exists <- Node.FS.exists socketPath + unless exists + $ throwError + $ error + $ "Couldn't find node socket at " + <> socketPath + port <- getNodePort { nodeDir: workdir } + pure { idx, socket: socketPath, port, workdir, name } + +-- | Changes TextEnvelope type to match private payment key one and tries to read that. +readTextEnvelopeAsPaymentSkey + :: FilePath + -> Effect Contract.Config.PrivatePaymentKey +readTextEnvelopeAsPaymentSkey path = do + TextEnvelope envelope <- + liftMaybe (error "Cannot decode skey envelope") + <<< decodeTextEnvelope + =<< Node.FS.Sync.readTextFile Node.Encoding.UTF8 path + let + envelope' = TextEnvelope + (envelope { type_ = PaymentSigningKeyShelleyed25519 }) + liftMaybe (error "Cannot decode payment skey from decoded envelope") + $ privatePaymentKeyFromTextEnvelope envelope' + +parse872UtxoKeyFilename :: FilePath -> Either Error (Maybe { idx :: Int }) +parse872UtxoKeyFilename path = + traverse + ( map { idx: _ } + <<< note (error "Can't parse genesis key index") + <<< Int.fromString + ) + (String.stripPrefix (Pattern "utxo") path) + +read872GenesisKeyLocations + :: { workdir :: FilePath } + -> Effect (Array { | GenesisUtxoKeyLocation () }) +read872GenesisKeyLocations { workdir } = do + let keysDir = workdir <> "utxo-keys" + filenames <- Node.FS.readdir keysDir + map Array.catMaybes + $ liftEither + $ for filenames \filename -> + parse872UtxoKeyFilename filename <#> map \{ idx } -> + { idx + , path: keysDir <> filename <> "utxo.skey" + } + +read872GenesisKey + :: forall r + . { | GenesisUtxoKeyLocation r } + -> Effect Contract.Config.PrivatePaymentKey +read872GenesisKey = readTextEnvelopeAsPaymentSkey <<< _.path + +getNodePort :: { nodeDir :: FilePath } -> Effect UInt +getNodePort { nodeDir } = + liftMaybe (error $ "Failed to parse port at " <> nodeDir <> "/port") + <<< UInt.fromString + =<< Node.FS.readTextFile UTF8 (nodeDir <> "/port") + +findNodeDirs :: { workdir :: FilePath } -> Effect (Array { | NodeLocation () }) +findNodeDirs { workdir } = + Node.FS.readdir workdir <#> \subdirs -> + flip Array.mapMaybe subdirs \dirname -> do + idx <- Int.fromString =<< String.stripPrefix (Pattern "pools-keys/pool1") + dirname + pure { idx, workdir: workdir <> dirname, name: dirname } + +findTestnetPaths + :: { workdir :: FilePath } -> Effect (Either Error TestnetPaths) +findTestnetPaths { workdir } = runExceptT do + let + nodeConfigPath = workdir <> "configuration.yaml" + firstNode = "socket/pool1/sock" + nodeSocketPath = workdir <> firstNode + workdirExists <- lift $ Node.FS.exists workdir + configPathExists <- lift $ Node.FS.exists nodeConfigPath + socketPathExists <- lift $ Node.FS.exists nodeSocketPath + unless workdirExists do + throwError $ error $ + "cardano-testnet working directory not found." + unless configPathExists do + throwError $ error $ + "'configuration.yaml' not found in cardano-testnet working directory." + unless socketPathExists do + throwError $ error + $ firstNode + <> " not found in cardano-testnet working directory." + nodeDirs <- lift $ findNodeDirs { workdir } + genesisKeys <- lift $ read872GenesisKeyLocations { workdir } + pure + { testnetDirectory: workdir + , nodeConfigPath + , nodeSocketPath + , genesisKeys + , nodeDirs + } + +makeEventSource + :: forall a b c + . ( { handle :: Either Error a -> Effect Unit } + -> Effect { unsubscribe :: Effect Unit, outcome :: c } + ) + -> (a -> Maybe b) + -> Effect { eventSource :: EventSource b, outcome :: c } +makeEventSource subscribeOnEvents filter = annotateError "make event source" do + handlers <- Ref.new $ Map.fromFoldable [] + isCanceled <- Ref.new false + cancelRef <- Ref.new mempty + let + markCanceled = Ref.write true isCanceled + cancel error = Ref.read cancelRef >>= (_ $ error) + subscribe handler = do + Ref.read isCanceled >>= + if _ then + pure $ Left $ error "Event source is closed." + else do + id <- uniqueId "sub" + let unsubscribe = Ref.modify_ (Map.delete id) handlers + _ <- Ref.modify_ + (Map.insert id \event -> handler { unsubscribe, event }) + handlers + pure $ Right { unsubscribe } + + { unsubscribe, outcome } <- subscribeOnEvents + { handle: \ea -> case ea of + Left error -> cancel error + Right a -> case filter a of + Just b -> do + Ref.read handlers >>= traverse_ (_ $ Right b) + Nothing -> pure unit + } + flip Ref.write cancelRef \error -> do + Ref.write mempty cancelRef -- canceler may be called only once + unsubscribe + markCanceled + Ref.read handlers >>= traverse_ \cont -> + void $ suppressAndLogErrors "makeEventSource:cancel" $ cont $ Left error + Ref.write (Map.fromFoldable []) handlers + + pure + { eventSource: EventSource { cancel, subscribe } + , outcome + } + +addCleanup :: Ref (Array (Aff Unit)) -> Aff Unit -> Effect Unit +addCleanup = map void <<< flip + (Ref.modify <<< Array.cons <<< suppressAndLogErrors "[addCleanup][error]: ") + +scheduleCleanup + :: forall a + . Ref (Array (Aff Unit)) + -> Aff a + -> (a -> Aff Unit) + -> Aff a +scheduleCleanup cleanupRef create cleanup = + after create $ liftEffect <<< addCleanup cleanupRef <<< cleanup + +-- Similar to `catchError` but preserves the error +whenError :: forall (a :: Type). Aff Unit -> Aff a -> Aff a +whenError whenErrorAction action = do + res <- try action + when (isLeft res) whenErrorAction + liftEither res + +-- | Just as a bracket but without the body. +after :: forall a. Aff a -> (a -> Aff Unit) -> Aff a +after first second = Aff.bracket first second pure + +-- | Create an event source based on another event source, but +-- with smaller variety of events. +narrowEventSource + :: forall a b + . (a -> Maybe b) + -> EventSource a + -> Effect (EventSource b) +narrowEventSource filter (EventSource source) = annotateError + "narrowEventSource" + do + { eventSource: new + , outcome: subscriptionResult -- this goes from the source + } <- flip makeEventSource filter \{ handle } -> + do -- this is how new event source subscribe on the source + source.subscribe (handle <<< _.event) >>= case _ of + Left err -> pure + { outcome: Left err -- this is not for makeEventSource + , unsubscribe: pure unit -- how do 'new' unsubscribe from the 'source' + } + Right { unsubscribe: unsubFromSource } -> pure + { outcome: Right unit -- this is not for makeEventSource + , unsubscribe: unsubFromSource -- how do 'new' unsubscribe from the 'source' + } + liftEither subscriptionResult + pure new + +-- TODO: remove this function when PS bindings for os.tmpdir are available. +-- https://github.com/Plutonomicon/cardano-transaction-lib/issues/726 +foreign import tmpdir :: Effect String + +foreign import setLineHandler + :: RL.Interface -> (String -> Effect Unit) -> Effect OnSignalRef + +foreign import setCloseHandler + :: RL.Interface -> Effect Unit -> Effect OnSignalRef + +foreign import setErrorHandler + :: RL.Interface -> (Error -> Effect Unit) -> Effect OnSignalRef + +foreign import onBeforeExit + :: Effect Unit -> Effect OnSignalRef + +foreign import onExit + :: (Int -> Effect Unit) -> Effect OnSignalRef + +foreign import onUncaughtException + :: (Error -> Effect Unit) -> Effect OnSignalRef + +suppressAndLogErrors + :: forall m. MonadEffect m => MonadError Error m => String -> m Unit -> m Unit +suppressAndLogErrors location = flip catchError $ message + >>> append ("An error occured and suppressed at " <> location <> ": ") + >>> log + +-- replace with Effect.Console.log to debug. Not providing an option at runtime, +-- because it's just for the CTL developers. +log :: forall m. Monad m => String -> m Unit +log _ = pure unit + +newtype EventSource b = EventSource + { subscribe :: + ( { unsubscribe :: Effect Unit + , event :: Either Error b + } + -> Effect Unit + ) + -> Effect (Either Error { unsubscribe :: Effect Unit }) + , cancel :: Error -> Effect Unit + } + +-- | Waits for any event. Note, if the event source throws an async error, any joining process dies. +waitForEvent :: forall a. EventSource a -> Aff a +waitForEvent (EventSource { subscribe }) = annotateError "waitForEvent" $ + Aff.makeAff \cont -> do + subscriptionResult <- subscribe \{ unsubscribe, event } -> do + unsubscribe + cont event + case subscriptionResult of + Right { unsubscribe } -> pure $ Aff.Canceler \err -> liftEffect do + unsubscribe + cont $ Left $ appendErrorMessage "waitForEvent:canceled" err + Left subError -> do + suppressAndLogErrors "waitForEvent:badSubscription" + $ cont + $ Left + $ appendErrorMessage "Failed to subscribe" subError + pure Aff.nonCanceler + +onLine + :: forall a b + . Readable a + -> (String -> Maybe b) + -> Effect (EventSource b) +onLine readable = + map _.eventSource <<< makeEventSource \{ handle: mainHandler } -> do + interface <- RL.createInterface readable mempty + handlers <- Ref.new [] + lineHandler <- setLineHandler interface \x -> do + void + $ suppressAndLogErrors "onLine:setLineHandler" + $ mainHandler + $ Right x + let + cancel = \err -> do + Ref.read handlers >>= traverse_ (try <<< removeOnSignal) + void + $ suppressAndLogErrors "onLine:cancel" + $ mainHandler + $ Left err + closeHandler <- setCloseHandler interface + $ cancel + $ error "Line event source has been closed." + errorHandler <- setErrorHandler interface cancel + Ref.write [ lineHandler, closeHandler, errorHandler ] handlers + pure + { outcome: unit + , unsubscribe: do + cancel $ error "Unsubscribed from line event." + } + +-- | Waits until processe's stdout closes. +-- Assuming this means that process is closed as well. +waitForClose :: ManagedProcess -> Aff Unit +waitForClose (ManagedProcess _ child _) = do + interface <- liftEffect + $ flip RL.createInterface mempty + $ Node.ChildProcess.stdout child + Aff.makeAff \cont -> do + { cancel } <- withOneShotHandler \{ justOnce } -> + setCloseHandler interface $ justOnce $ cont $ Right unit + pure $ Aff.Canceler \err -> liftEffect do + cancel + cont $ Left $ appendErrorMessage "waitForClose has been canceled" err + +waitUntil :: forall a. Milliseconds -> Aff (Maybe a) -> Aff a +waitUntil checkingInterval fa = flip tailRecM unit \_ -> + fa >>= case _ of + Nothing -> do + Aff.delay checkingInterval + pure $ Loop unit + Just x -> pure $ Done x + +-- | Waits until processe's stdout closes. +-- Assuming this means that process is closed as well. +waitForError :: ManagedProcess -> Aff Error +waitForError (ManagedProcess _ child _) = do + interface <- liftEffect + $ flip RL.createInterface mempty + $ Node.ChildProcess.stdout child + Aff.makeAff \cont -> do + { cancel } <- withOneShotHandler \{ justOnce } -> + setErrorHandler interface \err -> justOnce $ cont $ Right err + pure $ Aff.Canceler \err -> liftEffect do + cancel + cont $ Left $ appendErrorMessage "waitForClose has been canceled" err + +-- | Specifically for nodejs handlers: +-- Makes sure that the callback is called at most once, and unregistering it +-- on cancelation and on the first call. +withOneShotHandler + :: ({ justOnce :: Effect Unit -> Effect Unit } -> Effect OnSignalRef) + -> Effect { cancel :: Effect Unit } +withOneShotHandler with = do + removeHandler <- Ref.new mempty + isClosedRef <- Ref.new false + let + cancel = do + join $ Ref.read removeHandler + Ref.write true isClosedRef + handle <- with + { justOnce: \oneShotHandler -> do + -- otherwise it may be triggered multiple times, for unknown reason + Ref.read isClosedRef >>= flip unless do + cancel + oneShotHandler + } + Ref.write (removeOnSignal handle) removeHandler + pure { cancel } + +waitForBeforeExit :: Aff Unit +waitForBeforeExit = Aff.makeAff \cont -> do + { cancel } <- withOneShotHandler \{ justOnce } -> onBeforeExit $ justOnce do + log "ON BEFORE EXIT" + cont $ Right unit + pure $ Aff.Canceler \err -> liftEffect do + cancel + suppressAndLogErrors "waitForBeforeExit" $ cont $ Left err + +waitForUncaughtException :: Aff Error +waitForUncaughtException = Aff.makeAff \cont -> do + n <- randomInt 0 100 + { cancel } <- withOneShotHandler \{ justOnce } -> + onUncaughtException \err -> justOnce do + log $ "ON UNCAUGHT EXCEPTION " <> show n + cont $ Right err + pure $ Aff.Canceler \err -> liftEffect do + cancel + suppressAndLogErrors "waitForUncaughtException" $ cont $ Left err + +waitForExit :: Aff Int +waitForExit = Aff.makeAff \cont -> do + { cancel } <- withOneShotHandler \{ justOnce } -> onExit \exitcode -> justOnce + do + cont $ Right exitcode + pure $ Aff.Canceler \err -> liftEffect do + cancel + suppressAndLogErrors "waitForExit" $ cont $ Left err + +tryAndLogErrors + :: forall a m + . MonadEffect m + => MonadError Error m + => String + -> m a + -> m (Either Error a) +tryAndLogErrors location = try >=> case _ of + Left err -> do + log $ "An error occured and suppressed at " <> location <> ": " <> message + err + pure $ Left err + Right a -> pure $ Right a + +runCleanup :: Ref (Array (Aff Unit)) -> Aff Unit +runCleanup cleanupRef = do + log "Cleaning up" + cleanups <- liftEffect do + cleanups <- Ref.read cleanupRef + Ref.write [] cleanupRef + pure cleanups + if null cleanups then log "No cleanup needed" + else do + sequence_ $ suppressAndLogErrors "runCleanup" <$> cleanups + log "Cleanup finished" + +cleanupOnExit + :: Ref (Array (Aff Unit)) + -> Aff { fiber :: Aff.Fiber Unit } +cleanupOnExit cleanupRef = do + log "Cleanup scheduled" + let + handle handlers = do + handler <- sequential do + ( handlers.onExit + <$> parallel waitForExit + ) + <|> + ( handlers.onUncaughtException + <$> parallel waitForUncaughtException + ) + <|> + ( handlers.onBeforeExit + <$ parallel waitForBeforeExit + ) + <|> + ( handlers.onWaitForSignal + <$ parallel (waitForSignal SIGINT) + ) + handler + cleanup triggeredBy = do + log $ "Running cleanup on " <> triggeredBy + runCleanup cleanupRef + + fiber <- Aff.forkAff $ handle + { onExit: \code -> cleanup $ "exit with " <> show code + , onUncaughtException: \err -> do + cleanup "uncaught exception" + log $ "Failing irrecoverably after the cleanup after error: " <> show + err + liftEffect $ Process.exit 7 -- Failing irrecoverably + , onBeforeExit: cleanup "before exit" + , onWaitForSignal: cleanup "SIGINT" + } + pure { fiber } + +annotateError + :: forall (a :: Type) m + . MonadError Error m + => String + -> m a + -> m a +annotateError withPrefix action = + catchError action $ throwError <<< appendErrorMessage withPrefix + +appendErrorMessage + :: String + -> Error + -> Error +appendErrorMessage withPrefix = + error <<< append (withPrefix <> ": ") <<< message diff --git a/src/Internal/Types/Interval.purs b/src/Internal/Types/Interval.purs index b3d16214e..3a7e2ded5 100644 --- a/src/Internal/Types/Interval.purs +++ b/src/Internal/Types/Interval.purs @@ -100,7 +100,7 @@ import Ctl.Internal.Helpers , showWithParens , unsafeFromJust ) -import Ctl.Internal.QueryM.Ogmios (aesonObject, slotLengthFactor) +import Ctl.Internal.QueryM.Ogmios (aesonObject) import Ctl.Internal.Types.EraSummaries ( EraSummaries(EraSummaries) , EraSummary(EraSummary) @@ -832,6 +832,9 @@ absTimeFromRelTime (EraSummary { start, end }) (RelTime relTime) = do wrap <$> (liftM CannotGetBigIntFromNumber $ BigInt.fromNumber absTime) +slotLengthFactor :: Number +slotLengthFactor = 1000.0 + -------------------------------------------------------------------------------- -- POSIXTime (milliseconds) to -- Slot (absolute from System Start - see QueryM.SystemStart.getSystemStart) diff --git a/src/Internal/Types/ProtocolParameters.purs b/src/Internal/Types/ProtocolParameters.purs index 38c5ae418..be35375ea 100644 --- a/src/Internal/Types/ProtocolParameters.purs +++ b/src/Internal/Types/ProtocolParameters.purs @@ -2,8 +2,10 @@ module Ctl.Internal.Types.ProtocolParameters ( ProtocolParameters(ProtocolParameters) , CostModelV1 , CostModelV2 + , CostModelV3 , convertPlutusV1CostModel , convertPlutusV2CostModel + , convertPlutusV3CostModel ) where import Prelude @@ -17,14 +19,22 @@ import Cardano.Types.Int as Cardano import Cardano.Types.Language (Language) import Ctl.Internal.Types.Rational (Rational) import Data.Array (reverse) +import Data.Array (sortWith) as Array +import Data.Bitraversable (ltraverse) import Data.Generic.Rep (class Generic) +import Data.Int (fromString) as Int import Data.List (List) import Data.List as List import Data.Map (Map) +import Data.Maybe (Maybe) import Data.Newtype (class Newtype, wrap) import Data.Show.Generic (genericShow) +import Data.Traversable (traverse) +import Data.Tuple (fst, snd) import Data.Tuple.Nested (type (/\)) import Data.UInt (UInt) +import Foreign.Object (Object) +import Foreign.Object (toUnfoldable) as Object import Heterogeneous.Folding (class HFoldl, hfoldl) -- Based on `Cardano.Api.ProtocolParameters.ProtocolParameters` from @@ -35,7 +45,7 @@ newtype ProtocolParameters = ProtocolParameters , maxBlockHeaderSize :: UInt , maxBlockBodySize :: UInt , maxTxSize :: UInt - , txFeeFixed :: UInt + , txFeeFixed :: Coin , txFeePerByte :: UInt , stakeAddressDeposit :: Coin , stakePoolDeposit :: Coin @@ -245,6 +255,8 @@ type CostModelV2 = | CostModelV1 ) +type CostModelV3 = Object Cardano.Int + -- This assumes that cost models are stored in lexicographical order convertCostModel :: forall costModel @@ -268,3 +280,8 @@ convertPlutusV1CostModel = convertCostModel convertPlutusV2CostModel :: Record CostModelV2 -> CostModel convertPlutusV2CostModel = convertCostModel + +convertPlutusV3CostModel :: CostModelV3 -> Maybe CostModel +convertPlutusV3CostModel costModelRaw = + wrap <<< map snd <<< Array.sortWith fst <$> + traverse (ltraverse Int.fromString) (Object.toUnfoldable costModelRaw) diff --git a/src/Internal/Types/TxConstraints.purs b/src/Internal/Types/TxConstraints.purs index 4ca42ce6a..db9d31225 100644 --- a/src/Internal/Types/TxConstraints.purs +++ b/src/Internal/Types/TxConstraints.purs @@ -120,7 +120,6 @@ import Data.Generic.Rep (class Generic) import Data.Map (Map) import Data.Map (singleton) as Map import Data.Maybe (Maybe(Just, Nothing)) -import Data.Monoid (guard) import Data.Newtype (class Newtype) import Data.Show.Generic (genericShow) import Data.Tuple.Nested (type (/\), (/\)) @@ -383,9 +382,8 @@ mustPayToScript -> DatumPresence -> Value -> TxConstraints -mustPayToScript vh dt dtp vl = - singleton (MustPayToScript vh Nothing dt dtp Nothing vl) - <> guard (dtp == DatumWitness) (singleton $ MustIncludeDatum dt) +mustPayToScript vhash dat datp = + singleton <<< MustPayToScript vhash Nothing dat datp Nothing mustPayToScriptAddress :: Warn TxConstraintsDeprecated @@ -395,9 +393,8 @@ mustPayToScriptAddress -> DatumPresence -> Value -> TxConstraints -mustPayToScriptAddress vh credential dt dtp vl = - singleton (MustPayToScript vh (Just credential) dt dtp Nothing vl) - <> guard (dtp == DatumWitness) (singleton $ MustIncludeDatum dt) +mustPayToScriptAddress vhash cred dat datp = + singleton <<< MustPayToScript vhash (Just cred) dat datp Nothing -- | Lock the value, datum and reference script with a script. -- | Note that the provided reference script does *not* necessarily need to @@ -410,9 +407,8 @@ mustPayToScriptWithScriptRef -> ScriptRef -> Value -> TxConstraints -mustPayToScriptWithScriptRef vh dt dtp scriptRef vl = - singleton (MustPayToScript vh Nothing dt dtp (Just scriptRef) vl) - <> guard (dtp == DatumWitness) (singleton $ MustIncludeDatum dt) +mustPayToScriptWithScriptRef vhash dat datp scriptRef = + singleton <<< MustPayToScript vhash Nothing dat datp (Just scriptRef) -- | Lock the value, datum and reference script with a script. -- | Note that the provided reference script does *not* necessarily need to @@ -426,9 +422,8 @@ mustPayToScriptAddressWithScriptRef -> ScriptRef -> Value -> TxConstraints -mustPayToScriptAddressWithScriptRef vh credential dt dtp scriptRef vl = - singleton (MustPayToScript vh (Just credential) dt dtp (Just scriptRef) vl) - <> guard (dtp == DatumWitness) (singleton $ MustIncludeDatum dt) +mustPayToScriptAddressWithScriptRef vhash cred dat datp scriptRef = + singleton <<< MustPayToScript vhash (Just cred) dat datp (Just scriptRef) mustPayToNativeScript :: Warn TxConstraintsDeprecated diff --git a/templates/ctl-scaffold/flake.lock b/templates/ctl-scaffold/flake.lock index 64625f762..02a5b3d9c 100644 --- a/templates/ctl-scaffold/flake.lock +++ b/templates/ctl-scaffold/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1702290471, - "narHash": "sha256-uivAP05RENSzQDbDjAU3Fbq+AiDDpcNaHAzvOZM1fik=", + "lastModified": 1721915212, + "narHash": "sha256-itkbLG6DUX/L5XuoSXFPgPBf+9lFOM3ufc1T4BU4MYM=", "owner": "input-output-hk", "repo": "cardano-haskell-packages", - "rev": "1ff7483a6d2670c8627de92779a2b92a989293cd", + "rev": "2126fa53c45842719ee38040f4d5bee8fb17a09d", "type": "github" }, "original": { @@ -18,6 +18,23 @@ } }, "CHaP_2": { + "flake": false, + "locked": { + "lastModified": 1702906471, + "narHash": "sha256-br+hVo3R6nfmiSEPXcLKhIX4Kg5gcK2PjzjmvQsuUp8=", + "owner": "IntersectMBO", + "repo": "cardano-haskell-packages", + "rev": "48a359ac3f1d437ebaa91126b20e15a65201f004", + "type": "github" + }, + "original": { + "owner": "IntersectMBO", + "ref": "repo", + "repo": "cardano-haskell-packages", + "type": "github" + } + }, + "CHaP_3": { "flake": false, "locked": { "lastModified": 1686070892, @@ -34,14 +51,14 @@ "type": "github" } }, - "CHaP_3": { + "CHaP_4": { "flake": false, "locked": { - "lastModified": 1695160702, - "narHash": "sha256-+Mfc6eGA1ZwQ/ZjKzMoMWkHzd+sgR1JbxY0i849HjEU=", + "lastModified": 1702593630, + "narHash": "sha256-IWu27+sfPtazjIZiWLUm8G4BKvjXmIL+/1XT/ETnfhg=", "owner": "input-output-hk", "repo": "cardano-haskell-packages", - "rev": "9932690af3713ef034c928850252eb1b88450ee6", + "rev": "9783a177efcea5beb8808aab7513098bdab185ba", "type": "github" }, "original": { @@ -51,18 +68,18 @@ "type": "github" } }, - "CHaP_4": { + "CHaP_5": { "flake": false, "locked": { - "lastModified": 1694601145, - "narHash": "sha256-p7ZxorrOvoow6N+JKvfrCiRYFtUSPiEMgt8MR+rcTT4=", - "owner": "input-output-hk", + "lastModified": 1719971647, + "narHash": "sha256-Q/u1ZklzmymTSSY6/F48rGsWewVYf108torqR9+nFJU=", + "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "e8298604717dbaa311c1e42e021b571670f4b039", + "rev": "bfd6987c14410757c6cde47e6c45621e9664347f", "type": "github" }, "original": { - "owner": "input-output-hk", + "owner": "intersectmbo", "ref": "repo", "repo": "cardano-haskell-packages", "type": "github" @@ -84,6 +101,22 @@ "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": { @@ -180,9 +213,41 @@ "type": "github" } }, + "HTTP_8": { + "flake": false, + "locked": { + "lastModified": 1451647621, + "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", + "owner": "phadej", + "repo": "HTTP", + "rev": "9bc0996d412fef1787449d841277ef663ad9a915", + "type": "github" + }, + "original": { + "owner": "phadej", + "repo": "HTTP", + "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_9" + "nixpkgs": "nixpkgs_38" }, "locked": { "lastModified": 1641576265, @@ -200,8 +265,8 @@ }, "agenix-cli": { "inputs": { - "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_10" + "flake-utils": "flake-utils_21", + "nixpkgs": "nixpkgs_39" }, "locked": { "lastModified": 1641404293, @@ -219,8 +284,8 @@ }, "agenix-cli_2": { "inputs": { - "flake-utils": "flake-utils_7", - "nixpkgs": "nixpkgs_12" + "flake-utils": "flake-utils_22", + "nixpkgs": "nixpkgs_41" }, "locked": { "lastModified": 1641404293, @@ -238,8 +303,8 @@ }, "agenix-cli_3": { "inputs": { - "flake-utils": "flake-utils_18", - "nixpkgs": "nixpkgs_41" + "flake-utils": "flake-utils_33", + "nixpkgs": "nixpkgs_70" }, "locked": { "lastModified": 1641404293, @@ -257,7 +322,7 @@ }, "agenix_2": { "inputs": { - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_40" }, "locked": { "lastModified": 1641576265, @@ -353,7 +418,7 @@ }, "agenix_6": { "inputs": { - "nixpkgs": "nixpkgs_40" + "nixpkgs": "nixpkgs_69" }, "locked": { "lastModified": 1641576265, @@ -423,7 +488,7 @@ "alejandra": { "inputs": { "flakeCompat": "flakeCompat", - "nixpkgs": "nixpkgs_35" + "nixpkgs": "nixpkgs_64" }, "locked": { "lastModified": 1646360966, @@ -439,6 +504,52 @@ "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": [ + "ctl", + "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": { @@ -487,6 +598,22 @@ "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": { @@ -535,28 +662,61 @@ "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_2", + "blank": "blank_6", "capsules": "capsules", "data-merge": "data-merge", "deploy": "deploy_2", - "fenix": "fenix_4", - "hydra": "hydra_3", - "n2c": "n2c_2", - "nix": "nix_5", - "nixpkgs": "nixpkgs_29", + "fenix": "fenix_6", + "hydra": "hydra_7", + "n2c": "n2c_5", + "nix": "nix_10", + "nixpkgs": "nixpkgs_58", "nixpkgs-docker": "nixpkgs-docker", - "nixpkgs-unstable": "nixpkgs-unstable_3", + "nixpkgs-unstable": "nixpkgs-unstable_8", "nomad-driver-nix": "nomad-driver-nix_2", "nomad-follower": "nomad-follower_2", - "ops-lib": "ops-lib_3", + "ops-lib": "ops-lib_5", "ragenix": "ragenix_3", - "std": "std_2", - "terranix": "terranix_2", - "utils": "utils_12" + "std": "std_6", + "terranix": "terranix_3", + "utils": "utils_17" }, "locked": { "lastModified": 1661790449, @@ -642,20 +802,20 @@ "inputs": { "agenix": "agenix_2", "agenix-cli": "agenix-cli_2", - "blank": "blank_3", + "blank": "blank_7", "deploy": "deploy", - "fenix": "fenix_2", - "hydra": "hydra_2", - "nix": "nix_2", - "nixpkgs": "nixpkgs_15", - "nixpkgs-unstable": "nixpkgs-unstable_2", + "fenix": "fenix_4", + "hydra": "hydra_6", + "nix": "nix_7", + "nixpkgs": "nixpkgs_44", + "nixpkgs-unstable": "nixpkgs-unstable_7", "nomad": "nomad", "nomad-driver-nix": "nomad-driver-nix", "nomad-follower": "nomad-follower", - "ops-lib": "ops-lib_2", + "ops-lib": "ops-lib_4", "ragenix": "ragenix", - "terranix": "terranix", - "utils": "utils_7", + "terranix": "terranix_2", + "utils": "utils_12", "vulnix": "vulnix" }, "locked": { @@ -676,20 +836,20 @@ "inputs": { "agenix": "agenix_6", "agenix-cli": "agenix-cli_3", - "blank": "blank_4", + "blank": "blank_8", "deploy": "deploy_3", - "fenix": "fenix_6", - "hydra": "hydra_4", - "nix": "nix_9", - "nixpkgs": "nixpkgs_44", - "nixpkgs-unstable": "nixpkgs-unstable_4", + "fenix": "fenix_8", + "hydra": "hydra_8", + "nix": "nix_14", + "nixpkgs": "nixpkgs_73", + "nixpkgs-unstable": "nixpkgs-unstable_9", "nomad": "nomad_2", "nomad-driver-nix": "nomad-driver-nix_3", "nomad-follower": "nomad-follower_3", - "ops-lib": "ops-lib_4", + "ops-lib": "ops-lib_6", "ragenix": "ragenix_4", - "terranix": "terranix_3", - "utils": "utils_21", + "terranix": "terranix_4", + "utils": "utils_26", "vulnix": "vulnix_2" }, "locked": { @@ -781,6 +941,51 @@ "type": "github" } }, + "blank_6": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "blank", + "type": "github" + } + }, + "blank_7": { + "locked": { + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "blank", + "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" @@ -800,6 +1005,25 @@ "type": "github" } }, + "blockfrost_2": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1716466734, + "narHash": "sha256-h1LdfN/2KlD/XRjgj7rDNRInxSKZCOx6OF4jak/3c/E=", + "owner": "blockfrost", + "repo": "blockfrost-backend-ryo", + "rev": "7204204615be69b2f298ddf11f9a23dbbb184e55", + "type": "github" + }, + "original": { + "owner": "blockfrost", + "ref": "v2.0.3", + "repo": "blockfrost-backend-ryo", + "type": "github" + } + }, "blst": { "flake": false, "locked": { @@ -834,31 +1058,133 @@ "type": "github" } }, - "byron-chain": { + "blst_3": { "flake": false, "locked": { - "lastModified": 1557232434, - "narHash": "sha256-2rclcOjIVq0lFCdYAa8S9imzZZHqySn2LZ/O48hUofw=", - "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", - "rev": "a31ac7534ec855b715b9a6bb6a06861ee94935d9", + "lastModified": 1656163412, + "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", + "owner": "supranational", + "repo": "blst", + "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", + "owner": "supranational", + "repo": "blst", + "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" } }, - "cabal-32": { + "blst_4": { "flake": false, "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", - "owner": "haskell", - "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", - "type": "github" + "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, + "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", + "owner": "supranational", + "repo": "blst", + "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", + "type": "github" + }, + "original": { + "owner": "supranational", + "ref": "v0.3.11", + "repo": "blst", + "type": "github" + } + }, + "blst_7": { + "flake": false, + "locked": { + "lastModified": 1691598027, + "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", + "owner": "supranational", + "repo": "blst", + "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", + "type": "github" + }, + "original": { + "owner": "supranational", + "ref": "v0.3.11", + "repo": "blst", + "type": "github" + } + }, + "byron-chain": { + "flake": false, + "locked": { + "lastModified": 1557232434, + "narHash": "sha256-2rclcOjIVq0lFCdYAa8S9imzZZHqySn2LZ/O48hUofw=", + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "rev": "a31ac7534ec855b715b9a6bb6a06861ee94935d9", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-mainnet-mirror", + "type": "github" + } + }, + "cabal-32": { + "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_10": { + "flake": false, + "locked": { + "lastModified": 1603716527, + "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", + "owner": "haskell", + "repo": "cabal", + "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", + "type": "github" }, "original": { "owner": "haskell", @@ -969,6 +1295,40 @@ "type": "github" } }, + "cabal-32_8": { + "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_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": { @@ -986,14 +1346,31 @@ "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": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", "owner": "haskell", "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", "type": "github" }, "original": { @@ -1006,11 +1383,11 @@ "cabal-34_3": { "flake": false, "locked": { - "lastModified": 1640353650, - "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", "owner": "haskell", "repo": "cabal", - "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", "type": "github" }, "original": { @@ -1021,6 +1398,40 @@ } }, "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, @@ -1037,7 +1448,7 @@ "type": "github" } }, - "cabal-34_5": { + "cabal-34_7": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1054,14 +1465,14 @@ "type": "github" } }, - "cabal-34_6": { + "cabal-34_8": { "flake": false, "locked": { - "lastModified": 1645834128, - "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", + "lastModified": 1640353650, + "narHash": "sha256-N1t6M3/wqj90AEdRkeC8i923gQYUpzSr8b40qVOZ1Rk=", "owner": "haskell", "repo": "cabal", - "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", + "rev": "942639c18c0cd8ec53e0a6f8d120091af35312cd", "type": "github" }, "original": { @@ -1071,7 +1482,7 @@ "type": "github" } }, - "cabal-34_7": { + "cabal-34_9": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1105,14 +1516,14 @@ "type": "github" } }, - "cabal-36_2": { + "cabal-36_10": { "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": { @@ -1122,14 +1533,14 @@ "type": "github" } }, - "cabal-36_3": { + "cabal-36_2": { "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": { @@ -1139,14 +1550,14 @@ "type": "github" } }, - "cabal-36_4": { + "cabal-36_3": { "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": { @@ -1156,14 +1567,14 @@ "type": "github" } }, - "cabal-36_5": { + "cabal-36_4": { "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": { @@ -1173,7 +1584,7 @@ "type": "github" } }, - "cabal-36_6": { + "cabal-36_5": { "flake": false, "locked": { "lastModified": 1669081697, @@ -1190,7 +1601,7 @@ "type": "github" } }, - "cabal-36_7": { + "cabal-36_6": { "flake": false, "locked": { "lastModified": 1641652457, @@ -1207,32 +1618,113 @@ "type": "github" } }, - "capsules": { - "inputs": { - "bitte": "bitte_2", - "iogo": "iogo", - "nixpkgs": "nixpkgs_23", - "ragenix": "ragenix_2" - }, + "cabal-36_7": { + "flake": false, "locked": { - "lastModified": 1658156716, - "narHash": "sha256-c1lH7PIN0rTKdGgosD5fCsHoAklAtGR/E1DFT2exIkM=", - "owner": "input-output-hk", - "repo": "devshell-capsules", - "rev": "88348a415130cee29ce187140e6f57d94d843d54", + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "devshell-capsules", - "type": "github" - } + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_8": { + "flake": false, + "locked": { + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "cabal-36_9": { + "flake": false, + "locked": { + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "owner": "haskell", + "repo": "cabal", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "3.6", + "repo": "cabal", + "type": "github" + } + }, + "call-flake": { + "locked": { + "lastModified": 1687380775, + "narHash": "sha256-bmhE1TmrJG4ba93l9WQTLuYM53kwGQAjYHRvHOeuxWU=", + "owner": "divnix", + "repo": "call-flake", + "rev": "74061f6c241227cd05e79b702db9a300a2e4131a", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "call-flake", + "type": "github" + } + }, + "capkgs": { + "locked": { + "lastModified": 1697123727, + "narHash": "sha256-uSXZAELJF5EfivH9qyLssBUAvhcf3RM9sKhD3W2mdhc=", + "owner": "input-output-hk", + "repo": "capkgs", + "rev": "b197e225592dfe38afb80c94b628d99968c0541d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "capkgs", + "type": "github" + } + }, + "capsules": { + "inputs": { + "bitte": "bitte_2", + "iogo": "iogo", + "nixpkgs": "nixpkgs_52", + "ragenix": "ragenix_2" + }, + "locked": { + "lastModified": 1658156716, + "narHash": "sha256-c1lH7PIN0rTKdGgosD5fCsHoAklAtGR/E1DFT2exIkM=", + "owner": "input-output-hk", + "repo": "devshell-capsules", + "rev": "88348a415130cee29ce187140e6f57d94d843d54", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "devshell-capsules", + "type": "github" + } }, "capsules_2": { "inputs": { "bitte": "bitte_3", "iogo": "iogo_2", - "nixpkgs": "nixpkgs_52", + "nixpkgs": "nixpkgs_81", "ragenix": "ragenix_5" }, "locked": { @@ -1251,20 +1743,23 @@ }, "cardano-automation": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_4", "haskellNix": [ "ctl", - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "haskellNix" ], "nixpkgs": [ "ctl", - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "nixpkgs" ], "tullia": [ "ctl", - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "tullia" ] }, @@ -1282,970 +1777,1108 @@ "type": "github" } }, - "cardano-configurations": { - "flake": false, + "cardano-automation_2": { + "inputs": { + "flake-utils": "flake-utils_9", + "haskellNix": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "haskellNix" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "nixpkgs" + ], + "tullia": "tullia_2" + }, "locked": { - "lastModified": 1699561895, - "narHash": "sha256-bLNN6lJUe5dR1EOdtDspReE2fu2EV7hQMHFGDinxf5Y=", + "lastModified": 1679408951, + "narHash": "sha256-xM78upkrXjRu/739V/IxFrA9m+6rvgOiolt4ReKLAog=", "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "d952529afdfdf6d53ce190b1bf8af990a7ae9590", + "repo": "cardano-automation", + "rev": "628f135d243d4a9e388c187e4c6179246038ee72", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "d952529afdfdf6d53ce190b1bf8af990a7ae9590", + "repo": "cardano-automation", "type": "github" } }, - "cardano-configurations_2": { - "flake": false, + "cardano-automation_3": { + "inputs": { + "flake-utils": "flake-utils_16", + "haskellNix": [ + "ctl", + "cardano-node", + "haskellNix" + ], + "nixpkgs": [ + "ctl", + "cardano-node", + "nixpkgs" + ], + "tullia": "tullia_3" + }, "locked": { - "lastModified": 1694019972, - "narHash": "sha256-TQEvb6W2VlOWxqIFa4r8UFBVbu82Bb2hRaDtN5Zbiuk=", + "lastModified": 1679408951, + "narHash": "sha256-xM78upkrXjRu/739V/IxFrA9m+6rvgOiolt4ReKLAog=", "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "65ef979cf69f420efca0a7aaf0412a610bc48097", + "repo": "cardano-automation", + "rev": "628f135d243d4a9e388c187e4c6179246038ee72", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-configurations", + "repo": "cardano-automation", "type": "github" } }, - "cardano-explorer-app": { + "cardano-configurations": { "flake": false, "locked": { - "lastModified": 1655291958, - "narHash": "sha256-OByt95cIJrA8pXsvCztsWmFcDaQaSYGohSOHoaZWKJs=", + "lastModified": 1721870874, + "narHash": "sha256-qiReN+xxtbb4kEfdIWbBcqcJpPGD8he0p/TVD7U3CqM=", "owner": "input-output-hk", - "repo": "cardano-explorer-app", - "rev": "a65938afe159adb1d1e2808305a7316738f5e634", + "repo": "cardano-configurations", + "rev": "7969a73e5c7ee1f3b2a40274b34191fdd8de170b", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "fix-nix-system", - "repo": "cardano-explorer-app", + "repo": "cardano-configurations", + "rev": "7969a73e5c7ee1f3b2a40274b34191fdd8de170b", "type": "github" } }, - "cardano-graphql": { + "cardano-configurations-8.1.1": { "flake": false, "locked": { - "lastModified": 1657201429, - "narHash": "sha256-kx8Pe5HllnJceQHsBDB4hHcEQNSiq8D+OFFkRuuUFQE=", + "lastModified": 1692193634, + "narHash": "sha256-cKw+iXKoMNrfN8M34/CtUelUZVLktVtzNzOYHI20dC0=", "owner": "input-output-hk", - "repo": "cardano-graphql", - "rev": "ffb40028f51e23983c2ae27693bbdcd152208d9d", + "repo": "cardano-configurations", + "rev": "9b69b59ef2fb2838855017f19af57b38c5d4abe4", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-graphql", + "repo": "cardano-configurations", + "rev": "9b69b59ef2fb2838855017f19af57b38c5d4abe4", "type": "github" } }, - "cardano-mainnet-mirror": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, + "cardano-configurations-8.7.3": { + "flake": false, "locked": { - "lastModified": 1642701714, - "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", + "lastModified": 1702085095, + "narHash": "sha256-IJChESftdO2tj2pRB+82xMaLP/RqyKHzttE7QMLqvBQ=", "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", - "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", + "repo": "cardano-configurations", + "rev": "21249e0d5c68b4e8f3661b250aa8272a8785d678", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "nix", - "repo": "cardano-mainnet-mirror", + "repo": "cardano-configurations", + "rev": "21249e0d5c68b4e8f3661b250aa8272a8785d678", "type": "github" } }, - "cardano-node": { + "cardano-db-sync": { "inputs": { "CHaP": "CHaP_2", - "cardano-automation": "cardano-automation", - "cardano-mainnet-mirror": "cardano-mainnet-mirror", - "customConfig": "customConfig", - "em": "em", - "empty-flake": "empty-flake", - "flake-compat": "flake-compat", + "cardano-parts": "cardano-parts", + "flake-compat": "flake-compat_4", "hackageNix": "hackageNix", "haskellNix": "haskellNix", - "hostNixpkgs": [ - "ctl", - "cardano-node", - "nixpkgs" - ], "iohkNix": "iohkNix", - "nix2container": "nix2container", "nixpkgs": [ "ctl", - "cardano-node", + "cardano-nix", + "cardano-db-sync", "haskellNix", "nixpkgs-unstable" ], - "ops-lib": "ops-lib", - "std": [ - "ctl", - "cardano-node", - "tullia", - "std" - ], - "tullia": "tullia", - "utils": "utils_2" + "utils": "utils" }, "locked": { - "lastModified": 1687190129, - "narHash": "sha256-JCa9+QhZ2RVSIKkhz2WCZqTKCgdUSuezWS2YsQ5vhM4=", - "owner": "input-output-hk", - "repo": "cardano-node", - "rev": "6f79e5c3ea109a70cd01910368e011635767305a", + "lastModified": 1707925775, + "narHash": "sha256-z3YUrUImpV/wmJi+pfw6YuhBw+2Xd3jGlSWk7WI69/4=", + "owner": "intersectmbo", + "repo": "cardano-db-sync", + "rev": "ed3dc8bbb79f07c26ec43f10bad661b0bef3b915", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "8.1.1", - "repo": "cardano-node", + "owner": "intersectmbo", + "ref": "13.2.0.1", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-node_2": { + "cardano-db-sync-schema": { "flake": false, "locked": { - "lastModified": 1659625017, - "narHash": "sha256-4IrheFeoWfvkZQndEk4fGUkOiOjcVhcyXZ6IqmvkDgg=", + "lastModified": 1688568916, + "narHash": "sha256-XTGTi3PzCcbLL+63JSXTe7mQmGKB0YgEoW1VpqdX2d0=", "owner": "input-output-hk", - "repo": "cardano-node", - "rev": "950c4e222086fed5ca53564e642434ce9307b0b9", + "repo": "cardano-db-sync", + "rev": "6e69a80797f2d68423b25ca7787e81533b367e42", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "1.35.3", - "repo": "cardano-node", + "ref": "13.1.1.3", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-shell": { + "cardano-db-sync-schema-ng": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1694078776, + "narHash": "sha256-QBnUDobTwWQmooCNr1WcaAzRbAKokon8lvAN6VQ1u34=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-db-sync", + "rev": "b44eb735fe64fe4e8079935df722d0a32a41c2a4", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "sancho-1-1-0", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-shell_2": { + "cardano-db-sync-service": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1688568916, + "narHash": "sha256-XTGTi3PzCcbLL+63JSXTe7mQmGKB0YgEoW1VpqdX2d0=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-db-sync", + "rev": "6e69a80797f2d68423b25ca7787e81533b367e42", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "13.1.1.3", + "repo": "cardano-db-sync", "type": "github" } }, - "cardano-shell_3": { + "cardano-explorer-app": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1655291958, + "narHash": "sha256-OByt95cIJrA8pXsvCztsWmFcDaQaSYGohSOHoaZWKJs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-explorer-app", + "rev": "a65938afe159adb1d1e2808305a7316738f5e634", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "fix-nix-system", + "repo": "cardano-explorer-app", "type": "github" } }, - "cardano-shell_4": { + "cardano-graphql": { "flake": false, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1657201429, + "narHash": "sha256-kx8Pe5HllnJceQHsBDB4hHcEQNSiq8D+OFFkRuuUFQE=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-graphql", + "rev": "ffb40028f51e23983c2ae27693bbdcd152208d9d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "repo": "cardano-graphql", "type": "github" } }, - "cardano-shell_5": { - "flake": false, + "cardano-mainnet-mirror": { + "inputs": { + "nixpkgs": "nixpkgs_15" + }, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "nix", + "repo": "cardano-mainnet-mirror", "type": "github" } }, - "cardano-shell_6": { - "flake": false, + "cardano-mainnet-mirror_2": { + "inputs": { + "nixpkgs": "nixpkgs_25" + }, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "nix", + "repo": "cardano-mainnet-mirror", "type": "github" } }, - "cardano-shell_7": { - "flake": false, + "cardano-mainnet-mirror_3": { + "inputs": { + "nixpkgs": "nixpkgs_34" + }, "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "lastModified": 1642701714, + "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", + "repo": "cardano-mainnet-mirror", + "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-shell", + "ref": "nix", + "repo": "cardano-mainnet-mirror", "type": "github" } }, - "cardano-wallet": { + "cardano-nix": { "inputs": { - "customConfig": "customConfig_2", - "ema": "ema", - "emanote": "emanote", - "flake-compat": "flake-compat_8", - "flake-utils": "flake-utils_25", - "haskellNix": "haskellNix_2", - "hostNixpkgs": [ + "blockfrost": "blockfrost_2", + "cardano-configurations-8.1.1": "cardano-configurations-8.1.1", + "cardano-configurations-8.7.3": "cardano-configurations-8.7.3", + "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", + "devour-flake": "devour-flake", + "devshell": "devshell_4", + "flake-parts": "flake-parts_5", + "flake-root": "flake-root", + "hercules-ci-effects": "hercules-ci-effects", + "nixpkgs": [ "ctl", - "db-sync", - "cardano-world", - "cardano-wallet", "nixpkgs" ], - "iohkNix": "iohkNix_2", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "cardano-wallet", - "haskellNix", - "nixpkgs-unstable" - ] + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "treefmt-nix": "treefmt-nix_3" }, "locked": { - "lastModified": 1656674685, - "narHash": "sha256-Uq02O758v7U61a9Ol6VzSDyx3S/CVHn0l/OUM1UYJkY=", - "owner": "input-output-hk", - "repo": "cardano-wallet", - "rev": "c0ece6ad1868682b074708ffb810bdc2ea96934f", + "lastModified": 1721651758, + "narHash": "sha256-pciT8ASgAovl6I0GsdiWnUhExNXPJtQZpD8dTcv1o60=", + "owner": "mlabs-haskell", + "repo": "cardano.nix", + "rev": "f6a7f0c43299783ca37bbdc73195c7289854e8da", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "v2022-07-01", - "repo": "cardano-wallet", + "owner": "mlabs-haskell", + "ref": "dshuiski/ogmios-v6.5.0", + "repo": "cardano.nix", "type": "github" } }, - "cardano-world": { + "cardano-node": { "inputs": { - "bitte": "bitte", - "bitte-cells": "bitte-cells", - "byron-chain": "byron-chain", - "capsules": "capsules_2", - "cardano-db-sync": [ + "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", + "hostNixpkgs": [ "ctl", - "db-sync" + "cardano-node", + "nixpkgs" ], - "cardano-explorer-app": "cardano-explorer-app", - "cardano-graphql": "cardano-graphql", - "cardano-node": "cardano-node_2", - "cardano-wallet": "cardano-wallet", - "data-merge": "data-merge_3", - "flake-compat": "flake-compat_9", - "hackage": "hackage_3", - "haskell-nix": "haskell-nix_2", - "iohk-nix": "iohk-nix", - "n2c": "n2c_3", - "nix-inclusive": "nix-inclusive", - "nixpkgs": "nixpkgs_63", - "nixpkgs-haskell": [ + "iohkNix": "iohkNix_4", + "nix2container": "nix2container_6", + "nixpkgs": [ "ctl", - "db-sync", - "cardano-world", - "haskell-nix", + "cardano-node", + "haskellNix", "nixpkgs-unstable" ], - "ogmios": "ogmios", - "std": "std_3", - "tullia": "tullia_2" + "ops-lib": "ops-lib_3", + "std": "std_5", + "utils": "utils_7" }, "locked": { - "lastModified": 1662508244, - "narHash": "sha256-s8kroVd8VAZ/Lfv2gNt+RzIuSnWpQxAAL0y90tn1i0o=", + "lastModified": 1721843629, + "narHash": "sha256-F5wgRA820x16f+8c/LlEEBG0rMJIA1XWw6X0ZwX5UWs=", "owner": "input-output-hk", - "repo": "cardano-world", - "rev": "0b6dcb5b61a0f7a2c048cb757463cbc0dfa0fe24", + "repo": "cardano-node", + "rev": "176f99e51155cb3eaa0711db1c3c969d67438958", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "cardano-world", + "ref": "9.1.0", + "repo": "cardano-node", "type": "github" } }, - "cicero": { + "cardano-node-8.1.1": { "inputs": { - "alejandra": "alejandra", - "data-merge": "data-merge_2", - "devshell": "devshell_8", - "driver": "driver", - "follower": "follower", - "haskell-nix": "haskell-nix", - "inclusive": "inclusive_8", - "nix": "nix_8", - "nix-cache-proxy": "nix-cache-proxy", - "nixpkgs": "nixpkgs_39", - "poetry2nix": "poetry2nix", - "utils": "utils_16" + "CHaP": "CHaP_3", + "cardano-automation": "cardano-automation", + "cardano-mainnet-mirror": "cardano-mainnet-mirror", + "customConfig": "customConfig", + "em": "em", + "empty-flake": "empty-flake_2", + "flake-compat": "flake-compat_6", + "hackageNix": "hackageNix_2", + "haskellNix": "haskellNix_2", + "hostNixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "nixpkgs" + ], + "iohkNix": "iohkNix_2", + "nix2container": "nix2container", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "haskellNix", + "nixpkgs-unstable" + ], + "ops-lib": "ops-lib", + "std": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std" + ], + "tullia": "tullia", + "utils": "utils_3" }, "locked": { - "lastModified": 1647522107, - "narHash": "sha256-Kti1zv+GXnbujkJ0ODB2ukq4Eb2RVOpudZ1xVDhhbes=", - "owner": "input-output-hk", - "repo": "cicero", - "rev": "0fd8642fe437f6129fe6914f032d3fdc7591d4fe", + "lastModified": 1687190129, + "narHash": "sha256-JCa9+QhZ2RVSIKkhz2WCZqTKCgdUSuezWS2YsQ5vhM4=", + "owner": "intersectmbo", + "repo": "cardano-node", + "rev": "6f79e5c3ea109a70cd01910368e011635767305a", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "cicero", + "owner": "intersectmbo", + "ref": "8.1.1", + "repo": "cardano-node", "type": "github" } }, - "ctl": { + "cardano-node-8.7.3": { "inputs": { - "CHaP": "CHaP", - "blockfrost": "blockfrost", - "cardano-configurations": "cardano-configurations", - "cardano-node": "cardano-node", - "db-sync": "db-sync", - "easy-purescript-nix": "easy-purescript-nix", - "flake-compat": "flake-compat_11", - "hackage-nix": "hackage-nix", - "haskell-nix": "haskell-nix_3", - "hercules-ci-effects": "hercules-ci-effects", - "iohk-nix": "iohk-nix_2", - "kupo": "kupo", - "kupo-nixos": "kupo-nixos", + "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": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "nixpkgs" + ], + "iohkNix": "iohkNix_3", + "nix2container": "nix2container_4", "nixpkgs": [ "ctl", - "haskell-nix", + "cardano-nix", + "cardano-node-8.7.3", + "haskellNix", "nixpkgs-unstable" ], - "ogmios": "ogmios_2", - "ogmios-nixos": "ogmios-nixos", - "plutip": "plutip" + "ops-lib": "ops-lib_2", + "std": "std_3", + "utils": "utils_5" }, "locked": { - "lastModified": 1721765440, - "narHash": "sha256-H54m6RQRxb83z1IEp1y3krmQk7+SspymnSNaCKQm8LU=", - "owner": "Plutonomicon", - "repo": "cardano-transaction-lib", - "rev": "ddbd601e882276958fe260b8c492b5c7f489f174", + "lastModified": 1702654749, + "narHash": "sha256-fIzSNSKWC7qMRjHUMHfrMnEzHiFu7ac/UUgfofXqaFY=", + "owner": "intersectmbo", + "repo": "cardano-node", + "rev": "a4a8119b59b1fbb9a69c79e1e6900e91292161e7", "type": "github" }, "original": { - "owner": "Plutonomicon", - "repo": "cardano-transaction-lib", - "rev": "ddbd601e882276958fe260b8c492b5c7f489f174", + "owner": "intersectmbo", + "ref": "8.7.3", + "repo": "cardano-node", "type": "github" } }, - "customConfig": { + "cardano-node-service": { + "flake": false, "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "lastModified": 1690209950, + "narHash": "sha256-d0V8N+y/OarYv6GQycGXnbPly7GeJRBEeE1017qj9eI=", "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "repo": "cardano-node", + "rev": "d2d90b48c5577b4412d5c9c9968b55f8ab4b9767", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "empty-flake", + "ref": "8.1.2", + "repo": "cardano-node", "type": "github" } }, - "customConfig_2": { + "cardano-node_2": { + "flake": false, "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "lastModified": 1659625017, + "narHash": "sha256-4IrheFeoWfvkZQndEk4fGUkOiOjcVhcyXZ6IqmvkDgg=", "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "repo": "cardano-node", + "rev": "950c4e222086fed5ca53564e642434ce9307b0b9", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "empty-flake", + "ref": "1.35.3", + "repo": "cardano-node", "type": "github" } }, - "customConfig_3": { - "locked": { - "lastModified": 1, - "narHash": "sha256-Zd5w1I1Dwt783Q4WuBuCpedcwG1DrIgQGqabyF87prM=", - "path": "./custom-config", - "type": "path" - }, - "original": { - "path": "./custom-config", - "type": "path" - } - }, - "data-merge": { + "cardano-parts": { "inputs": { - "nixlib": "nixlib", - "yants": "yants_2" + "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": [ + "ctl", + "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": 1648237091, - "narHash": "sha256-OtgcOt/CB0/9S0rh1eAog+AvAg9kF6GyAknyWOXiAZI=", - "owner": "divnix", - "repo": "data-merge", - "rev": "b21bcf7bd949ac92af3930ecb1d3df8786384722", + "lastModified": 1697147999, + "narHash": "sha256-mbSWIcmDnt2mlETCNL8MI97nDH1lkOxIxFHKXXfOV28=", + "owner": "input-output-hk", + "repo": "cardano-parts", + "rev": "af8993ee12f78ddfcc31eefe006391669cb11462", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "cardano-parts", "type": "github" } }, - "data-merge_2": { - "inputs": { - "nixlib": "nixlib_2" - }, + "cardano-shell": { + "flake": false, "locked": { - "lastModified": 1635967744, - "narHash": "sha256-01065dNad3BIepNzrpYuYInxq/ynqtGMSsIiNqjND7E=", - "owner": "divnix", - "repo": "data-merge", - "rev": "68bd71f980f75cf73bc5071982eddfe6bc089768", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "data-merge_3": { - "inputs": { - "nixlib": "nixlib_3", - "yants": "yants_4" - }, + "cardano-shell_10": { + "flake": false, "locked": { - "lastModified": 1655854240, - "narHash": "sha256-j74ixD7Y0bF3h0fBJFKPR9botlrMu0fgG/YsiUKybko=", - "owner": "divnix", - "repo": "data-merge", - "rev": "0bbe0a68d4ee090b8bbad0c5e1e85060d2bdfe98", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "db-sync": { - "inputs": { - "cardano-world": "cardano-world", - "customConfig": "customConfig_3", - "flake-compat": "flake-compat_10", - "haskellNix": "haskellNix_3", - "iohkNix": "iohkNix_3", - "nixpkgs": [ - "ctl", - "db-sync", - "haskellNix", - "nixpkgs-unstable" - ], - "utils": "utils_23" - }, + "cardano-shell_2": { + "flake": false, "locked": { - "lastModified": 1670313550, - "narHash": "sha256-Gkn/hyK0xiDJZY1O5JEwuosMzar+IskC9xxeBts+0H4=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "cardano-db-sync", - "rev": "1040fa9ec85fd75ce9f02dae2006170136793d02", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "13.1.0.0", - "repo": "cardano-db-sync", + "repo": "cardano-shell", "type": "github" } }, - "deploy": { - "inputs": { - "fenix": "fenix", - "flake-compat": "flake-compat_4", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "deploy", - "fenix", - "nixpkgs" - ], - "utils": "utils_3" - }, + "cardano-shell_3": { + "flake": false, "locked": { - "lastModified": 1638318651, - "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "deploy-rs", - "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "deploy-rs", + "repo": "cardano-shell", "type": "github" } }, - "deploy_2": { - "inputs": { - "fenix": "fenix_3", - "flake-compat": "flake-compat_5", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "deploy", - "fenix", - "nixpkgs" - ], - "utils": "utils_9" - }, + "cardano-shell_4": { + "flake": false, "locked": { - "lastModified": 1638318651, - "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "deploy-rs", - "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "deploy-rs", + "repo": "cardano-shell", "type": "github" } }, - "deploy_3": { - "inputs": { - "fenix": "fenix_5", - "flake-compat": "flake-compat_6", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "capsules", - "bitte", - "deploy", - "fenix", - "nixpkgs" - ], - "utils": "utils_17" - }, + "cardano-shell_5": { + "flake": false, "locked": { - "lastModified": 1638318651, - "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", "owner": "input-output-hk", - "repo": "deploy-rs", - "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "deploy-rs", + "repo": "cardano-shell", "type": "github" } }, - "devshell": { - "inputs": { - "flake-utils": [ - "ctl", - "cardano-node", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "ctl", - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] - }, + "cardano-shell_6": { + "flake": false, "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_10": { + "cardano-shell_7": { + "flake": false, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_11": { + "cardano-shell_8": { + "flake": false, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_12": { + "cardano-shell_9": { + "flake": false, "locked": { - "lastModified": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1608537748, + "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", + "owner": "input-output-hk", + "repo": "cardano-shell", + "rev": "9392c75087cb9a3d453998f4230930dea3a95725", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "cardano-shell", "type": "github" } }, - "devshell_13": { + "cardano-wallet": { + "inputs": { + "customConfig": "customConfig_4", + "ema": "ema", + "emanote": "emanote", + "flake-compat": "flake-compat_21", + "flake-utils": "flake-utils_40", + "haskellNix": "haskellNix_5", + "hostNixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "cardano-wallet", + "nixpkgs" + ], + "iohkNix": "iohkNix_5", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "cardano-wallet", + "haskellNix", + "nixpkgs-unstable" + ] + }, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "lastModified": 1656674685, + "narHash": "sha256-Uq02O758v7U61a9Ol6VzSDyx3S/CVHn0l/OUM1UYJkY=", + "owner": "input-output-hk", + "repo": "cardano-wallet", + "rev": "c0ece6ad1868682b074708ffb810bdc2ea96934f", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "ref": "v2022-07-01", + "repo": "cardano-wallet", "type": "github" } }, - "devshell_14": { + "cardano-wallet-service": { + "flake": false, "locked": { - "lastModified": 1637098489, - "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", - "owner": "numtide", - "repo": "devshell", - "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", + "lastModified": 1689751896, + "narHash": "sha256-ijflgIw+1FpLoxM4Rksf4MJvNqnEPAv3gNWE8zMuefU=", + "owner": "cardano-foundation", + "repo": "cardano-wallet", + "rev": "3f0d2f3abe706958fab8cdc528184068bd0453c9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "cardano-foundation", + "ref": "v2023-07-18", + "repo": "cardano-wallet", "type": "github" } }, - "devshell_15": { + "cardano-world": { "inputs": { - "flake-utils": [ + "bitte": "bitte", + "bitte-cells": "bitte-cells", + "byron-chain": "byron-chain", + "capsules": "capsules_2", + "cardano-db-sync": [ + "ctl", + "db-sync" + ], + "cardano-explorer-app": "cardano-explorer-app", + "cardano-graphql": "cardano-graphql", + "cardano-node": "cardano-node_2", + "cardano-wallet": "cardano-wallet", + "data-merge": "data-merge_3", + "flake-compat": "flake-compat_22", + "hackage": "hackage_4", + "haskell-nix": "haskell-nix_3", + "iohk-nix": "iohk-nix_2", + "n2c": "n2c_6", + "nix-inclusive": "nix-inclusive", + "nixpkgs": "nixpkgs_92", + "nixpkgs-haskell": [ "ctl", "db-sync", "cardano-world", - "std", - "flake-utils" + "haskell-nix", + "nixpkgs-unstable" ], + "ogmios": "ogmios", + "std": "std_7", + "tullia": "tullia_4" + }, + "locked": { + "lastModified": 1662508244, + "narHash": "sha256-s8kroVd8VAZ/Lfv2gNt+RzIuSnWpQxAAL0y90tn1i0o=", + "owner": "input-output-hk", + "repo": "cardano-world", + "rev": "0b6dcb5b61a0f7a2c048cb757463cbc0dfa0fe24", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cardano-world", + "type": "github" + } + }, + "cicero": { + "inputs": { + "alejandra": "alejandra", + "data-merge": "data-merge_2", + "devshell": "devshell_12", + "driver": "driver", + "follower": "follower", + "haskell-nix": "haskell-nix_2", + "inclusive": "inclusive_9", + "nix": "nix_13", + "nix-cache-proxy": "nix-cache-proxy", + "nixpkgs": "nixpkgs_68", + "poetry2nix": "poetry2nix", + "utils": "utils_21" + }, + "locked": { + "lastModified": 1647522107, + "narHash": "sha256-Kti1zv+GXnbujkJ0ODB2ukq4Eb2RVOpudZ1xVDhhbes=", + "owner": "input-output-hk", + "repo": "cicero", + "rev": "0fd8642fe437f6129fe6914f032d3fdc7591d4fe", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "cicero", + "type": "github" + } + }, + "colmena": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", "nixpkgs": [ "ctl", - "db-sync", - "cardano-world", - "std", + "cardano-nix", + "cardano-db-sync", + "cardano-parts", "nixpkgs" - ] + ], + "stable": "stable" }, "locked": { - "lastModified": 1658746384, - "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", - "owner": "numtide", - "repo": "devshell", - "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", + "lastModified": 1684127108, + "narHash": "sha256-01bfuSY4gnshhtqA1EJCw2CMsKkAx+dHS+sEpQ2+EAQ=", + "owner": "zhaofengli", + "repo": "colmena", + "rev": "5fdd743a11e7291bd8ac1e169d62ba6156c99be4", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "zhaofengli", + "ref": "v0.4.0", + "repo": "colmena", "type": "github" } }, - "devshell_16": { + "crane": { "inputs": { - "flake-utils": "flake-utils_31", + "flake-compat": "flake-compat_12", + "flake-utils": "flake-utils_14", "nixpkgs": [ "ctl", - "db-sync", - "cardano-world", - "tullia", + "cardano-nix", + "cardano-node-8.7.3", "std", + "paisano-mdbook-preprocessor", "nixpkgs" - ] + ], + "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1650900878, - "narHash": "sha256-qhNncMBSa9STnhiLfELEQpYC1L4GrYHNIzyCZ/pilsI=", - "owner": "numtide", - "repo": "devshell", - "rev": "d97df53b5ddaa1cfbea7cddbd207eb2634304733", + "lastModified": 1676162383, + "narHash": "sha256-krUCKdz7ebHlFYm/A7IbKDnj2ZmMMm3yIEQcooqm7+E=", + "owner": "ipetkov", + "repo": "crane", + "rev": "6fb400ec631b22ccdbc7090b38207f7fb5cfb5f2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "ipetkov", + "repo": "crane", "type": "github" } }, - "devshell_2": { + "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": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1683429373, + "narHash": "sha256-Mx5lwMyk2T40wFqOoYcJLs4srwO2UrsepTZhlHNuTrI=", + "owner": "manveru", + "repo": "crystal-flake", + "rev": "e7a443c20e2be6e5dd870586705dd27c91aa9c5c", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "manveru", + "repo": "crystal-flake", "type": "github" } }, - "devshell_3": { + "crystal-aarch64-darwin": { + "flake": false, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", - "type": "github" + "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": { - "owner": "numtide", - "repo": "devshell", - "type": "github" + "type": "tarball", + "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-darwin-universal.tar.gz" } }, - "devshell_4": { + "crystal-src": { + "flake": false, "locked": { - "lastModified": 1637098489, - "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", - "owner": "numtide", - "repo": "devshell", - "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", + "lastModified": 1681995387, + "narHash": "sha256-t+1vM1m62UftCvfa90Dg6nqt6Zseh/GP/Gc1VfOa4+c=", + "owner": "crystal-lang", + "repo": "crystal", + "rev": "a59a3dbd738269d5aad6051c3834fc70f482f469", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "crystal-lang", + "ref": "1.8.1", + "repo": "crystal", "type": "github" } }, - "devshell_5": { + "crystal-x86_64-darwin": { + "flake": false, "locked": { - "lastModified": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", - "type": "github" + "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": { - "owner": "numtide", - "repo": "devshell", - "type": "github" + "type": "tarball", + "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-darwin-universal.tar.gz" } }, - "devshell_6": { + "crystal-x86_64-linux": { + "flake": false, "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "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": "numtide", - "repo": "devshell", + "owner": "elbywan", + "ref": "v0.9.0", + "repo": "crystalline", "type": "github" } }, - "devshell_7": { + "ctl": { "inputs": { - "flake-utils": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "std", - "flake-utils" - ], + "CHaP": "CHaP", + "blockfrost": "blockfrost", + "cardano-configurations": "cardano-configurations", + "cardano-nix": "cardano-nix", + "cardano-node": "cardano-node", + "db-sync": "db-sync", + "easy-purescript-nix": "easy-purescript-nix", + "flake-compat": "flake-compat_24", + "hackage-nix": "hackage-nix", + "haskell-nix": "haskell-nix_4", + "hercules-ci-effects": "hercules-ci-effects_2", + "iohk-nix": "iohk-nix_3", "nixpkgs": [ "ctl", - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ] + "haskell-nix", + "nixpkgs-unstable" + ], + "nixpkgs-arion": "nixpkgs-arion", + "ogmios": "ogmios_2" }, "locked": { - "lastModified": 1658746384, - "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", - "owner": "numtide", - "repo": "devshell", - "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", + "lastModified": 1722363356, + "narHash": "sha256-9AQgEftAlU+B0mV3fxZlwhQ7l3vxG/MXyHDgEIkfzwk=", + "owner": "Plutonomicon", + "repo": "cardano-transaction-lib", + "rev": "70ab312ebe7615444c895fd1072b6be91e47430d", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "Plutonomicon", + "repo": "cardano-transaction-lib", + "rev": "70ab312ebe7615444c895fd1072b6be91e47430d", "type": "github" } }, - "devshell_8": { - "inputs": { - "flake-utils": "flake-utils_15", - "nixpkgs": "nixpkgs_36" - }, + "customConfig": { "locked": { - "lastModified": 1644227066, - "narHash": "sha256-FHcFZtpZEWnUh62xlyY3jfXAXHzJNEDLDzLsJxn+ve0=", - "owner": "numtide", - "repo": "devshell", - "rev": "7033f64dd9ef8d9d8644c5030c73913351d2b660", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "devshell_9": { + "customConfig_2": { "locked": { - "lastModified": 1632436039, - "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", - "owner": "numtide", - "repo": "devshell", - "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "devshell", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "dmerge": { - "inputs": { - "nixlib": [ - "ctl", - "cardano-node", - "tullia", - "std", - "nixpkgs" - ], - "yants": [ - "ctl", - "cardano-node", - "tullia", - "std", - "yants" - ] + "customConfig_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" + } + }, + "customConfig_4": { "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "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=", + "path": "./custom-config", + "type": "path" + }, + "original": { + "path": "./custom-config", + "type": "path" + } + }, + "data-merge": { + "inputs": { + "nixlib": "nixlib", + "yants": "yants_6" + }, + "locked": { + "lastModified": 1648237091, + "narHash": "sha256-OtgcOt/CB0/9S0rh1eAog+AvAg9kF6GyAknyWOXiAZI=", "owner": "divnix", "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "rev": "b21bcf7bd949ac92af3930ecb1d3df8786384722", "type": "github" }, "original": { @@ -2254,31 +2887,16 @@ "type": "github" } }, - "dmerge_2": { + "data-merge_2": { "inputs": { - "nixlib": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ], - "yants": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "std", - "yants" - ] + "nixlib": "nixlib_2" }, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "lastModified": 1635967744, + "narHash": "sha256-01065dNad3BIepNzrpYuYInxq/ynqtGMSsIiNqjND7E=", "owner": "divnix", "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "rev": "68bd71f980f75cf73bc5071982eddfe6bc089768", "type": "github" }, "original": { @@ -2287,29 +2905,17 @@ "type": "github" } }, - "dmerge_3": { + "data-merge_3": { "inputs": { - "nixlib": [ - "ctl", - "db-sync", - "cardano-world", - "std", - "nixpkgs" - ], - "yants": [ - "ctl", - "db-sync", - "cardano-world", - "std", - "yants" - ] + "nixlib": "nixlib_3", + "yants": "yants_8" }, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "lastModified": 1655854240, + "narHash": "sha256-j74ixD7Y0bF3h0fBJFKPR9botlrMu0fgG/YsiUKybko=", "owner": "divnix", "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "rev": "0bbe0a68d4ee090b8bbad0c5e1e85060d2bdfe98", "type": "github" }, "original": { @@ -2318,1065 +2924,1340 @@ "type": "github" } }, - "driver": { + "db-sync": { "inputs": { - "devshell": "devshell_9", - "inclusive": "inclusive_6", - "nix": "nix_7", + "cardano-world": "cardano-world", + "customConfig": "customConfig_5", + "flake-compat": "flake-compat_23", + "haskellNix": "haskellNix_6", + "iohkNix": "iohkNix_6", "nixpkgs": [ "ctl", "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" + "haskellNix", + "nixpkgs-unstable" ], - "utils": "utils_13" + "utils": "utils_28" }, "locked": { - "lastModified": 1644418487, - "narHash": "sha256-nzFmmBYjNjWVy25bHLLmZECfwJm3nxcAr/mYVYxWggA=", + "lastModified": 1670313550, + "narHash": "sha256-Gkn/hyK0xiDJZY1O5JEwuosMzar+IskC9xxeBts+0H4=", "owner": "input-output-hk", - "repo": "nomad-driver-nix", - "rev": "7f7adb6814b4bf926597e4b810b803140176122c", + "repo": "cardano-db-sync", + "rev": "1040fa9ec85fd75ce9f02dae2006170136793d02", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "nomad-driver-nix", + "ref": "13.1.0.0", + "repo": "cardano-db-sync", "type": "github" } }, - "easy-purescript-nix": { - "flake": false, + "deploy": { + "inputs": { + "fenix": "fenix_3", + "flake-compat": "flake-compat_17", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "deploy", + "fenix", + "nixpkgs" + ], + "utils": "utils_8" + }, "locked": { - "lastModified": 1696584097, - "narHash": "sha256-a9Hhqf/Fi0FkjRTcQr3pYDhrO9A9tdOkaeVgD23Cdrk=", - "owner": "justinwoo", - "repo": "easy-purescript-nix", - "rev": "d5fe5f4b210a0e4bac42ae0c159596a49c5eb016", + "lastModified": 1638318651, + "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "owner": "input-output-hk", + "repo": "deploy-rs", + "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", "type": "github" }, "original": { - "owner": "justinwoo", - "repo": "easy-purescript-nix", + "owner": "input-output-hk", + "repo": "deploy-rs", "type": "github" } }, - "em": { - "flake": false, + "deploy_2": { + "inputs": { + "fenix": "fenix_5", + "flake-compat": "flake-compat_18", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "deploy", + "fenix", + "nixpkgs" + ], + "utils": "utils_14" + }, "locked": { - "lastModified": 1684791668, - "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", - "owner": "deepfire", - "repo": "em", - "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", + "lastModified": 1638318651, + "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "owner": "input-output-hk", + "repo": "deploy-rs", + "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", "type": "github" }, "original": { - "owner": "deepfire", - "repo": "em", + "owner": "input-output-hk", + "repo": "deploy-rs", "type": "github" } }, - "ema": { + "deploy_3": { "inputs": { - "flake-compat": "flake-compat_7", - "flake-utils": "flake-utils_22", - "nixpkgs": "nixpkgs_54", - "pre-commit-hooks": "pre-commit-hooks" + "fenix": "fenix_7", + "flake-compat": "flake-compat_19", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "capsules", + "bitte", + "deploy", + "fenix", + "nixpkgs" + ], + "utils": "utils_22" }, "locked": { - "lastModified": 1646661767, - "narHash": "sha256-5zxUr3nO4r04K5WGrW/+nW84qbOW8wNJLt902yQmyF4=", - "owner": "srid", - "repo": "ema", - "rev": "bcabc170b7de9cdd83b4bbcf59130b54933602ea", + "lastModified": 1638318651, + "narHash": "sha256-YsYBMa8Chtb6ccGZOVStReiZ33ZNmi7kNPLf/Ua2kY8=", + "owner": "input-output-hk", + "repo": "deploy-rs", + "rev": "1d3a4f4681a98479219c628165bb6b3a12eae843", "type": "github" }, "original": { - "owner": "srid", - "repo": "ema", + "owner": "input-output-hk", + "repo": "deploy-rs", "type": "github" } }, - "ema_2": { + "devour-flake": { "flake": false, "locked": { - "lastModified": 1655231448, - "narHash": "sha256-LmAnOFKiqOWW9cQNZCbqFF0N1Mx073908voXz+4Fzic=", + "lastModified": 1694098737, + "narHash": "sha256-O51F4YFOzlaQAc9b6xjkAqpvrvCtw/Os2M7TU0y4SKQ=", "owner": "srid", - "repo": "ema", - "rev": "da5b29f03c1edfb7f947666a5a818fb97cc3c229", + "repo": "devour-flake", + "rev": "30a34036b29b0d12989ef6c8be77aa949d85aef5", "type": "github" }, "original": { "owner": "srid", - "ref": "multisite", - "repo": "ema", + "repo": "devour-flake", "type": "github" } }, - "emanote": { + "devshell": { "inputs": { - "ema": "ema_2", - "flake-parts": "flake-parts", - "haskell-flake": "haskell-flake", - "nixpkgs": "nixpkgs_57", - "tailwind-haskell": "tailwind-haskell" + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1655823900, - "narHash": "sha256-YEDJxa2gPf2+GGyrkFz4EliCml1FyDualZtbbZEmljA=", - "owner": "srid", - "repo": "emanote", - "rev": "147528d9df81b881214652ce0cefec0b3d52965e", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "emanote", - "type": "github" - } - }, - "empty-flake": { - "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", - "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "empty-flake", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix": { - "inputs": { - "nixpkgs": "nixpkgs_13", - "rust-analyzer-src": "rust-analyzer-src" - }, + "devshell_10": { "locked": { - "lastModified": 1645165506, - "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_2": { + "devshell_11": { "inputs": { - "nixpkgs": [ + "flake-utils": [ "ctl", "db-sync", "cardano-world", "bitte", - "capsules", - "bitte", - "nixpkgs-unstable" + "std", + "flake-utils" ], - "rust-analyzer-src": "rust-analyzer-src_2" + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1649226351, - "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", - "owner": "nix-community", - "repo": "fenix", - "rev": "c7e184561fe843abb861cd7d22c23066987078e2", + "lastModified": 1658746384, + "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", + "owner": "numtide", + "repo": "devshell", + "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_3": { + "devshell_12": { "inputs": { - "nixpkgs": "nixpkgs_26", - "rust-analyzer-src": "rust-analyzer-src_3" + "flake-utils": "flake-utils_30", + "nixpkgs": "nixpkgs_65" }, "locked": { - "lastModified": 1645165506, - "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", + "lastModified": 1644227066, + "narHash": "sha256-FHcFZtpZEWnUh62xlyY3jfXAXHzJNEDLDzLsJxn+ve0=", + "owner": "numtide", + "repo": "devshell", + "rev": "7033f64dd9ef8d9d8644c5030c73913351d2b660", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_4": { - "inputs": { - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "nixpkgs-unstable" - ], - "rust-analyzer-src": "rust-analyzer-src_4" - }, + "devshell_13": { "locked": { - "lastModified": 1660631227, - "narHash": "sha256-LSXmaDhbPw+3ww63Rx5ewBNWwCQIrzQvzphCFm5BRbU=", - "owner": "nix-community", - "repo": "fenix", - "rev": "41731c1a7ba1441c7544e8a0387aaf58e48f26b8", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", + "owner": "numtide", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_5": { - "inputs": { - "nixpkgs": "nixpkgs_42", - "rust-analyzer-src": "rust-analyzer-src_5" - }, + "devshell_14": { "locked": { - "lastModified": 1645165506, - "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "fenix_6": { - "inputs": { - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "capsules", - "bitte", - "nixpkgs-unstable" - ], - "rust-analyzer-src": "rust-analyzer-src_6" - }, + "devshell_15": { "locked": { - "lastModified": 1649226351, - "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", - "owner": "nix-community", - "repo": "fenix", - "rev": "c7e184561fe843abb861cd7d22c23066987078e2", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "fenix", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat": { - "flake": false, + "devshell_16": { "locked": { - "lastModified": 1647532380, - "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "7da118186435255a30b5ffeabba9629c344c0bec", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", + "owner": "numtide", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "fixes", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_10": { - "flake": false, + "devshell_17": { "locked": { - "lastModified": 1647532380, - "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "7da118186435255a30b5ffeabba9629c344c0bec", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "fixes", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_11": { - "flake": false, + "devshell_18": { "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "lastModified": 1637098489, + "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", + "owner": "numtide", + "repo": "devshell", + "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_12": { - "flake": false, + "devshell_19": { + "inputs": { + "flake-utils": [ + "ctl", + "db-sync", + "cardano-world", + "std", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "lastModified": 1658746384, + "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", + "owner": "numtide", + "repo": "devshell", + "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_13": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" + "devshell_2": { + "inputs": { + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_14": { - "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_15": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" + "devshell_20": { + "inputs": { + "flake-utils": "flake-utils_46", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "tullia", + "std", + "nixpkgs" + ] }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "lastModified": 1650900878, + "narHash": "sha256-qhNncMBSa9STnhiLfELEQpYC1L4GrYHNIzyCZ/pilsI=", + "owner": "numtide", + "repo": "devshell", + "rev": "d97df53b5ddaa1cfbea7cddbd207eb2634304733", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_3": { - "flake": false, + "devshell_3": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "nixpkgs" + ], + "systems": "systems_2" + }, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1686680692, + "narHash": "sha256-SsLZz3TDleraAiJq4EkmdyewSyiv5g0LZYc6vaLZOMQ=", + "owner": "numtide", + "repo": "devshell", + "rev": "fd6223370774dd9c33354e87a007004b5fd36442", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_4": { - "flake": false, + "devshell_4": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "nixpkgs" + ], + "systems": "systems_3" + }, "locked": { - "lastModified": 1627913399, - "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "lastModified": 1695973661, + "narHash": "sha256-BP2H4c42GThPIhERtTpV1yCtwQHYHEKdRu7pjrmQAwo=", + "owner": "numtide", + "repo": "devshell", + "rev": "cd4e2fda3150dd2f689caeac07b7f47df5197c31", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_5": { - "flake": false, + "devshell_5": { + "inputs": { + "flake-utils": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1627913399, - "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "lastModified": 1663445644, + "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", + "owner": "numtide", + "repo": "devshell", + "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_6": { - "flake": false, + "devshell_6": { "locked": { - "lastModified": 1627913399, - "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", + "owner": "numtide", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_7": { - "flake": false, + "devshell_7": { "locked": { - "lastModified": 1641205782, - "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_8": { - "flake": false, + "devshell_8": { "locked": { - "lastModified": 1635892615, - "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "eca47d3377946315596da653862d341ee5341318", + "lastModified": 1637098489, + "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", + "owner": "numtide", + "repo": "devshell", + "rev": "e8c2d4967b5c498b12551d1bb49352dcf9efa3e4", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-compat_9": { - "flake": false, + "devshell_9": { "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "lastModified": 1632436039, + "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", + "owner": "numtide", + "repo": "devshell", + "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6", "type": "github" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "flake-parts": { + "dmerge": { "inputs": { - "nixpkgs": "nixpkgs_56" + "nixlib": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "nixpkgs" + ], + "yants": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "yants" + ] }, "locked": { - "lastModified": 1655570068, - "narHash": "sha256-KUSd2a6KgYTHd2l3Goee/P+DrAC6n1Tau+7V68czSZU=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "6dbc77b9c0477f8a9a6a9081077bb38c6a3dbb3a", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-parts_2": { + "dmerge_2": { "inputs": { - "nixpkgs-lib": [ + "nixlib": [ "ctl", - "hercules-ci-effects", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", "nixpkgs" + ], + "yants": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "yants" ] }, "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "id": "flake-parts", - "type": "indirect" + "owner": "divnix", + "repo": "data-merge", + "type": "github" } }, - "flake-utils": { + "dmerge_3": { + "inputs": { + "haumea": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "haumea" + ], + "nixlib": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "haumea", + "nixpkgs" + ], + "yants": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "lastModified": 1686862774, + "narHash": "sha256-ojGtRQ9pIOUrxsQEuEPerUkqIJEuod9hIflfNkY+9CE=", + "owner": "divnix", + "repo": "dmerge", + "rev": "9f7f7a8349d33d7bd02e0f2b484b1f076e503a96", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "ref": "0.2.1", + "repo": "dmerge", "type": "github" } }, - "flake-utils_10": { + "dmerge_4": { + "inputs": { + "nixlib": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ], + "yants": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_11": { + "dmerge_5": { + "inputs": { + "haumea": [ + "ctl", + "cardano-node", + "std", + "haumea" + ], + "nixlib": [ + "ctl", + "cardano-node", + "std", + "lib" + ], + "yants": [ + "ctl", + "cardano-node", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1686862774, + "narHash": "sha256-ojGtRQ9pIOUrxsQEuEPerUkqIJEuod9hIflfNkY+9CE=", + "owner": "divnix", + "repo": "dmerge", + "rev": "9f7f7a8349d33d7bd02e0f2b484b1f076e503a96", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "ref": "0.2.1", + "repo": "dmerge", "type": "github" } }, - "flake-utils_12": { + "dmerge_6": { + "inputs": { + "nixlib": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "std", + "nixpkgs" + ], + "yants": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_13": { + "dmerge_7": { + "inputs": { + "nixlib": [ + "ctl", + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ], + "yants": [ + "ctl", + "db-sync", + "cardano-world", + "std", + "yants" + ] + }, "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "lastModified": 1659548052, + "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", + "owner": "divnix", + "repo": "data-merge", + "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "divnix", + "repo": "data-merge", "type": "github" } }, - "flake-utils_14": { + "driver": { + "inputs": { + "devshell": "devshell_13", + "inclusive": "inclusive_7", + "nix": "nix_12", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "utils": "utils_18" + }, "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "lastModified": 1644418487, + "narHash": "sha256-nzFmmBYjNjWVy25bHLLmZECfwJm3nxcAr/mYVYxWggA=", + "owner": "input-output-hk", + "repo": "nomad-driver-nix", + "rev": "7f7adb6814b4bf926597e4b810b803140176122c", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "nomad-driver-nix", "type": "github" } }, - "flake-utils_15": { + "easy-purescript-nix": { + "flake": false, "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "lastModified": 1710161569, + "narHash": "sha256-lcIRIOFCdIWEGyKyG/tB4KvxM9zoWuBRDxW+T+mvIb0=", + "owner": "justinwoo", + "repo": "easy-purescript-nix", + "rev": "117fd96acb69d7d1727df95b6fde9d8715e031fc", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "justinwoo", + "repo": "easy-purescript-nix", "type": "github" } }, - "flake-utils_16": { + "em": { + "flake": false, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1684791668, + "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", + "owner": "deepfire", + "repo": "em", + "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "deepfire", + "repo": "em", "type": "github" } }, - "flake-utils_17": { + "em_2": { + "flake": false, "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "lastModified": 1684791668, + "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", + "owner": "deepfire", + "repo": "em", + "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "deepfire", + "repo": "em", "type": "github" } }, - "flake-utils_18": { + "em_3": { + "flake": false, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", - "type": "github" + "lastModified": 1685015066, + "narHash": "sha256-etAdEoYhtvjTw1ITh28WPNfwvvb5t/fpwCP6s7odSiQ=", + "owner": "deepfire", + "repo": "em", + "rev": "af69bb5c2ac2161434d8fea45f920f8f359587ce", + "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "deepfire", + "repo": "em", "type": "github" } }, - "flake-utils_19": { + "ema": { + "inputs": { + "flake-compat": "flake-compat_20", + "flake-utils": "flake-utils_37", + "nixpkgs": "nixpkgs_83", + "pre-commit-hooks": "pre-commit-hooks" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1646661767, + "narHash": "sha256-5zxUr3nO4r04K5WGrW/+nW84qbOW8wNJLt902yQmyF4=", + "owner": "srid", + "repo": "ema", + "rev": "bcabc170b7de9cdd83b4bbcf59130b54933602ea", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "srid", + "repo": "ema", "type": "github" } }, - "flake-utils_2": { + "ema_2": { + "flake": false, "locked": { - "lastModified": 1679360468, - "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", - "owner": "hamishmack", - "repo": "flake-utils", - "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", + "lastModified": 1655231448, + "narHash": "sha256-LmAnOFKiqOWW9cQNZCbqFF0N1Mx073908voXz+4Fzic=", + "owner": "srid", + "repo": "ema", + "rev": "da5b29f03c1edfb7f947666a5a818fb97cc3c229", "type": "github" }, "original": { - "owner": "hamishmack", - "ref": "hkm/nested-hydraJobs", - "repo": "flake-utils", + "owner": "srid", + "ref": "multisite", + "repo": "ema", "type": "github" } }, - "flake-utils_20": { + "emanote": { + "inputs": { + "ema": "ema_2", + "flake-parts": "flake-parts_6", + "haskell-flake": "haskell-flake", + "nixpkgs": "nixpkgs_86", + "tailwind-haskell": "tailwind-haskell" + }, "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "lastModified": 1655823900, + "narHash": "sha256-YEDJxa2gPf2+GGyrkFz4EliCml1FyDualZtbbZEmljA=", + "owner": "srid", + "repo": "emanote", + "rev": "147528d9df81b881214652ce0cefec0b3d52965e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "srid", + "repo": "emanote", "type": "github" } }, - "flake-utils_21": { + "empty-flake": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_22": { + "empty-flake_2": { "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_23": { + "empty-flake_3": { "locked": { - "lastModified": 1619345332, - "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_24": { + "empty-flake_4": { "locked": { - "lastModified": 1652776076, - "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", + "lastModified": 1630400035, + "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", + "owner": "input-output-hk", + "repo": "empty-flake", + "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", "type": "github" }, "original": { - "owner": "numtide", - "ref": "v1.0.0", - "repo": "flake-utils", + "owner": "input-output-hk", + "repo": "empty-flake", "type": "github" } }, - "flake-utils_25": { + "fenix": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "auth-keys-hub", + "statix", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1645251813, + "narHash": "sha256-cQ66tGjnZclBCS3nD26mZ5fUH+3/HnysGffBiWXUSHk=", + "owner": "nix-community", + "repo": "fenix", + "rev": "9892337b588c38ec59466a1c89befce464aae7f8", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_26": { + "fenix_2": { + "inputs": { + "nixpkgs": "nixpkgs_30", + "rust-analyzer-src": "rust-analyzer-src_2" + }, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1677306201, + "narHash": "sha256-VZ9x7qdTosFvVsrpgFHrtYfT6PU3yMIs7NRYn9ELapI=", + "owner": "nix-community", + "repo": "fenix", + "rev": "0923f0c162f65ae40261ec940406049726cfeab4", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_27": { + "fenix_3": { + "inputs": { + "nixpkgs": "nixpkgs_42", + "rust-analyzer-src": "rust-analyzer-src_3" + }, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1645165506, + "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_28": { + "fenix_4": { + "inputs": { + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nixpkgs-unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_4" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1649226351, + "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", + "owner": "nix-community", + "repo": "fenix", + "rev": "c7e184561fe843abb861cd7d22c23066987078e2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_29": { + "fenix_5": { + "inputs": { + "nixpkgs": "nixpkgs_55", + "rust-analyzer-src": "rust-analyzer-src_5" + }, "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "lastModified": 1645165506, + "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_3": { + "fenix_6": { + "inputs": { + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "nixpkgs-unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_6" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1660631227, + "narHash": "sha256-LSXmaDhbPw+3ww63Rx5ewBNWwCQIrzQvzphCFm5BRbU=", + "owner": "nix-community", + "repo": "fenix", + "rev": "41731c1a7ba1441c7544e8a0387aaf58e48f26b8", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_30": { + "fenix_7": { + "inputs": { + "nixpkgs": "nixpkgs_71", + "rust-analyzer-src": "rust-analyzer-src_7" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1645165506, + "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", + "owner": "nix-community", + "repo": "fenix", + "rev": "380b82e3d3381b32f11dfe024cb7d135e36d0168", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_31": { + "fenix_8": { + "inputs": { + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "capsules", + "bitte", + "nixpkgs-unstable" + ], + "rust-analyzer-src": "rust-analyzer-src_8" + }, "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "lastModified": 1649226351, + "narHash": "sha256-5fQwF5kYpPC7w0SOfdbE9Z7o5/i/dyo1BxMLVCA2h3E=", + "owner": "nix-community", + "repo": "fenix", + "rev": "c7e184561fe843abb861cd7d22c23066987078e2", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-community", + "repo": "fenix", "type": "github" } }, - "flake-utils_32": { + "flake-compat": { + "flake": false, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_33": { + "flake-compat_10": { + "flake": false, "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_4": { + "flake-compat_11": { + "flake": false, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_5": { + "flake-compat_12": { + "flake": false, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_6": { + "flake-compat_13": { + "flake": false, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_7": { + "flake-compat_14": { + "flake": false, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_8": { + "flake-compat_15": { + "flake": false, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "flake-utils_9": { + "flake-compat_16": { + "flake": false, "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "flakeCompat": { + "flake-compat_17": { "flake": false, "locked": { - "lastModified": 1641205782, - "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", "owner": "edolstra", "repo": "flake-compat", - "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { @@ -3385,3558 +4266,7650 @@ "type": "github" } }, - "follower": { - "inputs": { - "devshell": "devshell_10", - "inclusive": "inclusive_7", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" - ], - "utils": "utils_14" - }, + "flake-compat_18": { + "flake": false, "locked": { - "lastModified": 1642008295, - "narHash": "sha256-yx3lLN/hlvEeKItHJ5jH0KSm84IruTWMo78IItVPji4=", - "owner": "input-output-hk", - "repo": "nomad-follower", - "rev": "b1b0b00e940026f72d16bdf13e36ad20f1826e8a", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nomad-follower", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk": { + "flake-compat_19": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1627913399, + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_2": { + "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_3": { + "flake-compat_20": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1641205782, + "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_4": { + "flake-compat_21": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "lastModified": 1635892615, + "narHash": "sha256-harGbMZr4hzat2BWBU+Y5OYXlu+fVz7E4WeQzHi5o8A=", "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "repo": "flake-compat", + "rev": "eca47d3377946315596da653862d341ee5341318", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_5": { + "flake-compat_22": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_6": { + "flake-compat_23": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "ghc-8.6.5-iohk_7": { + "flake-compat_24": { "flake": false, "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "ghc98X": { + "flake-compat_25": { "flake": false, "locked": { - "lastModified": 1696643148, - "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", - "ref": "ghc-9.8", - "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", - "revCount": 61642, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", + "type": "github" }, "original": { - "ref": "ghc-9.8", - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", + "type": "github" } }, - "ghc99": { + "flake-compat_26": { "flake": false, "locked": { - "lastModified": 1701580282, - "narHash": "sha256-drA01r3JrXnkKyzI+owMZGxX0JameMzjK0W5jJE/+V4=", - "ref": "refs/heads/master", - "rev": "f5eb0f2982e9cf27515e892c4bdf634bcfb28459", - "revCount": 62197, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" }, "original": { - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" } }, - "gomod2nix": { - "inputs": { - "nixpkgs": "nixpkgs_5", - "utils": "utils" - }, + "flake-compat_3": { + "flake": false, "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { - "owner": "tweag", - "repo": "gomod2nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage": { + "flake-compat_4": { "flake": false, "locked": { - "lastModified": 1646097829, - "narHash": "sha256-PcHDDV8NuUxZhPV/p++IkZC+SDZ1Db7m7K+9HN4/0S4=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "283f096976b48e54183905e7bdde7f213c6ee5cd", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "hackage-nix": { + "flake-compat_5": { "flake": false, "locked": { - "lastModified": 1702426969, - "narHash": "sha256-rbhpiqSBFwLxTO4Qx2sJm7BzBQo9MidVWlL9W21HHy4=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "524b4a4d0e06119cd226aa9f5d57986547bd29b4", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "hackageNix": { + "flake-compat_6": { "flake": false, "locked": { - "lastModified": 1685492843, - "narHash": "sha256-X8dNs5Gfc2ucfaWAgZ1VmkpBB4Cb44EQZu0b7tkvz2Y=", + "lastModified": 1647532380, + "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "e7407bab324eb2445bda58c5ffac393e80dda1e4", + "repo": "flake-compat", + "rev": "7da118186435255a30b5ffeabba9629c344c0bec", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "fixes", + "repo": "flake-compat", "type": "github" } }, - "hackage_2": { + "flake-compat_7": { "flake": false, "locked": { - "lastModified": 1655342080, - "narHash": "sha256-mF/clPxSJJkKAq6Y+0oYXrU3rGOuQXFN9btSde3uvvE=", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "567e2e865d42d8e5cfe796bf03b6b38e42bc00ab", + "repo": "flake-compat", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "hackage.nix", + "ref": "hkm/gitlab-fix", + "repo": "flake-compat", "type": "github" } }, - "hackage_3": { + "flake-compat_8": { "flake": false, "locked": { - "lastModified": 1659489414, - "narHash": "sha256-AghgUkUv0hIBh+PvODngYL+ejwhCn2O2OUkVaAZYkCU=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "056c6ce7014adaf887b8e4cad15ef6fd926ea568", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage_4": { + "flake-compat_9": { "flake": false, "locked": { - "lastModified": 1650935983, - "narHash": "sha256-wZTCKzA4f7nk5sIdP2BhGz5qkt6ex5VTC/53U2Y4i9Y=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "b65addc81b03406b3ee8b139549980591ed15be5", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "edolstra", + "repo": "flake-compat", "type": "github" } }, - "hackage_5": { - "flake": false, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, "locked": { - "lastModified": 1654219082, - "narHash": "sha256-sm59eg5wSrfIAjNXfBaaOBQ8daghF3g1NiGazYfj+no=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "fc90e7c5dea0483bacb01fc00bd2ab8f8e72500d", + "lastModified": 1672152762, + "narHash": "sha256-U8iWWHgabN07zfbgedogMVWrEP1Zywyf3Yx3OYHSSgE=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "19e0f88324d90509141e192664ded98bb88ef9b2", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "haskell-flake": { + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, "locked": { - "lastModified": 1654001497, - "narHash": "sha256-GfrpyoQrVT9Z/j9its8BQs3I5O5X5Lc2IkK922bz7zg=", - "owner": "srid", - "repo": "haskell-flake", - "rev": "4c0b0ff295f0b97238a600d2381c37ee46b67f9c", + "lastModified": 1682984683, + "narHash": "sha256-fSMthG+tp60AHhNmaHc4StT3ltfHkQsJtN8GhfLWmtI=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "86684881e184f41aa322e653880e497b66429f3e", "type": "github" }, "original": { - "owner": "srid", - "repo": "haskell-flake", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "haskell-nix": { + "flake-parts_3": { "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-utils": "flake-utils_16", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", - "hackage": "hackage", - "hpc-coveralls": "hpc-coveralls_2", - "nix-tools": "nix-tools", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "haskell-nix", - "nixpkgs-unstable" - ], + "nixpkgs-lib": "nixpkgs-lib_3" + }, + "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_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" + }, + "locked": { + "lastModified": 1655570068, + "narHash": "sha256-KUSd2a6KgYTHd2l3Goee/P+DrAC6n1Tau+7V68czSZU=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "6dbc77b9c0477f8a9a6a9081077bb38c6a3dbb3a", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_7": { + "inputs": { + "nixpkgs-lib": [ + "ctl", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-root": { + "locked": { + "lastModified": 1692742795, + "narHash": "sha256-f+Y0YhVCIJ06LemO+3Xx00lIcqQxSKJHXT/yk1RTKxw=", + "owner": "srid", + "repo": "flake-root", + "rev": "d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "flake-root", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_10": { + "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_11": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_12": { + "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_13": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_14": { + "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_15": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_16": { + "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_17": { + "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_18": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_19": { + "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_2": { + "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_20": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_21": { + "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_22": { + "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_23": { + "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_24": { + "locked": { + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_25": { + "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_26": { + "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_27": { + "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_28": { + "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_29": { + "locked": { + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_30": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_31": { + "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_32": { + "locked": { + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_33": { + "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_34": { + "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_35": { + "locked": { + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_36": { + "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_37": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "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=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_43": { + "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_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" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_47": { + "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_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=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "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_8": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_9": { + "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" + } + }, + "flakeCompat": { + "flake": false, + "locked": { + "lastModified": 1641205782, + "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "follower": { + "inputs": { + "devshell": "devshell_14", + "inclusive": "inclusive_8", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "utils": "utils_19" + }, + "locked": { + "lastModified": 1642008295, + "narHash": "sha256-yx3lLN/hlvEeKItHJ5jH0KSm84IruTWMo78IItVPji4=", + "owner": "input-output-hk", + "repo": "nomad-follower", + "rev": "b1b0b00e940026f72d16bdf13e36ad20f1826e8a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "nomad-follower", + "type": "github" + } + }, + "ghc-8.6.5-iohk": { + "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_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": { + "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_3": { + "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_4": { + "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_5": { + "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_6": { + "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_7": { + "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_8": { + "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_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": { + "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.10", + "submodules": true, + "type": "git", + "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": { + "flake": false, + "locked": { + "lastModified": 1696643148, + "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", + "ref": "ghc-9.8", + "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", + "revCount": 61642, + "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" + } + }, + "ghc98X_2": { + "flake": false, + "locked": { + "lastModified": 1696643148, + "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", + "ref": "ghc-9.8", + "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", + "revCount": 61642, + "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": { + "flake": false, + "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" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" + } + }, + "ghc99_2": { + "flake": false, + "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" + }, + "original": { + "submodules": true, + "type": "git", + "url": "https://gitlab.haskell.org/ghc/ghc" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "pre-commit-hooks-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gomod2nix": { + "inputs": { + "nixpkgs": "nixpkgs_18", + "utils": "utils_2" + }, + "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_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_6" + }, + "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" + } + }, + "hackage": { + "flake": false, + "locked": { + "lastModified": 1692145451, + "narHash": "sha256-kqfyD3Mu5kgiH5W2ZshUhzO46H0zYDpwD1SWz+POMrk=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "9d2daeca0e09002bc6fb552a097a1802a2f3a4e3", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage-nix": { + "flake": false, + "locked": { + "lastModified": 1721867175, + "narHash": "sha256-1yD5lI+LtM2bMjjREucK3Y1WcKXQw0N6b8xSJty7A5I=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "62bf49579c1b900d0a930d96040d65d49c7131a6", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackageNix": { + "flake": false, + "locked": { + "lastModified": 1702945378, + "narHash": "sha256-mo1MlOphO4bRwZ8T3mDwU5LOtdQcWSA+93lT1HkCcyw=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "e59b9616a744727e8e64f605f9f216464f12f89b", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackageNix_2": { + "flake": false, + "locked": { + "lastModified": 1685492843, + "narHash": "sha256-X8dNs5Gfc2ucfaWAgZ1VmkpBB4Cb44EQZu0b7tkvz2Y=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "e7407bab324eb2445bda58c5ffac393e80dda1e4", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "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": 1719794527, + "narHash": "sha256-qHo/KumtwAzPkfLWODu/6EFY/LeK+C7iPJyAUdT8tGA=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "da2a3bc9bd1b3dd41bb147279529c471c615fd3e", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_2": { + "flake": false, + "locked": { + "lastModified": 1646097829, + "narHash": "sha256-PcHDDV8NuUxZhPV/p++IkZC+SDZ1Db7m7K+9HN4/0S4=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "283f096976b48e54183905e7bdde7f213c6ee5cd", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_3": { + "flake": false, + "locked": { + "lastModified": 1655342080, + "narHash": "sha256-mF/clPxSJJkKAq6Y+0oYXrU3rGOuQXFN9btSde3uvvE=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "567e2e865d42d8e5cfe796bf03b6b38e42bc00ab", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_4": { + "flake": false, + "locked": { + "lastModified": 1659489414, + "narHash": "sha256-AghgUkUv0hIBh+PvODngYL+ejwhCn2O2OUkVaAZYkCU=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "056c6ce7014adaf887b8e4cad15ef6fd926ea568", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "hackage_5": { + "flake": false, + "locked": { + "lastModified": 1650935983, + "narHash": "sha256-wZTCKzA4f7nk5sIdP2BhGz5qkt6ex5VTC/53U2Y4i9Y=", + "owner": "input-output-hk", + "repo": "hackage.nix", + "rev": "b65addc81b03406b3ee8b139549980591ed15be5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "hackage.nix", + "type": "github" + } + }, + "haskell-flake": { + "locked": { + "lastModified": 1654001497, + "narHash": "sha256-GfrpyoQrVT9Z/j9its8BQs3I5O5X5Lc2IkK922bz7zg=", + "owner": "srid", + "repo": "haskell-flake", + "rev": "4c0b0ff295f0b97238a600d2381c37ee46b67f9c", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "haskell-flake", + "type": "github" + } + }, + "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", + "hackage": "hackage", + "hls-1.10": "hls-1.10", + "hls-2.0": "hls-2.0", + "hpc-coveralls": "hpc-coveralls", + "hydra": "hydra", + "iserv-proxy": "iserv-proxy", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "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": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "empty-flake" + ] + }, + "locked": { + "lastModified": 1692147008, + "narHash": "sha256-ZiRaryaboJbNZ7y7XKZs2xuSfydZyGeupJNOfYpgQSw=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "1970bb2d5b0eb8152f89b305f32d055dbd6857d9", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "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", + "hackage": "hackage_2", + "hpc-coveralls": "hpc-coveralls_6", + "nix-tools": "nix-tools", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "haskell-nix", + "nixpkgs-unstable" + ], + "nixpkgs-2003": "nixpkgs-2003_6", + "nixpkgs-2105": "nixpkgs-2105_6", + "nixpkgs-2111": "nixpkgs-2111_6", + "nixpkgs-unstable": [ + "ctl", + "db-sync", + "cardano-world", + "bitte-cells", + "cicero", + "nixpkgs" + ], + "old-ghc-nix": "old-ghc-nix_6", + "stackage": "stackage_5" + }, + "locked": { + "lastModified": 1646097976, + "narHash": "sha256-EiyrBqayw67dw8pr1XCVU9tIZ+/jzXCQycW1S9a+KFA=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "f0308ed1df3ce9f10f9da1a7c0c8591921d0b4e5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "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", + "hackage": [ + "ctl", + "db-sync", + "cardano-world", + "hackage" + ], + "hpc-coveralls": "hpc-coveralls_8", + "hydra": "hydra_10", + "nix-tools": "nix-tools_3", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "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" + }, + "locked": { + "lastModified": 1659439444, + "narHash": "sha256-qUK7OVpM8/piOImpPgzSUvOFHQq19sQpvOSns2nW8es=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "ee6a6559e16a603677d7cbef7c4fe18ca801b48e", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "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", + "hackage": [ + "ctl", + "hackage-nix" + ], + "hls-1.10": "hls-1.10_6", + "hls-2.0": "hls-2.0_5", + "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", + "hpc-coveralls": "hpc-coveralls_10", + "hydra": "hydra_12", + "iserv-proxy": "iserv-proxy_6", + "nixpkgs": [ + "ctl", + "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" + }, + "locked": { + "lastModified": 1721868640, + "narHash": "sha256-iOugjcRcgSNAfu+D9YQSV0yu7086k8MQuhd5Sx9/XMU=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "1e71885e0094c98df536a25155cafc577a4b47fd", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix": { + "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", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", + "ghc98X": "ghc98X", + "ghc99": "ghc99", + "hackage": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "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", + "hpc-coveralls": "hpc-coveralls_2", + "hydra": "hydra_2", + "iserv-proxy": "iserv-proxy_2", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "haskellNix", + "nixpkgs-unstable" + ], "nixpkgs-2003": "nixpkgs-2003_2", "nixpkgs-2105": "nixpkgs-2105_2", "nixpkgs-2111": "nixpkgs-2111_2", - "nixpkgs-unstable": [ + "nixpkgs-2205": "nixpkgs-2205_2", + "nixpkgs-2211": "nixpkgs-2211_2", + "nixpkgs-2305": "nixpkgs-2305_2", + "nixpkgs-unstable": "nixpkgs-unstable_3", + "old-ghc-nix": "old-ghc-nix_2", + "stackage": "stackage" + }, + "locked": { + "lastModified": 1701053834, + "narHash": "sha256-4sH4//POARjeKJv1mu8aU4W4A28GYqrj9KB3PqusHis=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "7c491c55157208575c70c7b8434e9d4a1cf173a6", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "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": [ + "ctl", + "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": [ + "ctl", + "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": [ + "ctl", + "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": [ + "ctl", + "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": { + "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", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_5", + "ghc910X": "ghc910X", + "ghc911": "ghc911", + "hackage": [ + "ctl", + "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", + "hpc-coveralls": "hpc-coveralls_5", + "hydra": "hydra_5", + "iserv-proxy": "iserv-proxy_5", + "nixpkgs": [ + "ctl", + "cardano-node", + "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", + "old-ghc-nix": "old-ghc-nix_5", + "stackage": "stackage_4" + }, + "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_5": { + "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", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_7", + "hackage": "hackage_3", + "hpc-coveralls": "hpc-coveralls_7", + "hydra": "hydra_9", + "nix-tools": "nix-tools_2", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "cardano-wallet", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003_7", + "nixpkgs-2105": "nixpkgs-2105_7", + "nixpkgs-2111": "nixpkgs-2111_7", + "nixpkgs-unstable": "nixpkgs-unstable_10", + "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": [ + "ctl", + "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" + }, + "locked": { + "lastModified": 1650936156, + "narHash": "sha256-B58b4OCSc6ohRjGEdbQ78r+TK/OZYsBXION90kfQDC4=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "9a502b8c8aac4d7b8033bc9affb87fd03d4740fc", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haumea": { + "inputs": { + "nixpkgs": "nixpkgs_28" + }, + "locked": { + "lastModified": 1685133229, + "narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=", + "owner": "nix-community", + "repo": "haumea", + "rev": "34dd58385092a23018748b50f9b23de6266dffc2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.2.2", + "repo": "haumea", + "type": "github" + } + }, + "haumea_2": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-node", + "std", + "lib" + ] + }, + "locked": { + "lastModified": 1685133229, + "narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=", + "owner": "nix-community", + "repo": "haumea", + "rev": "34dd58385092a23018748b50f9b23de6266dffc2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.2.2", + "repo": "haumea", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": [ + "ctl", + "cardano-nix", + "flake-parts" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1710396488, + "narHash": "sha256-yniBB5i1un44uzR4+luTWvZ6uGvsHSYIBiDZ8Xox4nQ=", + "owner": "mlabs-haskell", + "repo": "hercules-ci-effects", + "rev": "f5ed263ab0585dfb7b067301419fb80d64e8c021", + "type": "github" + }, + "original": { + "owner": "mlabs-haskell", + "ref": "push-cache-effect", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hercules-ci-effects_2": { + "inputs": { + "flake-parts": "flake-parts_7", + "nixpkgs": "nixpkgs_99" + }, + "locked": { + "lastModified": 1719226092, + "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, + "hls-1.10": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "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", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_3": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_4": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_5": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-1.10_6": { + "flake": false, + "locked": { + "lastModified": 1680000865, + "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "1.10.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.0": { + "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.0_2": { + "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.0_3": { + "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.0_4": { + "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.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": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2_2": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2_3": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.2_4": { + "flake": false, + "locked": { + "lastModified": 1693064058, + "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.2.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3_2": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3_3": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.3_4": { + "flake": false, + "locked": { + "lastModified": 1695910642, + "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.3.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4": { + "flake": false, + "locked": { + "lastModified": 1696939266, + "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4_2": { + "flake": false, + "locked": { + "lastModified": 1696939266, + "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4_3": { + "flake": false, + "locked": { + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.4_4": { + "flake": false, + "locked": { + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.4.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.5": { + "flake": false, + "locked": { + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.5.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.5_2": { + "flake": false, + "locked": { + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.5.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.6": { + "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_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.7": { + "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_2": { + "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": { + "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_2": { + "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": { + "lastModified": 1718469202, + "narHash": "sha256-THXSz+iwB1yQQsr/PY151+2GvtoJnTIB2pIQ4OzfjD4=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "40891bccb235ebacce020b598b083eab9dda80f1", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.9.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hpc-coveralls": { + "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" + } + }, + "hpc-coveralls_10": { + "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" + } + }, + "hpc-coveralls_2": { + "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" + } + }, + "hpc-coveralls_3": { + "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" + } + }, + "hpc-coveralls_4": { + "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" + } + }, + "hpc-coveralls_5": { + "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" + } + }, + "hpc-coveralls_6": { + "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" + } + }, + "hpc-coveralls_7": { + "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" + } + }, + "hpc-coveralls_8": { + "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" + } + }, + "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": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "haskell-nix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_10": { + "inputs": { + "nix": "nix_18", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "haskell-nix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_11": { + "inputs": { + "nix": "nix_19", + "nixpkgs": [ + "ctl", + "db-sync", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_12": { + "inputs": { + "nix": "nix_20", + "nixpkgs": [ + "ctl", + "haskell-nix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_2": { + "inputs": { + "nix": "nix_3", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_3": { + "inputs": { + "nix": "nix_4", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "haskellNix", + "hydra", + "nix", + "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": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_5": { + "inputs": { + "nix": "nix_6", + "nixpkgs": [ + "ctl", + "cardano-node", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "owner": "NixOS", + "repo": "hydra", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "hydra_6": { + "inputs": { + "nix": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nix" + ], + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", + "repo": "hydra", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" + } + }, + "hydra_7": { + "inputs": { + "nix": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "nix" + ], + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", + "repo": "hydra", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" + } + }, + "hydra_8": { + "inputs": { + "nix": [ + "ctl", + "db-sync", + "cardano-world", + "capsules", + "bitte", + "nix" + ], + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "capsules", + "bitte", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", + "repo": "hydra", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "type": "github" + }, + "original": { + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" + } + }, + "hydra_9": { + "inputs": { + "nix": "nix_17", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "cardano-wallet", + "haskellNix", + "hydra", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", + "repo": "hydra", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "type": "github" + }, + "original": { + "id": "hydra", + "type": "indirect" + } + }, + "incl": { + "inputs": { + "nixlib": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "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_2": { + "inputs": { + "nixlib": [ + "ctl", + "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": [ + "ctl", + "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": [ + "ctl", + "cardano-node", + "std", + "lib" + ] + }, + "locked": { + "lastModified": 1669263024, + "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", + "owner": "divnix", + "repo": "incl", + "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "incl", + "type": "github" + } + }, + "inclusive": { + "inputs": { + "stdlib": "stdlib" + }, + "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_10": { + "inputs": { + "stdlib": "stdlib_10" + }, + "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_11": { + "inputs": { + "stdlib": "stdlib_11" + }, + "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_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" + }, + "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_3": { + "inputs": { + "stdlib": "stdlib_3" + }, + "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_4": { + "inputs": { + "stdlib": "stdlib_4" + }, + "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_5": { + "inputs": { + "stdlib": "stdlib_5" + }, + "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_6": { + "inputs": { + "stdlib": "stdlib_6" + }, + "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_7": { + "inputs": { + "stdlib": "stdlib_7" + }, + "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_8": { + "inputs": { + "stdlib": "stdlib_8" + }, + "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_9": { + "inputs": { + "stdlib": "stdlib_9" + }, + "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" + } + }, + "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_13" + }, + "locked": { + "lastModified": 1652212694, + "narHash": "sha256-baAY5wKzccNsm7OCEYuySrkXRmlshokCHQjs4EdYShM=", + "owner": "input-output-hk", + "repo": "bitte-iogo", + "rev": "e465975aa368b2d919e865f71eeed02828e55471", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "bitte-iogo", + "type": "github" + } + }, + "iogo_2": { + "inputs": { + "devshell": "devshell_18", + "inclusive": "inclusive_12", + "nixpkgs": "nixpkgs_80", + "utils": "utils_27" + }, + "locked": { + "lastModified": 1658302707, + "narHash": "sha256-E0FA1CEMQlfAsmtLBRoQE7IY4ItKlBdxZ44YX0tK5Hg=", + "owner": "input-output-hk", + "repo": "bitte-iogo", + "rev": "8751660009202bc95ea3a29e304c393c140a4231", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "bitte-iogo", + "type": "github" + } + }, + "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" + }, + "locked": { + "lastModified": 1696471795, + "narHash": "sha256-aNNvjUtCGXaXSp5M/HSj1SOeLjqLyTRWYbIHqAEeUp0=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "91f16fa8acb58b312f94977715c630d8bf77e33e", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohk-nix_2": { + "inputs": { + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1658222743, + "narHash": "sha256-yFH01psqx30y5Ws4dBElLkxYpIxxqZx4G+jCVhsXpnA=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "9a604d01bd4420ab7f396f14d1947fbe2ce7db8b", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohk-nix_3": { + "inputs": { + "blst": "blst_7", + "nixpkgs": [ + "ctl", + "nixpkgs" + ], + "secp256k1": "secp256k1_7", + "sodium": "sodium_7" + }, + "locked": { + "lastModified": 1721825987, + "narHash": "sha256-PPcma4tjozwXJAWf+YtHUQUulmxwulVlwSQzKItx/n8=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "eb61f2c14e1f610ec59117ad40f8690cddbf80cb", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix": { + "inputs": { + "blst": "blst_3", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "nixpkgs" + ], + "secp256k1": "secp256k1_3", + "sodium": "sodium_3" + }, + "locked": { + "lastModified": 1698999258, + "narHash": "sha256-42D1BMbdyZD+lT+pWUzb5zDQyasNbMJtH/7stuPuPfE=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "73dc2bb45af6f20cfe1d962f1334eed5e84ae764", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_2": { + "inputs": { + "blst": "blst_4", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "nixpkgs" + ], + "secp256k1": "secp256k1_4", + "sodium": "sodium_4" + }, + "locked": { + "lastModified": 1684223806, + "narHash": "sha256-IyLoP+zhuyygLtr83XXsrvKyqqLQ8FHXTiySFf4FJOI=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "86421fdd89b3af43fa716ccd07638f96c6ecd1e4", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_3": { + "inputs": { + "blst": "blst_5", + "nixpkgs": [ + "ctl", + "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", + "nixpkgs": [ + "ctl", + "cardano-node", + "nixpkgs" + ], + "secp256k1": "secp256k1_6", + "sodium": "sodium_6" + }, + "locked": { + "lastModified": 1719237167, + "narHash": "sha256-ifW5Jfwu/iwYs0r7f8AdiWDQK+Pr1gZLz+p5u8OtOgo=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "577f4d5072945a88dda6f5cfe205e6b4829a0423", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_5": { + "inputs": { + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "cardano-wallet", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1653579289, + "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "iohkNix_6": { + "inputs": { + "nixpkgs": [ + "ctl", + "db-sync", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1667394105, + "narHash": "sha256-YhS7zGd6jK/QM/+wWyj0zUBZmE3HOXAL/kpJptGYIWg=", + "owner": "input-output-hk", + "repo": "iohk-nix", + "rev": "7fc7625a9ab2ba137bc70ddbc89a13d3fdb78c8b", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "iohk-nix", + "type": "github" + } + }, + "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" + }, + "original": { + "ref": "hkm/remote-iserv", + "type": "git", + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + } + }, + "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" + }, + "original": { + "ref": "hkm/remote-iserv", + "type": "git", + "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + } + }, + "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, + "narHash": "sha256-7vE3RQycHI1YT9LHJ1/fUaeln2vIpYm6Mmn8FTpYeVo=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "2ed34002247213fc435d0062350b91bab920626e", + "type": "github" + }, + "original": { + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" + } + }, + "iserv-proxy_6": { + "flake": false, + "locked": { + "lastModified": 1717479972, + "narHash": "sha256-7vE3RQycHI1YT9LHJ1/fUaeln2vIpYm6Mmn8FTpYeVo=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "2ed34002247213fc435d0062350b91bab920626e", + "type": "github" + }, + "original": { + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" + } + }, + "lib": { + "locked": { + "lastModified": 1694306727, + "narHash": "sha256-26fkTOJOI65NOTNKFvtcJF9mzzf/kK9swHzfYt1Dl6Q=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "c30b6a84c0b84ec7aecbe74466033facc9ed103f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "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, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "lowdown-src_12": { + "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_13": { + "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_14": { + "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_15": { + "flake": false, + "locked": { + "lastModified": 1598695561, + "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "lowdown-src_16": { + "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_17": { + "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_18": { + "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_19": { + "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_2": { + "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_20": { + "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_3": { + "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_4": { + "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_5": { + "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_6": { + "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_7": { + "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_8": { + "flake": false, + "locked": { + "lastModified": 1598695561, + "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "lowdown-src_9": { + "flake": false, + "locked": { + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "owner": "kristapsdz", + "repo": "lowdown", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "type": "github" + }, + "original": { + "owner": "kristapsdz", + "repo": "lowdown", + "type": "github" + } + }, + "mdbook-kroki-preprocessor": { + "flake": false, + "locked": { + "lastModified": 1661755005, + "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "type": "github" + } + }, + "mdbook-kroki-preprocessor_2": { + "flake": false, + "locked": { + "lastModified": 1655670640, + "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "type": "github" + } + }, + "mdbook-kroki-preprocessor_3": { + "flake": false, + "locked": { + "lastModified": 1655670640, + "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "type": "github" + }, + "original": { + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "type": "github" + } + }, + "n2c": { + "inputs": { + "flake-utils": [ "ctl", - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665039323, + "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_2": { + "inputs": { + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "flake-utils" ], - "old-ghc-nix": "old-ghc-nix_2", - "stackage": "stackage_2" + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, + "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": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1685771919, + "narHash": "sha256-3lVKWrhNXjHJB6QkZ2SJaOs4X/mmYXtY6ovPVpDMOHc=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "95e2220911874064b5d809f8d35f7835184c4ddf", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_4": { + "inputs": { + "flake-utils": "flake-utils_19", + "nixpkgs": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1665039323, + "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "n2c_5": { + "inputs": { + "flake-utils": "flake-utils_26", + "nixpkgs": "nixpkgs_56" }, "locked": { - "lastModified": 1646097976, - "narHash": "sha256-EiyrBqayw67dw8pr1XCVU9tIZ+/jzXCQycW1S9a+KFA=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "f0308ed1df3ce9f10f9da1a7c0c8591921d0b4e5", + "lastModified": 1650568002, + "narHash": "sha256-CciO5C3k/a7sbA+lW4jeiU6WGletujMjWcRzc1513tI=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "2cd391fc65847ea54e3657a491c379854b556262", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "haskell-nix_2": { + "n2c_6": { "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-utils": "flake-utils_27", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_4", - "hackage": [ + "flake-utils": "flake-utils_43", + "nixpkgs": "nixpkgs_91" + }, + "locked": { + "lastModified": 1655533513, + "narHash": "sha256-MAqvv2AZbyNYGJMpV5l9ydN7k66jDErFpaKOvZ1Y7f8=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "2d47dbe633a059d75c7878f554420158712481cb", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, + "nix": { + "inputs": { + "lowdown-src": "lowdown-src", + "nixpkgs": "nixpkgs_6", + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" + } + }, + "nix-cache-proxy": { + "inputs": { + "devshell": "devshell_15", + "inclusive": [ "ctl", "db-sync", "cardano-world", - "hackage" + "bitte-cells", + "cicero", + "inclusive" ], - "hpc-coveralls": "hpc-coveralls_4", - "hydra": "hydra_6", - "nix-tools": "nix-tools_3", "nixpkgs": [ "ctl", "db-sync", "cardano-world", - "haskell-nix", - "nixpkgs-unstable" + "bitte-cells", + "cicero", + "nixpkgs" ], - "nixpkgs-2003": "nixpkgs-2003_4", - "nixpkgs-2105": "nixpkgs-2105_4", - "nixpkgs-2111": "nixpkgs-2111_4", - "nixpkgs-2205": "nixpkgs-2205_2", - "nixpkgs-unstable": "nixpkgs-unstable_6", - "old-ghc-nix": "old-ghc-nix_4", - "stackage": "stackage_4" + "utils": "utils_20" }, "locked": { - "lastModified": 1659439444, - "narHash": "sha256-qUK7OVpM8/piOImpPgzSUvOFHQq19sQpvOSns2nW8es=", + "lastModified": 1644317729, + "narHash": "sha256-R9R1XHv69VvZ/c7lXYs18PHcnEBXS+hDfhjdkZ96lgw=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "ee6a6559e16a603677d7cbef7c4fe18ca801b48e", + "repo": "nix-cache-proxy", + "rev": "378617d6b9865be96f7dfa16e0ce3f329da844ec", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "repo": "nix-cache-proxy", "type": "github" } }, - "haskell-nix_3": { + "nix-inclusive": { "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-compat": "flake-compat_12", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_6", - "ghc98X": "ghc98X", - "ghc99": "ghc99", - "hackage": [ + "stdlib": "stdlib_13" + }, + "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" + } + }, + "nix-nomad": { + "inputs": { + "flake-compat": "flake-compat_8", + "flake-utils": [ "ctl", - "hackage-nix" + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "nix2container", + "flake-utils" ], - "hls-1.10": "hls-1.10_2", - "hls-2.0": "hls-2.0", - "hls-2.2": "hls-2.2", - "hls-2.3": "hls-2.3", - "hls-2.4": "hls-2.4", - "hpc-coveralls": "hpc-coveralls_6", - "hydra": "hydra_8", - "iserv-proxy": "iserv-proxy_2", + "gomod2nix": "gomod2nix", "nixpkgs": [ "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", "nixpkgs" ], - "nixpkgs-2003": "nixpkgs-2003_6", - "nixpkgs-2105": "nixpkgs-2105_6", - "nixpkgs-2111": "nixpkgs-2111_6", - "nixpkgs-2205": "nixpkgs-2205_3", - "nixpkgs-2211": "nixpkgs-2211_2", - "nixpkgs-2305": "nixpkgs-2305", - "nixpkgs-2311": "nixpkgs-2311", - "nixpkgs-unstable": "nixpkgs-unstable_8", - "old-ghc-nix": "old-ghc-nix_6", - "stackage": "stackage_6" + "nixpkgs-lib": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "nixpkgs" + ] }, "locked": { - "lastModified": 1702428573, - "narHash": "sha256-KpY2FsKQs6vUABgQFjUCqaTPVN5dStNjt0Dxjw7CA9g=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "78c22a52a0d80d7e29c12f74df871ebb58a0795d", + "lastModified": 1658277770, + "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", + "owner": "tristanpemble", + "repo": "nix-nomad", + "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", + "owner": "tristanpemble", + "repo": "nix-nomad", "type": "github" } }, - "haskell-nix_4": { + "nix-nomad_2": { "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_33", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_7", - "hackage": "hackage_5", - "hpc-coveralls": "hpc-coveralls_7", - "hydra": "hydra_9", - "nix-tools": "nix-tools_5", + "flake-compat": "flake-compat_9", + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "nix2container", + "flake-utils" + ], + "gomod2nix": "gomod2nix_2", "nixpkgs": [ "ctl", - "kupo-nixos", - "haskell-nix", - "nixpkgs-unstable" + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "nixpkgs" ], - "nixpkgs-2003": "nixpkgs-2003_7", - "nixpkgs-2105": "nixpkgs-2105_7", - "nixpkgs-2111": "nixpkgs-2111_7", - "nixpkgs-unstable": "nixpkgs-unstable_9", - "old-ghc-nix": "old-ghc-nix_7", - "stackage": "stackage_7" + "nixpkgs-lib": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "nixpkgs" + ] }, "locked": { - "lastModified": 1654219238, - "narHash": "sha256-PMS7uSQjYCjsjUfVidTdKcuNtKNu5VPmeNvxruT72go=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "974a61451bb1d41b32090eb51efd7ada026d16d9", + "lastModified": 1658277770, + "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", + "owner": "tristanpemble", + "repo": "nix-nomad", + "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "974a61451bb1d41b32090eb51efd7ada026d16d9", + "owner": "tristanpemble", + "repo": "nix-nomad", "type": "github" } }, - "haskellNix": { + "nix-nomad_3": { "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", - "hackage": [ + "flake-compat": "flake-compat_14", + "flake-utils": [ "ctl", "cardano-node", - "hackageNix" + "cardano-automation", + "tullia", + "nix2container", + "flake-utils" ], - "hls-1.10": "hls-1.10", - "hpc-coveralls": "hpc-coveralls", - "hydra": "hydra", - "iserv-proxy": "iserv-proxy", + "gomod2nix": "gomod2nix_3", "nixpkgs": [ "ctl", "cardano-node", + "cardano-automation", + "tullia", "nixpkgs" ], - "nixpkgs-2003": "nixpkgs-2003", - "nixpkgs-2105": "nixpkgs-2105", - "nixpkgs-2111": "nixpkgs-2111", - "nixpkgs-2205": "nixpkgs-2205", - "nixpkgs-2211": "nixpkgs-2211", - "nixpkgs-unstable": "nixpkgs-unstable", - "old-ghc-nix": "old-ghc-nix", - "stackage": "stackage" + "nixpkgs-lib": [ + "ctl", + "cardano-node", + "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-tools": { + "flake": false, "locked": { - "lastModified": 1685495397, - "narHash": "sha256-BwbWroS1Qm8BiHatG5+iHMHN5U6kqOccewBROUYuMKw=", + "lastModified": 1644395812, + "narHash": "sha256-BVFk/BEsTLq5MMZvdy3ZYHKfaS3dHrsKh4+tb5t5b58=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "d07c42cdb1cf88d0cab27d3090b00cb3899643c9", + "repo": "nix-tools", + "rev": "d847c63b99bbec78bf83be2a61dc9f09b8a9ccc1", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "repo": "nix-tools", "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-utils": "flake-utils_26", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_3", - "hackage": "hackage_2", - "hpc-coveralls": "hpc-coveralls_3", - "hydra": "hydra_5", - "nix-tools": "nix-tools_2", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "cardano-wallet", - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003_3", - "nixpkgs-2105": "nixpkgs-2105_3", - "nixpkgs-2111": "nixpkgs-2111_3", - "nixpkgs-unstable": "nixpkgs-unstable_5", - "old-ghc-nix": "old-ghc-nix_3", - "stackage": "stackage_3" - }, + "nix-tools_2": { + "flake": false, "locked": { - "lastModified": 1655369909, - "narHash": "sha256-Z3d17WvaXY2kWdfsOE6yPKViQ1RBfGi4d7XZgXA/j2I=", + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "5a310b0b3904d9b90239390eb2dfb59e4dcb0d96", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "repo": "nix-tools", "type": "github" } }, - "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-utils": "flake-utils_32", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_5", - "hackage": "hackage_4", - "hpc-coveralls": "hpc-coveralls_5", - "hydra": "hydra_7", - "nix-tools": "nix-tools_4", - "nixpkgs": [ - "ctl", - "db-sync", - "haskellNix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_5", - "nixpkgs-2105": "nixpkgs-2105_5", - "nixpkgs-2111": "nixpkgs-2111_5", - "nixpkgs-unstable": "nixpkgs-unstable_7", - "old-ghc-nix": "old-ghc-nix_5", - "stackage": "stackage_5" + "nix-tools_3": { + "flake": false, + "locked": { + "lastModified": 1658968505, + "narHash": "sha256-UnbQ/Ig/23e9hUdDOBwYHwHgHmQawZ2uazpJ8DLIJgE=", + "owner": "input-output-hk", + "repo": "nix-tools", + "rev": "8a754bdcf20b20e116409c2341cf69065d083053", + "type": "github" }, + "original": { + "owner": "input-output-hk", + "repo": "nix-tools", + "type": "github" + } + }, + "nix-tools_4": { + "flake": false, "locked": { - "lastModified": 1650936156, - "narHash": "sha256-B58b4OCSc6ohRjGEdbQ78r+TK/OZYsBXION90kfQDC4=", + "lastModified": 1649424170, + "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "9a502b8c8aac4d7b8033bc9affb87fd03d4740fc", + "repo": "nix-tools", + "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", "type": "github" }, "original": { "owner": "input-output-hk", - "repo": "haskell.nix", + "repo": "nix-tools", "type": "github" } }, - "hercules-ci-effects": { + "nix2container": { "inputs": { - "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_70" + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_17" }, "locked": { - "lastModified": 1699381651, - "narHash": "sha256-mZlQ54xJs3j5+SJrLhzePPMXzS+Czbx7gNyOnOAQrHA=", - "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "0bd99f5ab7ec7a74c11238bd02bb29e709c14328", + "lastModified": 1671269339, + "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "hercules-ci-effects", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "hls-1.10": { - "flake": false, + "nix2container_2": { + "inputs": { + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_19" + }, "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "lastModified": 1658567952, + "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", "type": "github" }, "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "hls-1.10_2": { - "flake": false, + "nix2container_3": { + "inputs": { + "flake-utils": "flake-utils_10", + "nixpkgs": "nixpkgs_23" + }, "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "lastModified": 1658567952, + "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", "type": "github" }, "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "hls-2.0": { - "flake": false, + "nix2container_4": { + "inputs": { + "flake-utils": "flake-utils_12", + "nixpkgs": "nixpkgs_27" + }, "locked": { - "lastModified": 1687698105, - "narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "783905f211ac63edf982dd1889c671653327e441", + "lastModified": 1671269339, + "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.0.0.1", - "repo": "haskell-language-server", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "hls-2.2": { - "flake": false, + "nix2container_5": { + "inputs": { + "flake-utils": "flake-utils_17", + "nixpkgs": "nixpkgs_32" + }, "locked": { - "lastModified": 1693064058, - "narHash": "sha256-8DGIyz5GjuCFmohY6Fa79hHA/p1iIqubfJUTGQElbNk=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b30f4b6cf5822f3112c35d14a0cba51f3fe23b85", + "lastModified": 1658567952, + "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.2.0.0", - "repo": "haskell-language-server", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "hls-2.3": { - "flake": false, + "nix2container_6": { + "inputs": { + "flake-utils": "flake-utils_20", + "nixpkgs": "nixpkgs_36" + }, "locked": { - "lastModified": 1695910642, - "narHash": "sha256-tR58doOs3DncFehHwCLczJgntyG/zlsSd7DgDgMPOkI=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "458ccdb55c9ea22cd5d13ec3051aaefb295321be", + "lastModified": 1712990762, + "narHash": "sha256-hO9W3w7NcnYeX8u8cleHiSpK2YJo7ecarFTUlbybl7k=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "20aad300c925639d5d6cbe30013c8357ce9f2a2e", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.3.0.0", - "repo": "haskell-language-server", + "owner": "nlewo", + "repo": "nix2container", "type": "github" } }, - "hls-2.4": { - "flake": false, + "nix2container_7": { + "inputs": { + "flake-utils": "flake-utils_45", + "nixpkgs": "nixpkgs_94" + }, "locked": { - "lastModified": 1696939266, - "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "lastModified": 1653427219, + "narHash": "sha256-q6MzrIZq1BBFxYN+UQjW60LpQJXV6RIIUmO8gKRyMqg=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "11a0e14c2468720f42ca8dec3b82862abf96c837", "type": "github" }, "original": { - "owner": "haskell", - "ref": "2.4.0.0", - "repo": "haskell-language-server", + "owner": "nlewo", + "ref": "init-nix-db", + "repo": "nix2container", "type": "github" } }, - "hpc-coveralls": { - "flake": false, - "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "nix_10": { + "inputs": { + "lowdown-src": "lowdown-src_10", + "nixpkgs": "nixpkgs_57", + "nixpkgs-regression": "nixpkgs-regression_9" + }, + "locked": { + "lastModified": 1652510778, + "narHash": "sha256-zldZ4SiwkISFXxrbY/UdwooIZ3Z/I6qKxtpc3zD0T/o=", + "owner": "nixos", + "repo": "nix", + "rev": "65cd26eebbbf80eaf0d74092f09b737606cb4b5a", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "nixos", + "ref": "2.8.1", + "repo": "nix", "type": "github" } }, - "hpc-coveralls_2": { - "flake": false, + "nix_11": { + "inputs": { + "lowdown-src": "lowdown-src_11", + "nixpkgs": "nixpkgs_59", + "nixpkgs-regression": "nixpkgs-regression_10" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1645189081, + "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "owner": "nixos", + "repo": "nix", + "rev": "9bc03adbba5334663901c1136203bc07e4776be9", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "nixos", + "repo": "nix", "type": "github" } }, - "hpc-coveralls_3": { - "flake": false, + "nix_12": { + "inputs": { + "lowdown-src": "lowdown-src_12", + "nixpkgs": "nixpkgs_66", + "nixpkgs-regression": "nixpkgs-regression_11" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1644413094, + "narHash": "sha256-KLGaeSqvhuUFz6DxrB9r3w+lfp9bXIiCT9K1cqg7Ze8=", + "owner": "nixos", + "repo": "nix", + "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "nixos", + "repo": "nix", + "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", "type": "github" } }, - "hpc-coveralls_4": { - "flake": false, + "nix_13": { + "inputs": { + "lowdown-src": "lowdown-src_13", + "nixpkgs": "nixpkgs_67", + "nixpkgs-regression": "nixpkgs-regression_12" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1645437800, + "narHash": "sha256-MAMIKi3sIQ0b3jzYyOb5VY29GRgv7JXl1VXoUM9xUZw=", + "owner": "NixOS", + "repo": "nix", + "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "NixOS", + "repo": "nix", + "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", "type": "github" } }, - "hpc-coveralls_5": { - "flake": false, + "nix_14": { + "inputs": { + "lowdown-src": "lowdown-src_14", + "nixpkgs": "nixpkgs_72", + "nixpkgs-regression": "nixpkgs-regression_13" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1646164353, + "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", + "owner": "kreisys", + "repo": "nix", + "rev": "45677cae8d474270ecd797eb40eb1f8836981604", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "kreisys", + "ref": "goodnix-maybe-dont-functor", + "repo": "nix", "type": "github" } }, - "hpc-coveralls_6": { - "flake": false, + "nix_15": { + "inputs": { + "lowdown-src": "lowdown-src_15", + "nixpkgs": "nixpkgs_74" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1604400356, + "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "owner": "NixOS", + "repo": "nix", + "rev": "cf82e14712b3be881b7c880468cd5486e8934638", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "NixOS", + "repo": "nix", "type": "github" } }, - "hpc-coveralls_7": { - "flake": false, + "nix_16": { + "inputs": { + "lowdown-src": "lowdown-src_16", + "nixpkgs": "nixpkgs_76", + "nixpkgs-regression": "nixpkgs-regression_14" + }, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1645189081, + "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "owner": "nixos", + "repo": "nix", + "rev": "9bc03adbba5334663901c1136203bc07e4776be9", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "nixos", + "repo": "nix", "type": "github" } }, - "hydra": { + "nix_17": { "inputs": { - "nix": "nix", - "nixpkgs": [ - "ctl", - "cardano-node", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_17", + "nixpkgs": "nixpkgs_88", + "nixpkgs-regression": "nixpkgs-regression_15" }, "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", "owner": "NixOS", - "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" } }, - "hydra_2": { + "nix_18": { "inputs": { - "nix": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "nix" - ], - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_18", + "nixpkgs": "nixpkgs_90", + "nixpkgs-regression": "nixpkgs-regression_16" }, "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", - "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", "type": "github" } }, - "hydra_3": { + "nix_19": { "inputs": { - "nix": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "nix" - ], - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_19", + "nixpkgs": "nixpkgs_97", + "nixpkgs-regression": "nixpkgs-regression_17" }, "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", - "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "lastModified": 1643066034, + "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "owner": "NixOS", + "repo": "nix", + "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", - "type": "github" - } - }, - "hydra_4": { - "inputs": { - "nix": [ - "ctl", - "db-sync", - "cardano-world", - "capsules", - "bitte", - "nix" - ], - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "capsules", - "bitte", - "nixpkgs" - ] + "owner": "NixOS", + "ref": "2.6.0", + "repo": "nix", + "type": "github" + } + }, + "nix_2": { + "inputs": { + "flake-compat": "flake-compat_3", + "lowdown-src": "lowdown-src_2", + "nixpkgs": "nixpkgs_10", + "nixpkgs-regression": "nixpkgs-regression_2" }, "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", - "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "lastModified": 1693573010, + "narHash": "sha256-HBm8mR2skhPtbJ7p+ByrOZjs7SfsfZPwy75MwI1EUmk=", + "owner": "nixos", + "repo": "nix", + "rev": "5568ca5ff130a8a0bc3db5878432eb527c74dd60", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", + "owner": "nixos", + "ref": "2.17-maintenance", + "repo": "nix", "type": "github" } }, - "hydra_5": { + "nix_20": { "inputs": { - "nix": "nix_12", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "cardano-wallet", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_20", + "nixpkgs": "nixpkgs_98", + "nixpkgs-regression": "nixpkgs-regression_18" }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" } }, - "hydra_6": { + "nix_3": { "inputs": { - "nix": "nix_13", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_3", + "nixpkgs": "nixpkgs_14", + "nixpkgs-regression": "nixpkgs-regression_3" }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" } }, - "hydra_7": { + "nix_4": { "inputs": { - "nix": "nix_14", - "nixpkgs": [ - "ctl", - "db-sync", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_4", + "nixpkgs": "nixpkgs_16", + "nixpkgs-regression": "nixpkgs-regression_4" }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" } }, - "hydra_8": { + "nix_5": { "inputs": { - "nix": "nix_15", - "nixpkgs": [ - "ctl", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_5", + "nixpkgs": "nixpkgs_26", + "nixpkgs-regression": "nixpkgs-regression_5" }, "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", "owner": "NixOS", - "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" } }, - "hydra_9": { + "nix_6": { "inputs": { - "nix": "nix_16", - "nixpkgs": [ - "ctl", - "kupo-nixos", - "haskell-nix", - "hydra", - "nix", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_6", + "nixpkgs": "nixpkgs_35", + "nixpkgs-regression": "nixpkgs-regression_6" }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", "owner": "NixOS", - "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "repo": "nix", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "NixOS", + "ref": "2.11.0", + "repo": "nix", + "type": "github" } }, - "incl": { + "nix_7": { "inputs": { - "nixlib": [ - "ctl", - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] + "lowdown-src": "lowdown-src_7", + "nixpkgs": "nixpkgs_43", + "nixpkgs-regression": "nixpkgs-regression_7" }, "locked": { - "lastModified": 1669263024, - "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", - "owner": "divnix", - "repo": "incl", - "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", + "lastModified": 1646164353, + "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", + "owner": "kreisys", + "repo": "nix", + "rev": "45677cae8d474270ecd797eb40eb1f8836981604", "type": "github" }, "original": { - "owner": "divnix", - "repo": "incl", + "owner": "kreisys", + "ref": "goodnix-maybe-dont-functor", + "repo": "nix", "type": "github" } }, - "inclusive": { + "nix_8": { "inputs": { - "stdlib": "stdlib" + "lowdown-src": "lowdown-src_8", + "nixpkgs": "nixpkgs_45" }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1604400356, + "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "owner": "NixOS", + "repo": "nix", + "rev": "cf82e14712b3be881b7c880468cd5486e8934638", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "NixOS", + "repo": "nix", "type": "github" } }, - "inclusive_10": { + "nix_9": { "inputs": { - "stdlib": "stdlib_10" + "lowdown-src": "lowdown-src_9", + "nixpkgs": "nixpkgs_47", + "nixpkgs-regression": "nixpkgs-regression_8" }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1645189081, + "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "owner": "nixos", + "repo": "nix", + "rev": "9bc03adbba5334663901c1136203bc07e4776be9", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nixos", + "repo": "nix", "type": "github" } }, - "inclusive_11": { + "nixago": { "inputs": { - "stdlib": "stdlib_11" + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "flake-utils" + ], + "nixago-exts": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "blank" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1661824785, + "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", + "owner": "nix-community", + "repo": "nixago", + "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago", "type": "github" } }, - "inclusive_2": { - "inputs": { - "stdlib": "stdlib_2" - }, + "nixago-exts": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago-extensions", "type": "github" } }, - "inclusive_3": { - "inputs": { - "stdlib": "stdlib_3" - }, + "nixago-exts_2": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1625557891, + "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", + "owner": "divnix", + "repo": "blank", + "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago-extensions", "type": "github" } }, - "inclusive_4": { + "nixago_2": { "inputs": { - "stdlib": "stdlib_4" + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "flake-utils" + ], + "nixago-exts": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1676075813, + "narHash": "sha256-X/aIT8Qc8UCqnxJvaZykx3CJ0ZnDFvO+dqp/7fglZWo=", + "owner": "nix-community", + "repo": "nixago", + "rev": "9cab4dde31ec2f2c05d702ea8648ce580664e906", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago", "type": "github" } }, - "inclusive_5": { + "nixago_3": { "inputs": { - "stdlib": "stdlib_5" + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "flake-utils" + ], + "nixago-exts": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "blank" + ], + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1683210100, + "narHash": "sha256-bhGDOlkWtlhVECpoOog4fWiFJmLCpVEg09a40aTjCbw=", + "owner": "nix-community", + "repo": "nixago", + "rev": "1da60ad9412135f9ed7a004669fdcf3d378ec630", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago", "type": "github" } }, - "inclusive_6": { + "nixago_4": { "inputs": { - "stdlib": "stdlib_6" + "flake-utils": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "flake-utils" + ], + "nixago-exts": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "nixpkgs": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1661824785, + "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", + "owner": "nix-community", + "repo": "nixago", + "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago", "type": "github" } }, - "inclusive_7": { + "nixago_5": { "inputs": { - "stdlib": "stdlib_7" + "flake-utils": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "std", + "flake-utils" + ], + "nixago-exts": "nixago-exts", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "bitte", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1659153038, + "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", + "owner": "nix-community", + "repo": "nixago", + "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago", "type": "github" } }, - "inclusive_8": { + "nixago_6": { "inputs": { - "stdlib": "stdlib_8" + "flake-utils": [ + "ctl", + "db-sync", + "cardano-world", + "std", + "flake-utils" + ], + "nixago-exts": "nixago-exts_2", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ] }, "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1659153038, + "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", + "owner": "nix-community", + "repo": "nixago", + "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixago", "type": "github" } }, - "inclusive_9": { - "inputs": { - "stdlib": "stdlib_9" - }, + "nixlib": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1652576347, + "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "bdf553800c9c34ed00641785b02038f67f44d671", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "nix-community", + "repo": "nixpkgs.lib", "type": "github" } }, - "iogo": { - "inputs": { - "devshell": "devshell_4", - "inclusive": "inclusive_3", - "nixpkgs": "nixpkgs_22", - "utils": "utils_8" - }, + "nixlib_2": { "locked": { - "lastModified": 1652212694, - "narHash": "sha256-baAY5wKzccNsm7OCEYuySrkXRmlshokCHQjs4EdYShM=", - "owner": "input-output-hk", - "repo": "bitte-iogo", - "rev": "e465975aa368b2d919e865f71eeed02828e55471", + "lastModified": 1644107864, + "narHash": "sha256-Wrbt6Gs+hjXD3HUICPBJHKnHEUqiyx8rzHCgvqC1Bok=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "58eabcf65e7dba189eb0013f86831c159e3b2be6", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "bitte-iogo", + "owner": "nix-community", + "repo": "nixpkgs.lib", "type": "github" } }, - "iogo_2": { - "inputs": { - "devshell": "devshell_14", - "inclusive": "inclusive_11", - "nixpkgs": "nixpkgs_51", - "utils": "utils_22" - }, + "nixlib_3": { "locked": { - "lastModified": 1658302707, - "narHash": "sha256-E0FA1CEMQlfAsmtLBRoQE7IY4ItKlBdxZ44YX0tK5Hg=", - "owner": "input-output-hk", - "repo": "bitte-iogo", - "rev": "8751660009202bc95ea3a29e304c393c140a4231", + "lastModified": 1656809537, + "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "40e271f69106323734b55e2ba74f13bebde324c0", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "bitte-iogo", + "owner": "nix-community", + "repo": "nixpkgs.lib", "type": "github" } }, - "iohk-nix": { - "inputs": { - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "nixpkgs" - ] - }, + "nixpkgs": { "locked": { - "lastModified": 1658222743, - "narHash": "sha256-yFH01psqx30y5Ws4dBElLkxYpIxxqZx4G+jCVhsXpnA=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "9a604d01bd4420ab7f396f14d1947fbe2ce7db8b", + "lastModified": 1687420147, + "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", "type": "github" } }, - "iohk-nix_2": { - "inputs": { - "blst": "blst_2", - "nixpkgs": [ - "ctl", - "nixpkgs" - ], - "secp256k1": "secp256k1_2", - "sodium": "sodium_2" - }, + "nixpkgs-2003": { "locked": { - "lastModified": 1702362799, - "narHash": "sha256-cU8cZXNuo5GRwrSvWqdaqoW5tJ2HWwDEOvWwIVPDPmo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "b426fb9e0b109a9d1dd2e1476f9e0bd8bb715142", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "iohk-nix_3": { - "inputs": { - "nixpkgs": [ - "ctl", - "kupo-nixos", - "haskell-nix", - "nixpkgs" - ] - }, + "nixpkgs-2003_10": { "locked": { - "lastModified": 1653579289, - "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "iohkNix": { - "inputs": { - "blst": "blst", - "nixpkgs": [ - "ctl", - "cardano-node", - "nixpkgs" - ], - "secp256k1": "secp256k1", - "sodium": "sodium" - }, + "nixpkgs-2003_2": { "locked": { - "lastModified": 1684223806, - "narHash": "sha256-IyLoP+zhuyygLtr83XXsrvKyqqLQ8FHXTiySFf4FJOI=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "86421fdd89b3af43fa716ccd07638f96c6ecd1e4", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "iohkNix_2": { - "inputs": { - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "cardano-wallet", - "nixpkgs" - ] - }, + "nixpkgs-2003_3": { "locked": { - "lastModified": 1653579289, - "narHash": "sha256-wveDdPsgB/3nAGAdFaxrcgLEpdi0aJ5kEVNtI+YqVfo=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "edb2d2df2ebe42bbdf03a0711115cf6213c9d366", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "iohkNix_3": { - "inputs": { - "nixpkgs": [ - "ctl", - "db-sync", - "nixpkgs" - ] - }, + "nixpkgs-2003_4": { "locked": { - "lastModified": 1667394105, - "narHash": "sha256-YhS7zGd6jK/QM/+wWyj0zUBZmE3HOXAL/kpJptGYIWg=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "7fc7625a9ab2ba137bc70ddbc89a13d3fdb78c8b", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "iserv-proxy": { - "flake": false, + "nixpkgs-2003_5": { "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" + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" }, "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" } }, - "iserv-proxy_2": { - "flake": false, + "nixpkgs-2003_6": { "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": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "type": "github" }, "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", + "type": "github" } }, - "kupo": { - "flake": false, + "nixpkgs-2003_7": { "locked": { - "lastModified": 1668678914, - "narHash": "sha256-XsbAFyUPmevGuoShEFlOVHt/7fFIpyCQuhulIrNzv80=", - "owner": "CardanoSolutions", - "repo": "kupo", - "rev": "c9bc18d99f9e8af1840a265907db82b180d5a4d8", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "CardanoSolutions", - "ref": "v2.2.0", - "repo": "kupo", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "kupo-nixos": { - "inputs": { - "haskell-nix": "haskell-nix_4", - "iohk-nix": "iohk-nix_3", - "kupo": [ - "ctl", - "kupo" - ], - "nixpkgs": [ - "ctl", - "kupo-nixos", - "haskell-nix", - "nixpkgs" - ] + "nixpkgs-2003_8": { + "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_9": { "locked": { - "lastModified": 1672905539, - "narHash": "sha256-B4vryG94L7WWn/tuIQdtg9eZHAH+FaFzv35Mancd2l8=", - "owner": "mlabs-haskell", - "repo": "kupo-nixos", - "rev": "6f89cbcc359893a2aea14dd380f9a45e04c6aa67", + "lastModified": 1620055814, + "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "repo": "kupo-nixos", - "rev": "6f89cbcc359893a2aea14dd380f9a45e04c6aa67", + "owner": "NixOS", + "ref": "nixpkgs-20.03-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src": { - "flake": false, + "nixpkgs-2105": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_10": { - "flake": false, + "nixpkgs-2105_10": { "locked": { - "lastModified": 1598695561, - "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_11": { - "flake": false, + "nixpkgs-2105_2": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_12": { - "flake": false, + "nixpkgs-2105_3": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_13": { - "flake": false, + "nixpkgs-2105_4": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_14": { - "flake": false, + "nixpkgs-2105_5": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_15": { - "flake": false, + "nixpkgs-2105_6": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1642244250, + "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_16": { - "flake": false, + "nixpkgs-2105_7": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1645296114, + "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_2": { - "flake": false, + "nixpkgs-2105_8": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1655034179, + "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "046ee4af7a9f016a364f8f78eeaa356ba524ac31", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_3": { - "flake": false, + "nixpkgs-2105_9": { "locked": { - "lastModified": 1598695561, - "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "lastModified": 1645296114, + "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_4": { - "flake": false, + "nixpkgs-2111": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_5": { - "flake": false, + "nixpkgs-2111_10": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_6": { - "flake": false, + "nixpkgs-2111_2": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_7": { - "flake": false, + "nixpkgs-2111_3": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_8": { - "flake": false, + "nixpkgs-2111_4": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "lowdown-src_9": { - "flake": false, + "nixpkgs-2111_5": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "mdbook-kroki-preprocessor": { - "flake": false, + "nixpkgs-2111_6": { "locked": { - "lastModified": 1655670640, - "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "lastModified": 1644510859, + "narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3", "type": "github" }, "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "mdbook-kroki-preprocessor_2": { - "flake": false, + "nixpkgs-2111_7": { "locked": { - "lastModified": 1655670640, - "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", - "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "lastModified": 1648744337, + "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", "type": "github" }, "original": { - "owner": "JoelCourtney", - "repo": "mdbook-kroki-preprocessor", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "n2c": { - "inputs": { - "flake-utils": [ - "ctl", - "cardano-node", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "ctl", - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] - }, + "nixpkgs-2111_8": { "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "lastModified": 1656782578, + "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "n2c_2": { - "inputs": { - "flake-utils": "flake-utils_11", - "nixpkgs": "nixpkgs_27" - }, + "nixpkgs-2111_9": { "locked": { - "lastModified": 1650568002, - "narHash": "sha256-CciO5C3k/a7sbA+lW4jeiU6WGletujMjWcRzc1513tI=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "2cd391fc65847ea54e3657a491c379854b556262", + "lastModified": 1648744337, + "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "NixOS", + "ref": "nixpkgs-21.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "n2c_3": { - "inputs": { - "flake-utils": "flake-utils_28", - "nixpkgs": "nixpkgs_62" - }, + "nixpkgs-2205": { "locked": { - "lastModified": 1655533513, - "narHash": "sha256-MAqvv2AZbyNYGJMpV5l9ydN7k66jDErFpaKOvZ1Y7f8=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "2d47dbe633a059d75c7878f554420158712481cb", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix": { - "inputs": { - "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs_3", - "nixpkgs-regression": "nixpkgs-regression" - }, + "nixpkgs-2205_2": { "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", "owner": "NixOS", - "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.11.0", - "repo": "nix", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-cache-proxy": { - "inputs": { - "devshell": "devshell_11", - "inclusive": [ - "ctl", - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "inclusive" - ], - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte-cells", - "cicero", - "nixpkgs" - ], - "utils": "utils_15" - }, + "nixpkgs-2205_3": { "locked": { - "lastModified": 1644317729, - "narHash": "sha256-R9R1XHv69VvZ/c7lXYs18PHcnEBXS+hDfhjdkZ96lgw=", - "owner": "input-output-hk", - "repo": "nix-cache-proxy", - "rev": "378617d6b9865be96f7dfa16e0ce3f329da844ec", + "lastModified": 1682600000, + "narHash": "sha256-ha4BehR1dh8EnXSoE1m/wyyYVvHI9txjW4w5/oxsW5Y=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-cache-proxy", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-inclusive": { - "inputs": { - "stdlib": "stdlib_12" - }, + "nixpkgs-2205_4": { "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-nomad": { - "inputs": { - "flake-compat": "flake-compat_3", - "flake-utils": [ - "ctl", - "cardano-node", - "tullia", - "nix2container", - "flake-utils" - ], - "gomod2nix": "gomod2nix", - "nixpkgs": [ - "ctl", - "cardano-node", - "tullia", - "nixpkgs" - ], - "nixpkgs-lib": [ - "ctl", - "cardano-node", - "tullia", - "nixpkgs" - ] - }, + "nixpkgs-2205_5": { "locked": { - "lastModified": 1658277770, - "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", - "owner": "tristanpemble", - "repo": "nix-nomad", - "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { - "owner": "tristanpemble", - "repo": "nix-nomad", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-tools": { - "flake": false, + "nixpkgs-2205_6": { "locked": { - "lastModified": 1644395812, - "narHash": "sha256-BVFk/BEsTLq5MMZvdy3ZYHKfaS3dHrsKh4+tb5t5b58=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "d847c63b99bbec78bf83be2a61dc9f09b8a9ccc1", + "lastModified": 1657876628, + "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "549d82bdd40f760a438c3c3497c1c61160f3de55", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-tools_2": { - "flake": false, + "nixpkgs-2205_7": { "locked": { - "lastModified": 1649424170, - "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "lastModified": 1685573264, + "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "380be19fbd2d9079f677978361792cb25e8a3635", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "NixOS", + "ref": "nixpkgs-22.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-tools_3": { - "flake": false, + "nixpkgs-2211": { "locked": { - "lastModified": 1658968505, - "narHash": "sha256-UnbQ/Ig/23e9hUdDOBwYHwHgHmQawZ2uazpJ8DLIJgE=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "8a754bdcf20b20e116409c2341cf69065d083053", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-tools_4": { - "flake": false, + "nixpkgs-2211_2": { "locked": { - "lastModified": 1649424170, - "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix-tools_5": { - "flake": false, + "nixpkgs-2211_3": { "locked": { - "lastModified": 1649424170, - "narHash": "sha256-XgKXWispvv5RCvZzPb+p7e6Hy3LMuRjafKMl7kXzxGw=", - "owner": "input-output-hk", - "repo": "nix-tools", - "rev": "e109c94016e3b6e0db7ed413c793e2d4bdb24aa7", + "lastModified": 1682682915, + "narHash": "sha256-haR0u/j/nUvlMloYlaOYq1FMXTvkNHw+wGxc+0qXisM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "09f1b33fcc0f59263137e23e935c1bb03ec920e4", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "nix-tools", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix2container": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_4" - }, + "nixpkgs-2211_4": { "locked": { - "lastModified": 1671269339, - "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix2container_2": { - "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_6" - }, + "nixpkgs-2211_5": { "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix2container_3": { - "inputs": { - "flake-utils": "flake-utils_30", - "nixpkgs": "nixpkgs_65" - }, + "nixpkgs-2211_6": { "locked": { - "lastModified": 1653427219, - "narHash": "sha256-q6MzrIZq1BBFxYN+UQjW60LpQJXV6RIIUmO8gKRyMqg=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "11a0e14c2468720f42ca8dec3b82862abf96c837", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { - "owner": "nlewo", - "ref": "init-nix-db", - "repo": "nix2container", + "owner": "NixOS", + "ref": "nixpkgs-22.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_10": { - "inputs": { - "lowdown-src": "lowdown-src_10", - "nixpkgs": "nixpkgs_45" - }, + "nixpkgs-2305": { "locked": { - "lastModified": 1604400356, - "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "lastModified": 1690680713, + "narHash": "sha256-NXCWA8N+GfSQyoN7ZNiOgq/nDJKOp5/BHEpiZP8sUZw=", "owner": "NixOS", - "repo": "nix", - "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "repo": "nixpkgs", + "rev": "b81af66deb21f73a70c67e5ea189568af53b1e8c", "type": "github" }, "original": { "owner": "NixOS", - "repo": "nix", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_11": { - "inputs": { - "lowdown-src": "lowdown-src_11", - "nixpkgs": "nixpkgs_47", - "nixpkgs-regression": "nixpkgs-regression_9" - }, + "nixpkgs-2305_2": { "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", - "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "lastModified": 1695416179, + "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", "type": "github" }, "original": { - "owner": "nixos", - "repo": "nix", + "owner": "NixOS", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_12": { - "inputs": { - "lowdown-src": "lowdown-src_12", - "nixpkgs": "nixpkgs_59", - "nixpkgs-regression": "nixpkgs-regression_10" - }, + "nixpkgs-2305_3": { "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "lastModified": 1695416179, + "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_13": { - "inputs": { - "lowdown-src": "lowdown-src_13", - "nixpkgs": "nixpkgs_61", - "nixpkgs-regression": "nixpkgs-regression_11" - }, + "nixpkgs-2305_4": { "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "lastModified": 1701362232, + "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_14": { - "inputs": { - "lowdown-src": "lowdown-src_14", - "nixpkgs": "nixpkgs_68", - "nixpkgs-regression": "nixpkgs-regression_12" - }, + "nixpkgs-2305_5": { "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "lastModified": 1705033721, + "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-23.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_15": { - "inputs": { - "lowdown-src": "lowdown-src_15", - "nixpkgs": "nixpkgs_69", - "nixpkgs-regression": "nixpkgs-regression_13" - }, + "nixpkgs-2311": { "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "lastModified": 1701386440, + "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", "owner": "NixOS", - "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "repo": "nixpkgs", + "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.11.0", - "repo": "nix", + "ref": "nixpkgs-23.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_16": { - "inputs": { - "lowdown-src": "lowdown-src_16", - "nixpkgs": "nixpkgs_71", - "nixpkgs-regression": "nixpkgs-regression_14" - }, + "nixpkgs-2311_2": { "locked": { - "lastModified": 1643066034, - "narHash": "sha256-xEPeMcNJVOeZtoN+d+aRwolpW8mFSEQx76HTRdlhPhg=", + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", "owner": "NixOS", - "repo": "nix", - "rev": "a1cd7e58606a41fcf62bf8637804cf8306f17f62", + "repo": "nixpkgs", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.6.0", - "repo": "nix", + "ref": "nixpkgs-23.11-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_2": { - "inputs": { - "lowdown-src": "lowdown-src_2", - "nixpkgs": "nixpkgs_14", - "nixpkgs-regression": "nixpkgs-regression_2" - }, + "nixpkgs-2405": { "locked": { - "lastModified": 1646164353, - "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", - "owner": "kreisys", - "repo": "nix", - "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "lastModified": 1720122915, + "narHash": "sha256-Nby8WWxj0elBu1xuRaUcRjPi/rU3xVbkAt2kj4QwX2U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "835cf2d3f37989c5db6585a28de967a667a75fb1", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "goodnix-maybe-dont-functor", - "repo": "nix", + "owner": "NixOS", + "ref": "nixpkgs-24.05-darwin", + "repo": "nixpkgs", "type": "github" } }, - "nix_3": { - "inputs": { - "lowdown-src": "lowdown-src_3", - "nixpkgs": "nixpkgs_16" - }, + "nixpkgs-arion": { "locked": { - "lastModified": 1604400356, - "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", + "lastModified": 1721923017, + "narHash": "sha256-Mwbxpq0WTPL9sV2gMgZwnNvjlUmt5Z+EF4KWYAsQWB4=", "owner": "NixOS", - "repo": "nix", - "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "repo": "nixpkgs", + "rev": "059d72964ac2eb17a272efef5f96afaa147221f4", "type": "github" }, "original": { "owner": "NixOS", - "repo": "nix", + "repo": "nixpkgs", "type": "github" } }, - "nix_4": { - "inputs": { - "lowdown-src": "lowdown-src_4", - "nixpkgs": "nixpkgs_18", - "nixpkgs-regression": "nixpkgs-regression_3" - }, + "nixpkgs-docker": { "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "lastModified": 1652739558, + "narHash": "sha256-znGkjGugajqF/sFS+H4+ENmGTaVPFE0uu1JjQZJLEaQ=", "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "repo": "nixpkgs", + "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", "type": "github" }, "original": { "owner": "nixos", - "repo": "nix", + "repo": "nixpkgs", + "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", "type": "github" } }, - "nix_5": { - "inputs": { - "lowdown-src": "lowdown-src_5", - "nixpkgs": "nixpkgs_28", - "nixpkgs-regression": "nixpkgs-regression_4" - }, + "nixpkgs-lib": { "locked": { - "lastModified": 1652510778, - "narHash": "sha256-zldZ4SiwkISFXxrbY/UdwooIZ3Z/I6qKxtpc3zD0T/o=", - "owner": "nixos", - "repo": "nix", - "rev": "65cd26eebbbf80eaf0d74092f09b737606cb4b5a", + "dir": "lib", + "lastModified": 1671359686, + "narHash": "sha256-3MpC6yZo+Xn9cPordGz2/ii6IJpP2n8LE8e/ebUXLrs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "04f574a1c0fde90b51bf68198e2297ca4e7cccf4", "type": "github" }, "original": { - "owner": "nixos", - "ref": "2.8.1", - "repo": "nix", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_6": { - "inputs": { - "lowdown-src": "lowdown-src_6", - "nixpkgs": "nixpkgs_30", - "nixpkgs-regression": "nixpkgs-regression_5" - }, + "nixpkgs-lib_2": { "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", - "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "dir": "lib", + "lastModified": 1682879489, + "narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0", "type": "github" }, "original": { - "owner": "nixos", - "repo": "nix", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_7": { - "inputs": { - "lowdown-src": "lowdown-src_7", - "nixpkgs": "nixpkgs_37", - "nixpkgs-regression": "nixpkgs-regression_6" - }, + "nixpkgs-lib_3": { "locked": { - "lastModified": 1644413094, - "narHash": "sha256-KLGaeSqvhuUFz6DxrB9r3w+lfp9bXIiCT9K1cqg7Ze8=", - "owner": "nixos", - "repo": "nix", - "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", + "dir": "lib", + "lastModified": 1690881714, + "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9e1960bc196baf6881340d53dccb203a951745a2", "type": "github" }, "original": { - "owner": "nixos", - "repo": "nix", - "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_8": { - "inputs": { - "lowdown-src": "lowdown-src_8", - "nixpkgs": "nixpkgs_38", - "nixpkgs-regression": "nixpkgs-regression_7" - }, + "nixpkgs-lib_4": { "locked": { - "lastModified": 1645437800, - "narHash": "sha256-MAMIKi3sIQ0b3jzYyOb5VY29GRgv7JXl1VXoUM9xUZw=", + "dir": "lib", + "lastModified": 1690881714, + "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=", "owner": "NixOS", - "repo": "nix", - "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", + "repo": "nixpkgs", + "rev": "9e1960bc196baf6881340d53dccb203a951745a2", "type": "github" }, "original": { + "dir": "lib", "owner": "NixOS", - "repo": "nix", - "rev": "f22b9e72f51f97f8f2d334748d3e97123940a146", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nix_9": { - "inputs": { - "lowdown-src": "lowdown-src_9", - "nixpkgs": "nixpkgs_43", - "nixpkgs-regression": "nixpkgs-regression_8" - }, + "nixpkgs-lib_5": { "locked": { - "lastModified": 1646164353, - "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", - "owner": "kreisys", - "repo": "nix", - "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "dir": "lib", + "lastModified": 1696019113, + "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "goodnix-maybe-dont-functor", - "repo": "nix", + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nixago": { - "inputs": { - "flake-utils": [ - "ctl", - "cardano-node", - "tullia", - "std", - "flake-utils" - ], - "nixago-exts": [ - "ctl", - "cardano-node", - "tullia", - "std", - "blank" - ], - "nixpkgs": [ - "ctl", - "cardano-node", - "tullia", - "std", - "nixpkgs" - ] - }, + "nixpkgs-regression": { "locked": { - "lastModified": 1661824785, - "narHash": "sha256-/PnwdWoO/JugJZHtDUioQp3uRiWeXHUdgvoyNbXesz8=", - "owner": "nix-community", - "repo": "nixago", - "rev": "8c1f9e5f1578d4b2ea989f618588d62a335083c3", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixago-exts": { + "nixpkgs-regression_10": { "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago-extensions", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago-exts_2": { + "nixpkgs-regression_11": { "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago-extensions", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago_2": { - "inputs": { - "flake-utils": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "std", - "flake-utils" - ], - "nixago-exts": "nixago-exts", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ] - }, + "nixpkgs-regression_12": { "locked": { - "lastModified": 1659153038, - "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", - "owner": "nix-community", - "repo": "nixago", - "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixago_3": { - "inputs": { - "flake-utils": [ - "ctl", - "db-sync", - "cardano-world", - "std", - "flake-utils" - ], - "nixago-exts": "nixago-exts_2", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "std", - "nixpkgs" - ] + "nixpkgs-regression_13": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" }, + "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" + } + }, + "nixpkgs-regression_14": { "locked": { - "lastModified": 1659153038, - "narHash": "sha256-g4npRU8YBR7CAqMF0SyXtkHnoY9q+NcxvZwcc6UvLBc=", - "owner": "nix-community", - "repo": "nixago", - "rev": "608abdd0fe6729d1f7244e03f1a7f8a5d6408898", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixlib": { + "nixpkgs-regression_15": { "locked": { - "lastModified": 1652576347, - "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "bdf553800c9c34ed00641785b02038f67f44d671", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixlib_2": { + "nixpkgs-regression_16": { "locked": { - "lastModified": 1644107864, - "narHash": "sha256-Wrbt6Gs+hjXD3HUICPBJHKnHEUqiyx8rzHCgvqC1Bok=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "58eabcf65e7dba189eb0013f86831c159e3b2be6", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixlib_3": { + "nixpkgs-regression_17": { "locked": { - "lastModified": 1656809537, - "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "40e271f69106323734b55e2ba74f13bebde324c0", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixpkgs": { + "nixpkgs-regression_18": { "locked": { - "lastModified": 1687420147, - "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-23.05", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003": { + "nixpkgs-regression_2": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_2": { + "nixpkgs-regression_3": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_3": { + "nixpkgs-regression_4": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_4": { + "nixpkgs-regression_5": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_5": { + "nixpkgs-regression_6": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-2003_6": { + "nixpkgs-regression_7": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixpkgs-2003_7": { + "nixpkgs-regression_8": { "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" }, "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" + } + }, + "nixpkgs-regression_9": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" + }, + "original": { + "id": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "indirect" } }, - "nixpkgs-2105": { + "nixpkgs-stable": { "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "lastModified": 1690066826, + "narHash": "sha256-6L2qb+Zc0BFkh72OS9uuX637gniOjzU6qCDBpjB2LGY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", + "rev": "ce45b591975d070044ca24e3003c830d26fea1c8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "release-23.05", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_2": { + "nixpkgs-unstable": { "locked": { - "lastModified": 1642244250, - "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=", + "lastModified": 1690720142, + "narHash": "sha256-GywuiZjBKfFkntQwpNQfL+Ksa2iGjPprBGL0/psgRZM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00", + "rev": "3acb5c4264c490e7714d503c7166a3fde0c51324", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_3": { + "nixpkgs-unstable_10": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_4": { + "nixpkgs-unstable_11": { "locked": { - "lastModified": 1655034179, - "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=", + "lastModified": 1657888067, + "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "046ee4af7a9f016a364f8f78eeaa356ba524ac31", + "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_5": { + "nixpkgs-unstable_12": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_6": { + "nixpkgs-unstable_13": { "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", + "lastModified": 1720181791, + "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", + "rev": "4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2105_7": { + "nixpkgs-unstable_2": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", - "owner": "NixOS", + "lastModified": 1696577711, + "narHash": "sha256-94VRjvClIKDym1QRqPkX5LTQoAwZ1E6QE/3dWtOXSIQ=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "a2eb207f45e4a14a1e3019d9e3863d1e208e2295", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111": { + "nixpkgs-unstable_3": { "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "lastModified": 1695318763, + "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_2": { + "nixpkgs-unstable_4": { "locked": { - "lastModified": 1644510859, - "narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=", + "lastModified": 1682656005, + "narHash": "sha256-fYplYo7so1O+rSQ2/aS+SbTPwLTeoUXk4ekKNtSl4P8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0d1d5d7e3679fec9d07f2eb804d9f9fdb98378d3", + "rev": "6806b63e824f84b0f0e60b6d660d4ae753de0477", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_3": { - "locked": { - "lastModified": 1648744337, - "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", + "nixpkgs-unstable_5": { + "locked": { + "lastModified": 1695318763, + "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_4": { + "nixpkgs-unstable_6": { "locked": { - "lastModified": 1656782578, - "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=", + "lastModified": 1694822471, + "narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", "repo": "nixpkgs", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" } }, - "nixpkgs-2111_5": { + "nixpkgs-unstable_7": { "locked": { - "lastModified": 1648744337, - "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", - "owner": "NixOS", + "lastModified": 1646331602, + "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_6": { + "nixpkgs-unstable_8": { "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", + "lastModified": 1656338871, + "narHash": "sha256-+LOvZFt3MpWtrxXLH4igQtRVzyD43VnuTJjDVbt7phY=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "rev": "819e4d63fc7f337a822a049fd055cd7615a5e0d6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_7": { + "nixpkgs-unstable_9": { "locked": { - "lastModified": 1648744337, - "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", - "owner": "NixOS", + "lastModified": 1646331602, + "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "0a58eebd8ec65ffdef2ce9562784123a73922052", + "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2205": { + "nixpkgs_10": { "locked": { - "lastModified": 1682600000, - "narHash": "sha256-ha4BehR1dh8EnXSoE1m/wyyYVvHI9txjW4w5/oxsW5Y=", + "lastModified": 1670461440, + "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0", + "rev": "04a75b2eecc0acf6239acf9dd04485ff8d14f425", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", + "ref": "nixos-22.11-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2205_2": { + "nixpkgs_11": { "locked": { - "lastModified": 1657876628, - "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=", + "lastModified": 1690026219, + "narHash": "sha256-oOduRk/kzQxOBknZXTLSEYd7tk+GoKvr8wV6Ab+t4AU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "549d82bdd40f760a438c3c3497c1c61160f3de55", + "rev": "f465da166263bc0d4b39dfd4ca28b777c92d4b73", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2205_3": { + "nixpkgs_12": { "locked": { - "lastModified": 1685573264, - "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "lastModified": 1675249806, + "narHash": "sha256-u8Rcqekusl3pMZm68hZqr6zozI8Ug5IxqOiqDLAlu1k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "rev": "79feedf38536de2a27d13fe2eaf200a9c05193ba", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2211": { + "nixpkgs_13": { "locked": { - "lastModified": 1682682915, - "narHash": "sha256-haR0u/j/nUvlMloYlaOYq1FMXTvkNHw+wGxc+0qXisM=", - "owner": "NixOS", + "lastModified": 1636823747, + "narHash": "sha256-oWo1nElRAOZqEf90Yek2ixdHyjD+gqtS/pAgwaQ9UhQ=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "09f1b33fcc0f59263137e23e935c1bb03ec920e4", + "rev": "f6a2ed2082d9a51668c86ba27d0b5496f7a2ea93", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", + "owner": "nixos", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2211_2": { + "nixpkgs_14": { "locked": { - "lastModified": 1688392541, - "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2305": { + "nixpkgs_15": { "locked": { - "lastModified": 1701362232, - "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-23.05-darwin", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs-2311": { + "nixpkgs_16": { "locked": { - "lastModified": 1701386440, - "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.11-darwin", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-docker": { + "nixpkgs_17": { "locked": { - "lastModified": 1652739558, - "narHash": "sha256-znGkjGugajqF/sFS+H4+ENmGTaVPFE0uu1JjQZJLEaQ=", - "owner": "nixos", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ff691ed9ba21528c1b4e034f36a04027e4522c58", "type": "github" } }, - "nixpkgs-regression": { + "nixpkgs_18": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-regression_10": { + "nixpkgs_19": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_11": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" } }, - "nixpkgs-regression_12": { + "nixpkgs_2": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1687420147, + "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_13": { + "nixpkgs_20": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1674407282, + "narHash": "sha256-2qwc8mrPINSFdWffPK+ji6nQ9aGnnZyHSItVcYDZDlk=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "ab1254087f4cdf4af74b552d7fc95175d9bdbb49", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", + "ref": "nixos-22.11", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "github" } }, - "nixpkgs-regression_14": { + "nixpkgs_21": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1665087388, + "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_2": { + "nixpkgs_22": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_3": { + "nixpkgs_23": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_4": { + "nixpkgs_24": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1675940568, + "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_5": { + "nixpkgs_25": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", "type": "github" }, "original": { "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", "type": "indirect" } }, - "nixpkgs-regression_6": { + "nixpkgs_26": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-22.05-small", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_7": { + "nixpkgs_27": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-regression_8": { + "nixpkgs_28": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "lastModified": 1681001314, + "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, - "nixpkgs-regression_9": { + "nixpkgs_29": { "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", + "lastModified": 1675940568, + "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", "type": "github" }, "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs-unstable": { + "nixpkgs_3": { "locked": { - "lastModified": 1682656005, - "narHash": "sha256-fYplYo7so1O+rSQ2/aS+SbTPwLTeoUXk4ekKNtSl4P8=", + "lastModified": 1677543769, + "narHash": "sha256-LwbqS8vGisXl2WHpK9r5+kodr0zoIT8F2YB0R4y1TsA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6806b63e824f84b0f0e60b6d660d4ae753de0477", + "rev": "b26d52c9feb6476580016e78935cbf96eb3e2115", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-22.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_2": { + "nixpkgs_30": { "locked": { - "lastModified": 1646331602, - "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", + "lastModified": 1677063315, + "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", + "rev": "988cc958c57ce4350ec248d2d53087777f9e1949", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_3": { + "nixpkgs_31": { "locked": { - "lastModified": 1656338871, - "narHash": "sha256-+LOvZFt3MpWtrxXLH4igQtRVzyD43VnuTJjDVbt7phY=", - "owner": "nixos", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "819e4d63fc7f337a822a049fd055cd7615a5e0d6", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", + "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_4": { + "nixpkgs_32": { "locked": { - "lastModified": 1646331602, - "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", - "owner": "nixos", + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", + "owner": "NixOS", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_5": { + "nixpkgs_33": { "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", - "owner": "NixOS", + "lastModified": 1665087388, + "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_6": { + "nixpkgs_34": { "locked": { - "lastModified": 1657888067, - "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=", + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs-unstable_7": { + "nixpkgs_35": { "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-22.05-small", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_8": { + "nixpkgs_36": { "locked": { - "lastModified": 1701336116, - "narHash": "sha256-kEmpezCR/FpITc6yMbAh4WrOCiT2zg5pSjnKrq51h5Y=", + "lastModified": 1712920918, + "narHash": "sha256-1yxFvUcJfUphK9V91KufIQom7gCsztza0H4Rz2VCWUU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5c27c6136db4d76c30e533c20517df6864c46ee", + "rev": "92323443a56f4e9fc4e4b712e3119f66d0969297", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-unstable_9": { + "nixpkgs_37": { "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", - "owner": "NixOS", + "lastModified": 1708343346, + "narHash": "sha256-qlzHvterVRzS8fS0ophQpkh0rqw0abijHEOAKm0HmV0=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", + "rev": "9312b935a538684049cb668885e60f15547d4c5f", "type": "github" }, "original": { + "owner": "nixos", + "ref": "release-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_38": { + "locked": { + "lastModified": 1627969475, + "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", "owner": "NixOS", - "ref": "nixpkgs-unstable", "repo": "nixpkgs", + "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs_10": { + "nixpkgs_39": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -6952,7 +11925,23 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_4": { + "locked": { + "lastModified": 1645013224, + "narHash": "sha256-b7OEC8vwzJv3rsz9pwnTX2LQDkeOWz2DbKypkVvNHXc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b66b39216b1fef2d8c33cc7a5c72d8da80b79970", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_40": { "locked": { "lastModified": 1627969475, "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", @@ -6966,7 +11955,7 @@ "type": "indirect" } }, - "nixpkgs_12": { + "nixpkgs_41": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -6982,7 +11971,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_42": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -6998,7 +11987,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_43": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7013,7 +12002,7 @@ "type": "indirect" } }, - "nixpkgs_15": { + "nixpkgs_44": { "locked": { "lastModified": 1638452135, "narHash": "sha256-5Il6hgrTgcWIsB7zug0yDFccYXx7pJCw8cwJdXMuLfM=", @@ -7029,7 +12018,7 @@ "type": "github" } }, - "nixpkgs_16": { + "nixpkgs_45": { "locked": { "lastModified": 1602702596, "narHash": "sha256-fqJ4UgOb4ZUnCDIapDb4gCrtAah5Rnr2/At3IzMitig=", @@ -7044,7 +12033,7 @@ "type": "indirect" } }, - "nixpkgs_17": { + "nixpkgs_46": { "locked": { "lastModified": 1638887115, "narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=", @@ -7060,7 +12049,7 @@ "type": "github" } }, - "nixpkgs_18": { + "nixpkgs_47": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7075,7 +12064,7 @@ "type": "indirect" } }, - "nixpkgs_19": { + "nixpkgs_48": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -7091,37 +12080,39 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_49": { "locked": { - "lastModified": 1642336556, - "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", - "owner": "NixOS", + "lastModified": 1647350163, + "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "rev": "3eb07eeafb52bcbf02ce800f032f18d666a9498d", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs_20": { + "nixpkgs_5": { "locked": { - "lastModified": 1647350163, - "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", + "lastModified": 1680945546, + "narHash": "sha256-8FuaH5t/aVi/pR1XxnF0qi4WwMYC+YxlfdsA0V+TEuQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3eb07eeafb52bcbf02ce800f032f18d666a9498d", + "rev": "d9f759f2ea8d265d974a6e1259bd510ac5844c5d", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_21": { + "nixpkgs_50": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7137,7 +12128,7 @@ "type": "github" } }, - "nixpkgs_22": { + "nixpkgs_51": { "locked": { "lastModified": 1646506091, "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", @@ -7153,7 +12144,7 @@ "type": "github" } }, - "nixpkgs_23": { + "nixpkgs_52": { "locked": { "lastModified": 1658119717, "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", @@ -7169,7 +12160,7 @@ "type": "github" } }, - "nixpkgs_24": { + "nixpkgs_53": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7185,7 +12176,7 @@ "type": "github" } }, - "nixpkgs_25": { + "nixpkgs_54": { "locked": { "lastModified": 1652576347, "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", @@ -7200,7 +12191,7 @@ "type": "github" } }, - "nixpkgs_26": { + "nixpkgs_55": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7216,7 +12207,7 @@ "type": "github" } }, - "nixpkgs_27": { + "nixpkgs_56": { "locked": { "lastModified": 1642451377, "narHash": "sha256-hvAuYDUN8XIrcQKE6wDw4LjTCcwrTp2B1i1i/5vfDMQ=", @@ -7231,7 +12222,7 @@ "type": "github" } }, - "nixpkgs_28": { + "nixpkgs_57": { "locked": { "lastModified": 1645296114, "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", @@ -7246,39 +12237,23 @@ "type": "indirect" } }, - "nixpkgs_29": { - "locked": { - "lastModified": 1652559422, - "narHash": "sha256-jPVTNImBTUIFdtur+d4IVot6eXmsvtOcBm0TzxmhWPk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8b3398bc7587ebb79f93dfeea1b8c574d3c6dba1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-21.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { + "nixpkgs_58": { "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "lastModified": 1652559422, + "narHash": "sha256-jPVTNImBTUIFdtur+d4IVot6eXmsvtOcBm0TzxmhWPk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", + "rev": "8b3398bc7587ebb79f93dfeea1b8c574d3c6dba1", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", + "owner": "nixos", + "ref": "nixos-21.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_30": { + "nixpkgs_59": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7293,7 +12268,23 @@ "type": "indirect" } }, - "nixpkgs_31": { + "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": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -7309,7 +12300,7 @@ "type": "github" } }, - "nixpkgs_32": { + "nixpkgs_61": { "locked": { "lastModified": 1647350163, "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", @@ -7325,7 +12316,7 @@ "type": "github" } }, - "nixpkgs_33": { + "nixpkgs_62": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7341,7 +12332,7 @@ "type": "github" } }, - "nixpkgs_34": { + "nixpkgs_63": { "locked": { "lastModified": 1658311025, "narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=", @@ -7357,7 +12348,7 @@ "type": "github" } }, - "nixpkgs_35": { + "nixpkgs_64": { "locked": { "lastModified": 1646331602, "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", @@ -7373,7 +12364,7 @@ "type": "github" } }, - "nixpkgs_36": { + "nixpkgs_65": { "locked": { "lastModified": 1643381941, "narHash": "sha256-pHTwvnN4tTsEKkWlXQ8JMY423epos8wUOhthpwJjtpc=", @@ -7389,7 +12380,7 @@ "type": "github" } }, - "nixpkgs_37": { + "nixpkgs_66": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7404,7 +12395,7 @@ "type": "indirect" } }, - "nixpkgs_38": { + "nixpkgs_67": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7419,7 +12410,7 @@ "type": "indirect" } }, - "nixpkgs_39": { + "nixpkgs_68": { "locked": { "lastModified": 1644486793, "narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=", @@ -7435,36 +12426,37 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_69": { "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "lastModified": 1627969475, + "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", + "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, - "nixpkgs_40": { + "nixpkgs_7": { "locked": { - "lastModified": 1627969475, - "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", - "owner": "NixOS", + "lastModified": 1692339729, + "narHash": "sha256-TUK76/Pqm9qIDjEGd27Lz9EiBIvn5F70JWDmEQ4Y5DQ=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", + "rev": "ae521bd4e460b076a455dca8b13f4151489a725c", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nixos", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs_41": { + "nixpkgs_70": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -7480,7 +12472,7 @@ "type": "github" } }, - "nixpkgs_42": { + "nixpkgs_71": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7496,7 +12488,7 @@ "type": "github" } }, - "nixpkgs_43": { + "nixpkgs_72": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7511,7 +12503,7 @@ "type": "indirect" } }, - "nixpkgs_44": { + "nixpkgs_73": { "locked": { "lastModified": 1638452135, "narHash": "sha256-5Il6hgrTgcWIsB7zug0yDFccYXx7pJCw8cwJdXMuLfM=", @@ -7527,7 +12519,7 @@ "type": "github" } }, - "nixpkgs_45": { + "nixpkgs_74": { "locked": { "lastModified": 1602702596, "narHash": "sha256-fqJ4UgOb4ZUnCDIapDb4gCrtAah5Rnr2/At3IzMitig=", @@ -7542,7 +12534,7 @@ "type": "indirect" } }, - "nixpkgs_46": { + "nixpkgs_75": { "locked": { "lastModified": 1638887115, "narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=", @@ -7558,7 +12550,7 @@ "type": "github" } }, - "nixpkgs_47": { + "nixpkgs_76": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7573,7 +12565,7 @@ "type": "indirect" } }, - "nixpkgs_48": { + "nixpkgs_77": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -7589,7 +12581,7 @@ "type": "github" } }, - "nixpkgs_49": { + "nixpkgs_78": { "locked": { "lastModified": 1647350163, "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", @@ -7605,39 +12597,39 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_79": { "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", + "lastModified": 1644525281, + "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_50": { + "nixpkgs_8": { "locked": { - "lastModified": 1644525281, - "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", + "lastModified": 1684171562, + "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2", + "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "release-22.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_51": { + "nixpkgs_80": { "locked": { "lastModified": 1646506091, "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", @@ -7653,7 +12645,7 @@ "type": "github" } }, - "nixpkgs_52": { + "nixpkgs_81": { "locked": { "lastModified": 1658119717, "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", @@ -7669,7 +12661,7 @@ "type": "github" } }, - "nixpkgs_53": { + "nixpkgs_82": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -7685,7 +12677,7 @@ "type": "github" } }, - "nixpkgs_54": { + "nixpkgs_83": { "locked": { "lastModified": 1646470760, "narHash": "sha256-dQISyucVCCPaFioUhy5ZgfBz8rOMKGI8k13aPDFTqEs=", @@ -7701,7 +12693,7 @@ "type": "github" } }, - "nixpkgs_55": { + "nixpkgs_84": { "locked": { "lastModified": 1619531122, "narHash": "sha256-ovm5bo6PkZzNKh2YGXbRKYIjega0EjiEP0YDwyeXEYU=", @@ -7715,7 +12707,7 @@ "type": "indirect" } }, - "nixpkgs_56": { + "nixpkgs_85": { "locked": { "lastModified": 1656461576, "narHash": "sha256-rlmmw6lIlkMQIiB+NsnO8wQYWTfle8TA41UREPLP5VY=", @@ -7731,7 +12723,7 @@ "type": "github" } }, - "nixpkgs_57": { + "nixpkgs_86": { "locked": { "lastModified": 1655567057, "narHash": "sha256-Cc5hQSMsTzOHmZnYm8OSJ5RNUp22bd5NADWLHorULWQ=", @@ -7745,7 +12737,7 @@ "type": "indirect" } }, - "nixpkgs_58": { + "nixpkgs_87": { "locked": { "lastModified": 1656401090, "narHash": "sha256-bUS2nfQsvTQW2z8SK7oEFSElbmoBahOPtbXPm0AL3I4=", @@ -7759,7 +12751,7 @@ "type": "indirect" } }, - "nixpkgs_59": { + "nixpkgs_88": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7774,22 +12766,7 @@ "type": "indirect" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_60": { + "nixpkgs_89": { "locked": { "lastModified": 1656809537, "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", @@ -7804,7 +12781,23 @@ "type": "github" } }, - "nixpkgs_61": { + "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": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7819,7 +12812,7 @@ "type": "indirect" } }, - "nixpkgs_62": { + "nixpkgs_91": { "locked": { "lastModified": 1654807842, "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", @@ -7834,7 +12827,7 @@ "type": "github" } }, - "nixpkgs_63": { + "nixpkgs_92": { "locked": { "lastModified": 1656947410, "narHash": "sha256-htDR/PZvjUJGyrRJsVqDmXR8QeoswBaRLzHt13fd0iY=", @@ -7850,7 +12843,7 @@ "type": "github" } }, - "nixpkgs_64": { + "nixpkgs_93": { "locked": { "lastModified": 1658311025, "narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=", @@ -7866,7 +12859,7 @@ "type": "github" } }, - "nixpkgs_65": { + "nixpkgs_94": { "locked": { "lastModified": 1642451377, "narHash": "sha256-hvAuYDUN8XIrcQKE6wDw4LjTCcwrTp2B1i1i/5vfDMQ=", @@ -7881,7 +12874,7 @@ "type": "github" } }, - "nixpkgs_66": { + "nixpkgs_95": { "locked": { "lastModified": 1653920503, "narHash": "sha256-BBeCZwZImtjP3oYy4WogkQYy5OxNyfNciVSc1AfZgLQ=", @@ -7897,7 +12890,7 @@ "type": "github" } }, - "nixpkgs_67": { + "nixpkgs_96": { "locked": { "lastModified": 1650469885, "narHash": "sha256-BuILRZ6pzMnGey8/irbjGq1oo3vIvZa1pitSdZCmIXA=", @@ -7913,7 +12906,7 @@ "type": "github" } }, - "nixpkgs_68": { + "nixpkgs_97": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -7928,7 +12921,7 @@ "type": "indirect" } }, - "nixpkgs_69": { + "nixpkgs_98": { "locked": { "lastModified": 1657693803, "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", @@ -7944,29 +12937,13 @@ "type": "github" } }, - "nixpkgs_7": { - "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_70": { + "nixpkgs_99": { "locked": { - "lastModified": 1697723726, - "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", + "lastModified": 1713714899, + "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", + "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", "type": "github" }, "original": { @@ -7976,56 +12953,11 @@ "type": "github" } }, - "nixpkgs_71": { - "locked": { - "lastModified": 1632864508, - "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "82891b5e2c2359d7e58d08849e4c89511ab94234", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-21.05-small", - "type": "indirect" - } - }, - "nixpkgs_8": { - "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_9": { - "locked": { - "lastModified": 1627969475, - "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, "nomad": { "inputs": { - "nix": "nix_3", - "nixpkgs": "nixpkgs_17", - "utils": "utils_4" + "nix": "nix_8", + "nixpkgs": "nixpkgs_46", + "utils": "utils_9" }, "locked": { "lastModified": 1648128770, @@ -8044,11 +12976,11 @@ }, "nomad-driver-nix": { "inputs": { - "devshell": "devshell_2", - "inclusive": "inclusive", - "nix": "nix_4", - "nixpkgs": "nixpkgs_19", - "utils": "utils_5" + "devshell": "devshell_6", + "inclusive": "inclusive_2", + "nix": "nix_9", + "nixpkgs": "nixpkgs_48", + "utils": "utils_10" }, "locked": { "lastModified": 1648029666, @@ -8066,11 +12998,11 @@ }, "nomad-driver-nix_2": { "inputs": { - "devshell": "devshell_5", - "inclusive": "inclusive_4", - "nix": "nix_6", - "nixpkgs": "nixpkgs_31", - "utils": "utils_10" + "devshell": "devshell_9", + "inclusive": "inclusive_5", + "nix": "nix_11", + "nixpkgs": "nixpkgs_60", + "utils": "utils_15" }, "locked": { "lastModified": 1648029666, @@ -8088,11 +13020,11 @@ }, "nomad-driver-nix_3": { "inputs": { - "devshell": "devshell_12", - "inclusive": "inclusive_9", - "nix": "nix_11", - "nixpkgs": "nixpkgs_48", - "utils": "utils_19" + "devshell": "devshell_16", + "inclusive": "inclusive_10", + "nix": "nix_16", + "nixpkgs": "nixpkgs_77", + "utils": "utils_24" }, "locked": { "lastModified": 1648029666, @@ -8110,10 +13042,10 @@ }, "nomad-follower": { "inputs": { - "devshell": "devshell_3", - "inclusive": "inclusive_2", - "nixpkgs": "nixpkgs_20", - "utils": "utils_6" + "devshell": "devshell_7", + "inclusive": "inclusive_3", + "nixpkgs": "nixpkgs_49", + "utils": "utils_11" }, "locked": { "lastModified": 1649836589, @@ -8131,10 +13063,10 @@ }, "nomad-follower_2": { "inputs": { - "devshell": "devshell_6", - "inclusive": "inclusive_5", - "nixpkgs": "nixpkgs_32", - "utils": "utils_11" + "devshell": "devshell_10", + "inclusive": "inclusive_6", + "nixpkgs": "nixpkgs_61", + "utils": "utils_16" }, "locked": { "lastModified": 1658244176, @@ -8151,11 +13083,11 @@ } }, "nomad-follower_3": { - "inputs": { - "devshell": "devshell_13", - "inclusive": "inclusive_10", - "nixpkgs": "nixpkgs_49", - "utils": "utils_20" + "inputs": { + "devshell": "devshell_17", + "inclusive": "inclusive_11", + "nixpkgs": "nixpkgs_78", + "utils": "utils_25" }, "locked": { "lastModified": 1649836589, @@ -8173,9 +13105,9 @@ }, "nomad_2": { "inputs": { - "nix": "nix_10", - "nixpkgs": "nixpkgs_46", - "utils": "utils_18" + "nix": "nix_15", + "nixpkgs": "nixpkgs_75", + "utils": "utils_23" }, "locked": { "lastModified": 1648128770, @@ -8207,6 +13139,68 @@ "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=", + "owner": "divnix", + "repo": "nosys", + "rev": "feade0141487801c71ff55623b421ed535dbdefa", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "nosys", + "type": "github" + } + }, + "nosys_4": { + "locked": { + "lastModified": 1668010795, + "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", + "owner": "divnix", + "repo": "nosys", + "rev": "feade0141487801c71ff55623b421ed535dbdefa", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "nosys", + "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": { @@ -8224,66 +13218,41 @@ "type": "github" } }, - "ogmios-nixos": { - "inputs": { - "CHaP": "CHaP_3", - "blank": "blank_5", - "cardano-configurations": "cardano-configurations_2", - "cardano-node": [ - "ctl", - "cardano-node" - ], - "flake-compat": "flake-compat_13", - "haskell-nix": [ - "ctl", - "haskell-nix" - ], - "iohk-nix": [ - "ctl", - "iohk-nix" - ], - "nixpkgs": [ - "ctl", - "nixpkgs" - ], - "ogmios-src": [ - "ctl", - "ogmios" - ] - }, + "ogmios_2": { + "flake": false, "locked": { - "lastModified": 1695289922, - "narHash": "sha256-WeZkYCyvOqnVx9zYgyO2rh0rd3O2DmxH0HZ4OJnf/aw=", - "owner": "mlabs-haskell", - "repo": "ogmios-nixos", - "rev": "78e829e9ebd50c5891024dcd1004c2ac51facd80", + "lastModified": 1720778275, + "narHash": "sha256-OpUeVbztfLy+9d2M5w2Jgx1b/IhDNAQdlr/eP1iKUQI=", + "owner": "CardanoSolutions", + "repo": "ogmios", + "rev": "63a9e9d33eadbca22d1ecc90b9623b962148d174", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "repo": "ogmios-nixos", - "rev": "78e829e9ebd50c5891024dcd1004c2ac51facd80", + "owner": "CardanoSolutions", + "ref": "v6.5.0", + "repo": "ogmios", "type": "github" } }, - "ogmios_2": { + "old-ghc-nix": { "flake": false, "locked": { - "lastModified": 1691769233, - "narHash": "sha256-7CLprKq3RwJfvy31LAPux+DYFLjEmbRBFgvtYDpJA8Q=", - "owner": "CardanoSolutions", - "repo": "ogmios", - "rev": "3d3f359b0987c009ef66fb4d4b4bddce92b9aeb3", + "lastModified": 1631092763, + "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", + "owner": "angerman", + "repo": "old-ghc-nix", + "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", "type": "github" }, "original": { - "owner": "CardanoSolutions", - "ref": "v6.0.0", - "repo": "ogmios", + "owner": "angerman", + "ref": "master", + "repo": "old-ghc-nix", "type": "github" } }, - "old-ghc-nix": { + "old-ghc-nix_10": { "flake": false, "locked": { "lastModified": 1631092763, @@ -8402,6 +13371,40 @@ "type": "github" } }, + "old-ghc-nix_8": { + "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_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": { @@ -8419,6 +13422,70 @@ } }, "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, + "narHash": "sha256-0hNlv+grFTE+TeXIbxSY97QoEEaUupOKMusZ4PesdrQ=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "19d83fa8eab1c0b7765f736eb4e8569d84d3e39d", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "ops-lib_4": { + "flake": false, + "locked": { + "lastModified": 1649848729, + "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "ops-lib_5": { + "flake": false, + "locked": { + "lastModified": 1649848729, + "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", + "owner": "input-output-hk", + "repo": "ops-lib", + "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "ops-lib_6": { "flake": false, "locked": { "lastModified": 1649848729, @@ -8429,86 +13496,255 @@ "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "input-output-hk", + "repo": "ops-lib", + "type": "github" + } + }, + "paisano": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ], + "nosys": "nosys_2", + "yants": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "yants" + ] + }, + "locked": { + "lastModified": 1677437285, + "narHash": "sha256-YGfMothgUq1T9wMJYEhOSvdIiD/8gLXO1YcZA6hyIWU=", + "owner": "paisano-nix", + "repo": "core", + "rev": "5f2fc05e98e001cb1cf9535ded09e05d90cec131", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "repo": "core", + "type": "github" + } + }, + "paisano-actions": { + "inputs": { + "nixpkgs": [ + "ctl", + "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": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "nixpkgs" + ], + "paisano-actions": "paisano-actions", + "std": [ + "ctl", + "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": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "std": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std" + ] + }, + "locked": { + "lastModified": 1677533603, + "narHash": "sha256-Nq1dH/qn7Wg/Tj1+id+ZM3o0fzqonW73jAgY3mCp35M=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "802958d123b0a5437441be0cab1dee487b0ed3eb", + "type": "github" + }, + "original": { + "owner": "paisano-nix", + "repo": "tui", "type": "github" } }, - "ops-lib_3": { - "flake": false, + "paisano-tui_2": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "blank" + ], + "std": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std" + ] + }, "locked": { - "lastModified": 1649848729, - "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "lastModified": 1681847764, + "narHash": "sha256-mdd7PJW1BZvxy0cIKsPfAO+ohVl/V7heE5ZTAHzTdv8=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "3096bad91cae73ab8ab3367d31f8a143d248a244", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "paisano-nix", + "ref": "0.1.1", + "repo": "tui", "type": "github" } }, - "ops-lib_4": { + "paisano-tui_3": { "flake": false, "locked": { - "lastModified": 1649848729, - "narHash": "sha256-5zN9gpn+DwdB67bcHfDD8zgMnR0EaJd2JVNMyL6J1N0=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "517c747f4d5d56e626f62618803bfccb09f14019", + "lastModified": 1708637035, + "narHash": "sha256-R19YURSK+MY/Rw6FZnojQS9zuDh+OoTAyngQAjjoubc=", + "owner": "paisano-nix", + "repo": "tui", + "rev": "231761b260587a64817e4ffae3afc15defaa15db", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "ops-lib", + "owner": "paisano-nix", + "ref": "v0.5.0", + "repo": "tui", "type": "github" } }, - "plutip": { + "paisano_2": { "inputs": { - "CHaP": "CHaP_4", - "cardano-node": [ - "ctl", - "cardano-node" - ], - "flake-compat": "flake-compat_14", - "hackage-nix": [ - "ctl", - "hackage-nix" - ], - "haskell-nix": [ + "nixpkgs": [ "ctl", - "haskell-nix" + "cardano-nix", + "cardano-node-8.7.3", + "std", + "nixpkgs" ], - "iohk-nix": [ + "nosys": "nosys_3", + "yants": [ "ctl", - "iohk-nix" - ], + "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", "nixpkgs": [ "ctl", + "cardano-node", + "std", "nixpkgs" + ], + "nosys": "nosys_4", + "yants": [ + "ctl", + "cardano-node", + "std", + "yants" ] }, "locked": { - "lastModified": 1695131439, - "narHash": "sha256-7ZhZUDhlFvV2us4G27iAk6lHezKS/4WA07NQn88VtQU=", - "owner": "mlabs-haskell", - "repo": "plutip", - "rev": "1bf0b547cd3689c727586abb8385c008fb2a3d1c", + "lastModified": 1708640854, + "narHash": "sha256-EpcAmvIS4ErqhXtVEfd2GPpU/E/s8CCRSfYzk6FZ/fY=", + "owner": "paisano-nix", + "repo": "core", + "rev": "adcf742bc9463c08764ca9e6955bd5e7dcf3a3fe", "type": "github" }, "original": { - "owner": "mlabs-haskell", - "ref": "gergely/version-bump", - "repo": "plutip", + "owner": "paisano-nix", + "ref": "0.2.0", + "repo": "core", "type": "github" } }, "poetry2nix": { "inputs": { - "flake-utils": "flake-utils_17", + "flake-utils": "flake-utils_32", "nixpkgs": [ "ctl", "db-sync", @@ -8535,8 +13771,8 @@ }, "pre-commit-hooks": { "inputs": { - "flake-utils": "flake-utils_23", - "nixpkgs": "nixpkgs_55" + "flake-utils": "flake-utils_38", + "nixpkgs": "nixpkgs_84" }, "locked": { "lastModified": 1639823344, @@ -8552,12 +13788,42 @@ "type": "github" } }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": "flake-compat_13", + "flake-utils": "flake-utils_15", + "gitignore": "gitignore", + "nixpkgs": [ + "ctl", + "cardano-nix", + "nixpkgs" + ], + "nixpkgs-stable": [ + "ctl", + "cardano-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "ragenix": { "inputs": { "agenix": "agenix_3", - "flake-utils": "flake-utils_8", - "nixpkgs": "nixpkgs_21", - "rust-overlay": "rust-overlay" + "flake-utils": "flake-utils_23", + "nixpkgs": "nixpkgs_50", + "rust-overlay": "rust-overlay_2" }, "locked": { "lastModified": 1641119695, @@ -8576,9 +13842,9 @@ "ragenix_2": { "inputs": { "agenix": "agenix_4", - "flake-utils": "flake-utils_10", - "nixpkgs": "nixpkgs_24", - "rust-overlay": "rust-overlay_2" + "flake-utils": "flake-utils_25", + "nixpkgs": "nixpkgs_53", + "rust-overlay": "rust-overlay_3" }, "locked": { "lastModified": 1645147603, @@ -8597,9 +13863,9 @@ "ragenix_3": { "inputs": { "agenix": "agenix_5", - "flake-utils": "flake-utils_12", - "nixpkgs": "nixpkgs_33", - "rust-overlay": "rust-overlay_3" + "flake-utils": "flake-utils_27", + "nixpkgs": "nixpkgs_62", + "rust-overlay": "rust-overlay_4" }, "locked": { "lastModified": 1641119695, @@ -8618,9 +13884,9 @@ "ragenix_4": { "inputs": { "agenix": "agenix_7", - "flake-utils": "flake-utils_19", - "nixpkgs": "nixpkgs_50", - "rust-overlay": "rust-overlay_4" + "flake-utils": "flake-utils_34", + "nixpkgs": "nixpkgs_79", + "rust-overlay": "rust-overlay_5" }, "locked": { "lastModified": 1641119695, @@ -8639,9 +13905,9 @@ "ragenix_5": { "inputs": { "agenix": "agenix_8", - "flake-utils": "flake-utils_21", - "nixpkgs": "nixpkgs_53", - "rust-overlay": "rust-overlay_5" + "flake-utils": "flake-utils_36", + "nixpkgs": "nixpkgs_82", + "rust-overlay": "rust-overlay_6" }, "locked": { "lastModified": 1645147603, @@ -8660,7 +13926,7 @@ "root": { "inputs": { "ctl": "ctl", - "flake-compat": "flake-compat_15", + "flake-compat": "flake-compat_26", "nixpkgs": [ "ctl", "nixpkgs" @@ -8668,6 +13934,40 @@ } }, "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, @@ -8684,7 +13984,7 @@ "type": "github" } }, - "rust-analyzer-src_2": { + "rust-analyzer-src_4": { "flake": false, "locked": { "lastModified": 1649178056, @@ -8701,7 +14001,7 @@ "type": "github" } }, - "rust-analyzer-src_3": { + "rust-analyzer-src_5": { "flake": false, "locked": { "lastModified": 1645024434, @@ -8718,7 +14018,7 @@ "type": "github" } }, - "rust-analyzer-src_4": { + "rust-analyzer-src_6": { "flake": false, "locked": { "lastModified": 1660579619, @@ -8735,7 +14035,7 @@ "type": "github" } }, - "rust-analyzer-src_5": { + "rust-analyzer-src_7": { "flake": false, "locked": { "lastModified": 1645024434, @@ -8752,7 +14052,7 @@ "type": "github" } }, - "rust-analyzer-src_6": { + "rust-analyzer-src_8": { "flake": false, "locked": { "lastModified": 1649178056, @@ -8770,6 +14070,41 @@ } }, "rust-overlay": { + "inputs": { + "flake-utils": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "paisano-mdbook-preprocessor", + "crane", + "flake-utils" + ], + "nixpkgs": [ + "ctl", + "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": [ "ctl", @@ -8806,7 +14141,7 @@ "type": "github" } }, - "rust-overlay_2": { + "rust-overlay_3": { "inputs": { "flake-utils": [ "ctl", @@ -8841,7 +14176,7 @@ "type": "github" } }, - "rust-overlay_3": { + "rust-overlay_4": { "inputs": { "flake-utils": [ "ctl", @@ -8874,7 +14209,7 @@ "type": "github" } }, - "rust-overlay_4": { + "rust-overlay_5": { "inputs": { "flake-utils": [ "ctl", @@ -8909,7 +14244,7 @@ "type": "github" } }, - "rust-overlay_5": { + "rust-overlay_6": { "inputs": { "flake-utils": [ "ctl", @@ -8929,20 +14264,105 @@ ] }, "locked": { - "lastModified": 1644633594, - "narHash": "sha256-Te6mBYYirUwsoqENvVx1K1EEoRq2CKrTnNkWF42jNgE=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "14c48021a9a5fe6ea8ae6b21c15caa106afa9d19", + "lastModified": 1644633594, + "narHash": "sha256-Te6mBYYirUwsoqENvVx1K1EEoRq2CKrTnNkWF42jNgE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "14c48021a9a5fe6ea8ae6b21c15caa106afa9d19", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "secp256k1": { + "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_2": { + "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_3": { + "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_4": { + "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_5": { + "flake": false, + "locked": { + "lastModified": 1683999695, + "narHash": "sha256-9nJJVENMXjXEJZzw8DHzin1DkFkF8h9m/c6PuM7Uk4s=", + "owner": "bitcoin-core", + "repo": "secp256k1", + "rev": "acf5c55ae6a94e5ca847e07def40427547876101", "type": "github" }, "original": { - "owner": "oxalica", - "repo": "rust-overlay", + "owner": "bitcoin-core", + "ref": "v0.3.2", + "repo": "secp256k1", "type": "github" } }, - "secp256k1": { + "secp256k1_6": { "flake": false, "locked": { "lastModified": 1683999695, @@ -8959,7 +14379,7 @@ "type": "github" } }, - "secp256k1_2": { + "secp256k1_7": { "flake": false, "locked": { "lastModified": 1683999695, @@ -9010,7 +14430,143 @@ "type": "github" } }, + "sodium_3": { + "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_4": { + "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_5": { + "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_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=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "cb49435b81adf0549589c51f39b5b38b4369f106", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_2": { "flake": false, "locked": { "lastModified": 1685491814, @@ -9026,7 +14582,39 @@ "type": "github" } }, - "stackage_2": { + "stackage_3": { + "flake": false, + "locked": { + "lastModified": 1700438989, + "narHash": "sha256-x+7Qtboko7ds8CU8pq2sIZiD45DauYoX9LxBfwQr/hs=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "9c2015334cc77837b8454b3b10ef4f711a256f6f", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "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, @@ -9042,7 +14630,7 @@ "type": "github" } }, - "stackage_3": { + "stackage_6": { "flake": false, "locked": { "lastModified": 1655255731, @@ -9058,7 +14646,7 @@ "type": "github" } }, - "stackage_4": { + "stackage_7": { "flake": false, "locked": { "lastModified": 1659402917, @@ -9074,94 +14662,316 @@ "type": "github" } }, - "stackage_5": { - "flake": false, + "stackage_8": { + "flake": false, + "locked": { + "lastModified": 1650936094, + "narHash": "sha256-9ibS+iszPXe3HQd8rexVfrQeO4JkXSPokhbPiJ/Lags=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "85f94546f85fb9b92080f958bec655a364b2f0e5", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "type": "github" + } + }, + "stackage_9": { + "flake": false, + "locked": { + "lastModified": 1721866306, + "narHash": "sha256-j5Z56zaK1GdnsJuFhuR6WnMw3tBZ0wM8+TdkP/DL6ps=", + "owner": "input-output-hk", + "repo": "stackage.nix", + "rev": "90c884a7dfb82cee528bfc044733bba188dea43a", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "stackage.nix", + "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": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "blank" + ], + "blank": "blank", + "devshell": "devshell", + "dmerge": "dmerge", + "flake-utils": "flake-utils_8", + "incl": "incl", + "makes": [ + "ctl", + "cardano-nix", + "cardano-node-8.1.1", + "tullia", + "std", + "blank" + ], + "microvm": [ + "ctl", + "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": [ + "ctl", + "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", + "makes": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "microvm": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "n2c": "n2c_2", + "nixago": "nixago_2", + "nixpkgs": "nixpkgs_24", + "paisano": "paisano", + "paisano-tui": "paisano-tui", + "yants": "yants_2" + }, "locked": { - "lastModified": 1650936094, - "narHash": "sha256-9ibS+iszPXe3HQd8rexVfrQeO4JkXSPokhbPiJ/Lags=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "85f94546f85fb9b92080f958bec655a364b2f0e5", + "lastModified": 1677533652, + "narHash": "sha256-H37dcuWAGZs6Yl9mewMNVcmSaUXR90/bABYFLT/nwhk=", + "owner": "divnix", + "repo": "std", + "rev": "490542f624412662e0411d8cb5a9af988ef56633", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "stackage_6": { - "flake": false, + "std_3": { + "inputs": { + "arion": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "blank" + ], + "blank": "blank_3", + "devshell": "devshell_3", + "dmerge": "dmerge_3", + "flake-utils": "flake-utils_13", + "haumea": "haumea", + "incl": "incl_3", + "makes": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "std", + "blank" + ], + "microvm": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "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" + }, "locked": { - "lastModified": 1702426166, - "narHash": "sha256-j7wjtnR3HjT+OOq4GOWQMG+LufhAmz7CNDTJDW7ouXE=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "8f4b266959e3087825631fb8c7b2ef2f4c915ed9", + "lastModified": 1687300684, + "narHash": "sha256-oBqbss0j+B568GoO3nF2BCoPEgPxUjxfZQGynW6mhEk=", + "owner": "divnix", + "repo": "std", + "rev": "80e5792eae98353a97ab1e85f3fba2784e4a3690", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "stackage_7": { - "flake": false, + "std_4": { + "inputs": { + "blank": "blank_4", + "devshell": "devshell_5", + "dmerge": "dmerge_4", + "flake-utils": "flake-utils_18", + "makes": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", + "microvm": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "blank" + ], + "n2c": "n2c_4", + "nixago": "nixago_4", + "nixpkgs": "nixpkgs_33", + "yants": "yants_4" + }, "locked": { - "lastModified": 1654219171, - "narHash": "sha256-5kp4VTlum+AMmoIbhtrcVSEfYhR4oTKSrwe1iysD8uU=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "6d1fc076976ce6c45da5d077bf882487076efe5c", + "lastModified": 1665513321, + "narHash": "sha256-D6Pacw9yf/HMs84KYuCxHXnNDL7v43gtcka5URagFqE=", + "owner": "divnix", + "repo": "std", + "rev": "94a90eedb9cfc115b12ae8f6622d9904788559e4", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", + "owner": "divnix", + "repo": "std", "type": "github" } }, - "std": { + "std_5": { "inputs": { "arion": [ "ctl", "cardano-node", - "tullia", "std", "blank" ], - "blank": "blank", - "devshell": "devshell", - "dmerge": "dmerge", - "flake-utils": "flake-utils_5", - "incl": "incl", + "blank": "blank_5", + "devshell": [ + "ctl", + "cardano-node", + "std", + "blank" + ], + "dmerge": "dmerge_5", + "haumea": "haumea_2", + "incl": "incl_4", + "lib": "lib", "makes": [ "ctl", "cardano-node", - "tullia", "std", "blank" ], "microvm": [ "ctl", "cardano-node", - "tullia", "std", "blank" ], - "n2c": "n2c", - "nixago": "nixago", - "nixpkgs": "nixpkgs_8", - "nosys": "nosys", - "yants": "yants" + "n2c": [ + "ctl", + "cardano-node", + "std", + "blank" + ], + "nixago": [ + "ctl", + "cardano-node", + "std", + "blank" + ], + "nixpkgs": "nixpkgs_37", + "paisano": "paisano_3", + "paisano-tui": "paisano-tui_3", + "terranix": [ + "ctl", + "cardano-node", + "std", + "blank" + ], + "yants": "yants_5" }, "locked": { - "lastModified": 1674526466, - "narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=", + "lastModified": 1715201063, + "narHash": "sha256-LcLYV5CDhIiJs3MfxGZFKsXPR4PtfnY4toZ75GM+2Pw=", "owner": "divnix", "repo": "std", - "rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826", + "rev": "b6924a7d37a46fc1dda8efe405040e27ecf1bbd6", "type": "github" }, "original": { @@ -9170,15 +14980,15 @@ "type": "github" } }, - "std_2": { + "std_6": { "inputs": { - "devshell": "devshell_7", - "dmerge": "dmerge_2", - "flake-utils": "flake-utils_13", - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", - "nixago": "nixago_2", - "nixpkgs": "nixpkgs_34", - "yants": "yants_3" + "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" }, "locked": { "lastModified": 1661370377, @@ -9194,15 +15004,15 @@ "type": "github" } }, - "std_3": { + "std_7": { "inputs": { - "devshell": "devshell_15", - "dmerge": "dmerge_3", - "flake-utils": "flake-utils_29", - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_2", - "nixago": "nixago_3", - "nixpkgs": "nixpkgs_64", - "yants": "yants_5" + "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" }, "locked": { "lastModified": 1661367957, @@ -9218,11 +15028,11 @@ "type": "github" } }, - "std_4": { + "std_8": { "inputs": { - "devshell": "devshell_16", - "nixpkgs": "nixpkgs_67", - "yants": "yants_6" + "devshell": "devshell_20", + "nixpkgs": "nixpkgs_96", + "yants": "yants_10" }, "locked": { "lastModified": 1652784712, @@ -9298,6 +15108,21 @@ "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, @@ -9375,53 +15200,143 @@ }, "stdlib_7": { "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", + "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_8": { + "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_9": { + "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" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, - "stdlib_8": { + "systems_5": { "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, - "stdlib_9": { + "systems_6": { "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "manveru", - "repo": "nix-lib", + "owner": "nix-systems", + "repo": "default", "type": "github" } }, "tailwind-haskell": { "inputs": { - "flake-utils": "flake-utils_24", - "nixpkgs": "nixpkgs_58" + "flake-utils": "flake-utils_39", + "nixpkgs": "nixpkgs_87" }, "locked": { "lastModified": 1654211622, @@ -9438,28 +15353,38 @@ "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_9", - "nixpkgs": [ - "ctl", - "db-sync", - "cardano-world", - "bitte", - "capsules", - "bitte", - "blank" - ], + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_13", "terranix-examples": "terranix-examples" }, "locked": { - "lastModified": 1637158331, - "narHash": "sha256-x5LEKtSkVq+D3BXHDBOb2wdCLxAhVmXIWONRi9lxDPg=", + "lastModified": 1684906298, + "narHash": "sha256-pNuJxmVMGbBHw7pa+Bx0HY0orXIXoyyAXOKuQ1zpfus=", "owner": "terranix", "repo": "terranix", - "rev": "34198bb154af86d2a559446f10d7339e53126abe", + "rev": "c0dd15076856c6cb425795b8c7d5d37d3a1e922a", "type": "github" }, "original": { @@ -9513,16 +15438,33 @@ "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_14", + "flake-utils": "flake-utils_24", "nixpkgs": [ "ctl", "db-sync", "cardano-world", "bitte", + "capsules", + "bitte", "blank" ], "terranix-examples": "terranix-examples_2" @@ -9545,12 +15487,11 @@ "inputs": { "bats-assert": "bats-assert_3", "bats-support": "bats-support_3", - "flake-utils": "flake-utils_20", + "flake-utils": "flake-utils_29", "nixpkgs": [ "ctl", "db-sync", "cardano-world", - "capsules", "bitte", "blank" ], @@ -9570,54 +15511,278 @@ "type": "github" } }, - "tullia": { - "inputs": { - "nix-nomad": "nix-nomad", - "nix2container": "nix2container_2", - "nixpkgs": "nixpkgs_7", - "std": "std" - }, + "terranix_4": { + "inputs": { + "bats-assert": "bats-assert_4", + "bats-support": "bats-support_4", + "flake-utils": "flake-utils_35", + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "capsules", + "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": [ + "ctl", + "cardano-nix", + "cardano-db-sync", + "cardano-parts", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1691440708, + "narHash": "sha256-c7Cc08vJ0IPFgIERpTdO2xvDHQNL7Uf5iXT0GlYO6vo=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "2a535809ac5c9a32288f4d3b938296e056d948cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_3": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1697388351, + "narHash": "sha256-63N2eBpKaziIy4R44vjpUu8Nz5fCJY7okKrkixvDQmY=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "aae39f64f5ecbe89792d05eacea5cb241891292a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "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", + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "nixpkgs" + ], + "std": "std_2" + }, + "locked": { + "lastModified": 1684859161, + "narHash": "sha256-wOKutImA7CRL0rN+Ng80E72fD5FkVub7LLP2k9NICpg=", + "owner": "input-output-hk", + "repo": "tullia", + "rev": "2964cff1a16eefe301bdddb508c49d94d04603d6", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "tullia", + "type": "github" + } + }, + "tullia_3": { + "inputs": { + "nix-nomad": "nix-nomad_3", + "nix2container": "nix2container_5", + "nixpkgs": [ + "ctl", + "cardano-node", + "cardano-automation", + "nixpkgs" + ], + "std": "std_4" + }, + "locked": { + "lastModified": 1668711738, + "narHash": "sha256-CBjky16o9pqsGE1bWu6nRlRajgSXMEk+yaFQLibqXcE=", + "owner": "input-output-hk", + "repo": "tullia", + "rev": "ead1f515c251f0e060060ef0e2356a51d3dfe4b0", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "tullia", + "type": "github" + } + }, + "tullia_4": { + "inputs": { + "nix2container": "nix2container_7", + "nixpkgs": "nixpkgs_95", + "std": "std_8" + }, + "locked": { + "lastModified": 1657811465, + "narHash": "sha256-KHNWwKuUIG08CUg/ol81zf26RRlnsQsyqMr63vXcCes=", + "owner": "input-output-hk", + "repo": "tullia", + "rev": "f025fcf3676d1d1281de184e89c5f7c8e7f74ebe", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "tullia", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_10": { + "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_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": 1675695930, - "narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "621365f2c725608f381b3ad5b57afef389fd4c31", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "tullia", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "tullia_2": { - "inputs": { - "nix2container": "nix2container_3", - "nixpkgs": "nixpkgs_66", - "std": "std_4" - }, + "utils_13": { "locked": { - "lastModified": 1657811465, - "narHash": "sha256-KHNWwKuUIG08CUg/ol81zf26RRlnsQsyqMr63vXcCes=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "f025fcf3676d1d1281de184e89c5f7c8e7f74ebe", + "lastModified": 1633020561, + "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", + "owner": "kreisys", + "repo": "flake-utils", + "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "tullia", + "owner": "kreisys", + "repo": "flake-utils", "type": "github" } }, - "utils": { + "utils_14": { "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": { @@ -9626,7 +15791,7 @@ "type": "github" } }, - "utils_10": { + "utils_15": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9641,7 +15806,7 @@ "type": "github" } }, - "utils_11": { + "utils_16": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9656,7 +15821,7 @@ "type": "github" } }, - "utils_12": { + "utils_17": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -9671,7 +15836,7 @@ "type": "github" } }, - "utils_13": { + "utils_18": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9686,7 +15851,7 @@ "type": "github" } }, - "utils_14": { + "utils_19": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9701,7 +15866,22 @@ "type": "github" } }, - "utils_15": { + "utils_2": { + "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" + } + }, + "utils_20": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9716,7 +15896,7 @@ "type": "github" } }, - "utils_16": { + "utils_21": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -9731,7 +15911,7 @@ "type": "github" } }, - "utils_17": { + "utils_22": { "locked": { "lastModified": 1637014545, "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", @@ -9746,7 +15926,7 @@ "type": "github" } }, - "utils_18": { + "utils_23": { "locked": { "lastModified": 1601282935, "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", @@ -9761,7 +15941,7 @@ "type": "github" } }, - "utils_19": { + "utils_24": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9776,22 +15956,7 @@ "type": "github" } }, - "utils_2": { - "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" - } - }, - "utils_20": { + "utils_25": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9806,7 +15971,7 @@ "type": "github" } }, - "utils_21": { + "utils_26": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -9821,7 +15986,7 @@ "type": "github" } }, - "utils_22": { + "utils_27": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -9836,7 +16001,7 @@ "type": "github" } }, - "utils_23": { + "utils_28": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -9853,11 +16018,11 @@ }, "utils_3": { "locked": { - "lastModified": 1637014545, - "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "owner": "numtide", "repo": "flake-utils", - "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { @@ -9868,11 +16033,11 @@ }, "utils_4": { "locked": { - "lastModified": 1601282935, - "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "588973065fce51f4763287f0fda87a174d78bf48", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -9883,41 +16048,44 @@ }, "utils_5": { "locked": { - "lastModified": 1633020561, - "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", - "owner": "kreisys", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", "repo": "flake-utils", - "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { - "owner": "kreisys", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "utils_6": { "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_7": { + "inputs": { + "systems": "systems_6" + }, "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -9928,26 +16096,26 @@ }, "utils_8": { "locked": { - "lastModified": 1633020561, - "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", - "owner": "kreisys", + "lastModified": 1637014545, + "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "owner": "numtide", "repo": "flake-utils", - "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", + "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", "type": "github" }, "original": { - "owner": "kreisys", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "utils_9": { "locked": { - "lastModified": 1637014545, - "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "lastModified": 1601282935, + "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", "owner": "numtide", "repo": "flake-utils", - "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "rev": "588973065fce51f4763287f0fda87a174d78bf48", "type": "github" }, "original": { @@ -9994,7 +16162,8 @@ "inputs": { "nixpkgs": [ "ctl", - "cardano-node", + "cardano-nix", + "cardano-node-8.1.1", "tullia", "std", "nixpkgs" @@ -10014,9 +16183,16 @@ "type": "github" } }, - "yants_2": { + "yants_10": { "inputs": { - "nixpkgs": "nixpkgs_25" + "nixpkgs": [ + "ctl", + "db-sync", + "cardano-world", + "tullia", + "std", + "nixpkgs" + ] }, "locked": { "lastModified": 1645126146, @@ -10032,23 +16208,49 @@ "type": "github" } }, + "yants_2": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-nix", + "cardano-node-8.7.3", + "cardano-automation", + "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_3": { "inputs": { "nixpkgs": [ "ctl", - "db-sync", - "cardano-world", - "bitte", + "cardano-nix", + "cardano-node-8.7.3", "std", + "haumea", "nixpkgs" ] }, "locked": { - "lastModified": 1645126146, - "narHash": "sha256-XQ1eg4gzXoc7Tl8iXak1uCt3KnsTyxqPtLE+vOoDnrQ=", + "lastModified": 1686863218, + "narHash": "sha256-kooxYm3/3ornWtVBNHM3Zh020gACUyFX2G0VQXnB+mk=", "owner": "divnix", "repo": "yants", - "rev": "77df2be1b3cce9f571c6cf451f786b266a6869cc", + "rev": "8f0da0dba57149676aa4817ec0c880fbde7a648d", "type": "github" }, "original": { @@ -10059,7 +16261,55 @@ }, "yants_4": { "inputs": { - "nixpkgs": "nixpkgs_60" + "nixpkgs": [ + "ctl", + "cardano-node", + "cardano-automation", + "tullia", + "std", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660507851, + "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", + "owner": "divnix", + "repo": "yants", + "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, + "yants_5": { + "inputs": { + "nixpkgs": [ + "ctl", + "cardano-node", + "std", + "lib" + ] + }, + "locked": { + "lastModified": 1686863218, + "narHash": "sha256-kooxYm3/3ornWtVBNHM3Zh020gACUyFX2G0VQXnB+mk=", + "owner": "divnix", + "repo": "yants", + "rev": "8f0da0dba57149676aa4817ec0c880fbde7a648d", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, + "yants_6": { + "inputs": { + "nixpkgs": "nixpkgs_54" }, "locked": { "lastModified": 1645126146, @@ -10075,12 +16325,13 @@ "type": "github" } }, - "yants_5": { + "yants_7": { "inputs": { "nixpkgs": [ "ctl", "db-sync", "cardano-world", + "bitte", "std", "nixpkgs" ] @@ -10099,13 +16350,30 @@ "type": "github" } }, - "yants_6": { + "yants_8": { + "inputs": { + "nixpkgs": "nixpkgs_89" + }, + "locked": { + "lastModified": 1645126146, + "narHash": "sha256-XQ1eg4gzXoc7Tl8iXak1uCt3KnsTyxqPtLE+vOoDnrQ=", + "owner": "divnix", + "repo": "yants", + "rev": "77df2be1b3cce9f571c6cf451f786b266a6869cc", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, + "yants_9": { "inputs": { "nixpkgs": [ "ctl", "db-sync", "cardano-world", - "tullia", "std", "nixpkgs" ] diff --git a/templates/ctl-scaffold/flake.nix b/templates/ctl-scaffold/flake.nix index e9b27874b..835cef22e 100644 --- a/templates/ctl-scaffold/flake.nix +++ b/templates/ctl-scaffold/flake.nix @@ -16,7 +16,7 @@ type = "github"; owner = "Plutonomicon"; repo = "cardano-transaction-lib"; - rev = "ddbd601e882276958fe260b8c492b5c7f489f174"; + rev = "70ab312ebe7615444c895fd1072b6be91e47430d"; }; # To use the same version of `nixpkgs` as we do nixpkgs.follows = "ctl/nixpkgs"; @@ -158,7 +158,7 @@ pkgs = nixpkgsFor system; in { - ctl-scaffold-plutip-test = (psProjectFor pkgs).runPlutipTest { + ctl-scaffold-local-testnet-test = (psProjectFor pkgs).runLocalTestnetTest { testMain = "Test.Scaffold.Main"; }; diff --git a/templates/ctl-scaffold/package-lock.json b/templates/ctl-scaffold/package-lock.json index 561dc93e3..95b691692 100644 --- a/templates/ctl-scaffold/package-lock.json +++ b/templates/ctl-scaffold/package-lock.json @@ -10,9 +10,9 @@ "license": "MIT", "dependencies": { "@mlabs-haskell/cardano-message-signing": "^1.0.1", - "@mlabs-haskell/cardano-serialization-lib-gc": "^1.0.10", + "@mlabs-haskell/cardano-serialization-lib-gc": "12.0.0-alpha.31", "@mlabs-haskell/json-bigint": "2.0.0", - "@mlabs-haskell/uplc-apply-args": "2.0.1", + "@mlabs-haskell/uplc-apply-args": "1.0.29-alpha", "@noble/secp256k1": "^1.7.0", "base64-js": "^1.5.1", "bignumber.js": "^9.1.1", @@ -58,14 +58,14 @@ "integrity": "sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==" }, "node_modules/@emurgo/cardano-serialization-lib-browser": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-11.5.0.tgz", - "integrity": "sha512-qchOJ9NYDUz10tzs5r5QhP9hK0p+ZOlRiBwPdTAxqAYLw/8emYBkQQLaS8T1DF6EkeudyrgS00ym5Trw1fo4iA==" + "version": "12.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-12.0.0-beta.1.tgz", + "integrity": "sha512-Fj56XnZe+ilFVgf66SB6ajQXf0rtH9o0GmICLM9qahLDZ2kAPsVu31PbbQ0YWpQB8SlDGLZE5f9Pf3Lx7cc7oA==" }, "node_modules/@emurgo/cardano-serialization-lib-nodejs": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-11.5.0.tgz", - "integrity": "sha512-IlVABlRgo9XaTR1NunwZpWcxnfEv04ba2l1vkUz4S1W7Jt36F4CtffP+jPeqBZGnAe+fnUwo0XjIJC3ZTNToNQ==" + "version": "12.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-12.0.0-beta.1.tgz", + "integrity": "sha512-4BE7mSvSDWAmTXbzvNZg7NnaBoECv/QxsrNVKXdbaom5J9OhnnwvX3xhbEv98FAU2Awma8tLn9sHELZ46p2zbg==" }, "node_modules/@esbuild/android-arm": { "version": "0.18.11", @@ -499,12 +499,12 @@ } }, "node_modules/@mlabs-haskell/cardano-serialization-lib-gc": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-1.0.10.tgz", - "integrity": "sha512-7XFxxMvZH6oogWVP/teveVRUTRboWfY5fT0bkRDu68u9yb2HBjoMxkCkmF7MvJBVs2i0unt4UnzcrNm0dmHriQ==", + "version": "12.0.0-alpha.31", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-12.0.0-alpha.31.tgz", + "integrity": "sha512-QQBzl7rNRy7wk37uxzWJXCZfZRt3aTlfQb3kmb10ulY/janlUNETmS09OtiJbK/BdV5Fu7Gv+Mdda3ggMIL/bg==", "dependencies": { - "@emurgo/cardano-serialization-lib-browser": "^11.2.1", - "@emurgo/cardano-serialization-lib-nodejs": "^11.2.1", + "@emurgo/cardano-serialization-lib-browser": "^12.0.0-alpha.31", + "@emurgo/cardano-serialization-lib-nodejs": "^12.0.0-alpha.31", "@mlabs-haskell/csl-gc-wrapper": "^1.0.2" } }, @@ -519,23 +519,23 @@ "integrity": "sha512-JX9TON+nZbt+1TJ5MNV1Gcpxp3/m56x1/glDwzGtydrzQzyZbKg4XFw9Frib6fh89YVqjSFJ9xmVeIyDJ5DxTQ==" }, "node_modules/@mlabs-haskell/uplc-apply-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-2.0.1.tgz", - "integrity": "sha512-of0zlgBEk9vpTBFISDHADoYRzfbw84MQBMnGCXFhdSvdOIWsoGV4kvQJBdufYYh8BJNSyy0MLJ9uX7ARr7reig==", + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-1.0.29-alpha.tgz", + "integrity": "sha512-eTazItNZlOvuK/ZNHBKUOM3fL1mhRaY0GFYPtalo6PrkGcwZeSzlD6+B8Mbgmb18HusDZPSRi3zhp/urxOygFA==", "dependencies": { - "@mlabs-haskell/uplc-apply-args-browser": "^0.0.3", - "@mlabs-haskell/uplc-apply-args-nodejs": "^0.0.3" + "@mlabs-haskell/uplc-apply-args-browser": "^1.0.29-alpha", + "@mlabs-haskell/uplc-apply-args-nodejs": "^1.0.29-alpha2" } }, "node_modules/@mlabs-haskell/uplc-apply-args-browser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-0.0.3.tgz", - "integrity": "sha512-U2GFMN2Q2KLwTKjrwDXcOBznIvib3Jvdg79xmXDx3/L94PGoBfLN9bBByfVTwKP+ETRfJgRXwi5xxctwKXvT+g==" + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-1.0.29-alpha.tgz", + "integrity": "sha512-U/FEEI1UbHGRLblNHX4WxF5KpPR3S/C1rgXvN8X6gL2CDc4iAqvbP88d5vqwLL+seG2aO4pqqJXQnnKtlLHk7A==" }, "node_modules/@mlabs-haskell/uplc-apply-args-nodejs": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-0.0.3.tgz", - "integrity": "sha512-0uLz+67U1yiXvt3qu/7NBd0WK6LWXf9XteaInQk56RqRbxi4WKA/1Rm73VuciZzLWohXMDNbVNCiirmXi6k+9A==" + "version": "1.0.29-alpha2", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-1.0.29-alpha2.tgz", + "integrity": "sha512-91Lfk0SGH3cEHGE/F/If9lot42OJ6+bpM4HsHZr5PDvHFNOICFdTwLq/6BFmIClCkdZZNuDZIc1EpRCBgtdROw==" }, "node_modules/@noble/hashes": { "version": "1.3.1", @@ -5518,14 +5518,14 @@ "integrity": "sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==" }, "@emurgo/cardano-serialization-lib-browser": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-11.5.0.tgz", - "integrity": "sha512-qchOJ9NYDUz10tzs5r5QhP9hK0p+ZOlRiBwPdTAxqAYLw/8emYBkQQLaS8T1DF6EkeudyrgS00ym5Trw1fo4iA==" + "version": "12.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-12.0.0-beta.1.tgz", + "integrity": "sha512-Fj56XnZe+ilFVgf66SB6ajQXf0rtH9o0GmICLM9qahLDZ2kAPsVu31PbbQ0YWpQB8SlDGLZE5f9Pf3Lx7cc7oA==" }, "@emurgo/cardano-serialization-lib-nodejs": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-11.5.0.tgz", - "integrity": "sha512-IlVABlRgo9XaTR1NunwZpWcxnfEv04ba2l1vkUz4S1W7Jt36F4CtffP+jPeqBZGnAe+fnUwo0XjIJC3ZTNToNQ==" + "version": "12.0.0-beta.1", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-12.0.0-beta.1.tgz", + "integrity": "sha512-4BE7mSvSDWAmTXbzvNZg7NnaBoECv/QxsrNVKXdbaom5J9OhnnwvX3xhbEv98FAU2Awma8tLn9sHELZ46p2zbg==" }, "@esbuild/android-arm": { "version": "0.18.11", @@ -5752,12 +5752,12 @@ } }, "@mlabs-haskell/cardano-serialization-lib-gc": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-1.0.10.tgz", - "integrity": "sha512-7XFxxMvZH6oogWVP/teveVRUTRboWfY5fT0bkRDu68u9yb2HBjoMxkCkmF7MvJBVs2i0unt4UnzcrNm0dmHriQ==", + "version": "12.0.0-alpha.31", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/cardano-serialization-lib-gc/-/cardano-serialization-lib-gc-12.0.0-alpha.31.tgz", + "integrity": "sha512-QQBzl7rNRy7wk37uxzWJXCZfZRt3aTlfQb3kmb10ulY/janlUNETmS09OtiJbK/BdV5Fu7Gv+Mdda3ggMIL/bg==", "requires": { - "@emurgo/cardano-serialization-lib-browser": "^11.2.1", - "@emurgo/cardano-serialization-lib-nodejs": "^11.2.1", + "@emurgo/cardano-serialization-lib-browser": "^12.0.0-alpha.31", + "@emurgo/cardano-serialization-lib-nodejs": "^12.0.0-alpha.31", "@mlabs-haskell/csl-gc-wrapper": "^1.0.2" } }, @@ -5772,23 +5772,23 @@ "integrity": "sha512-JX9TON+nZbt+1TJ5MNV1Gcpxp3/m56x1/glDwzGtydrzQzyZbKg4XFw9Frib6fh89YVqjSFJ9xmVeIyDJ5DxTQ==" }, "@mlabs-haskell/uplc-apply-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-2.0.1.tgz", - "integrity": "sha512-of0zlgBEk9vpTBFISDHADoYRzfbw84MQBMnGCXFhdSvdOIWsoGV4kvQJBdufYYh8BJNSyy0MLJ9uX7ARr7reig==", + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args/-/uplc-apply-args-1.0.29-alpha.tgz", + "integrity": "sha512-eTazItNZlOvuK/ZNHBKUOM3fL1mhRaY0GFYPtalo6PrkGcwZeSzlD6+B8Mbgmb18HusDZPSRi3zhp/urxOygFA==", "requires": { - "@mlabs-haskell/uplc-apply-args-browser": "^0.0.3", - "@mlabs-haskell/uplc-apply-args-nodejs": "^0.0.3" + "@mlabs-haskell/uplc-apply-args-browser": "^1.0.29-alpha", + "@mlabs-haskell/uplc-apply-args-nodejs": "^1.0.29-alpha2" } }, "@mlabs-haskell/uplc-apply-args-browser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-0.0.3.tgz", - "integrity": "sha512-U2GFMN2Q2KLwTKjrwDXcOBznIvib3Jvdg79xmXDx3/L94PGoBfLN9bBByfVTwKP+ETRfJgRXwi5xxctwKXvT+g==" + "version": "1.0.29-alpha", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-browser/-/uplc-apply-args-browser-1.0.29-alpha.tgz", + "integrity": "sha512-U/FEEI1UbHGRLblNHX4WxF5KpPR3S/C1rgXvN8X6gL2CDc4iAqvbP88d5vqwLL+seG2aO4pqqJXQnnKtlLHk7A==" }, "@mlabs-haskell/uplc-apply-args-nodejs": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-0.0.3.tgz", - "integrity": "sha512-0uLz+67U1yiXvt3qu/7NBd0WK6LWXf9XteaInQk56RqRbxi4WKA/1Rm73VuciZzLWohXMDNbVNCiirmXi6k+9A==" + "version": "1.0.29-alpha2", + "resolved": "https://registry.npmjs.org/@mlabs-haskell/uplc-apply-args-nodejs/-/uplc-apply-args-nodejs-1.0.29-alpha2.tgz", + "integrity": "sha512-91Lfk0SGH3cEHGE/F/If9lot42OJ6+bpM4HsHZr5PDvHFNOICFdTwLq/6BFmIClCkdZZNuDZIc1EpRCBgtdROw==" }, "@noble/hashes": { "version": "1.3.1", diff --git a/templates/ctl-scaffold/package.json b/templates/ctl-scaffold/package.json index f34f4d9e3..4ec30b311 100644 --- a/templates/ctl-scaffold/package.json +++ b/templates/ctl-scaffold/package.json @@ -26,9 +26,9 @@ "license": "MIT", "dependencies": { "@mlabs-haskell/cardano-message-signing": "^1.0.1", - "@mlabs-haskell/cardano-serialization-lib-gc": "^1.0.10", + "@mlabs-haskell/cardano-serialization-lib-gc": "12.0.0-alpha.31", "@mlabs-haskell/json-bigint": "2.0.0", - "@mlabs-haskell/uplc-apply-args": "2.0.1", + "@mlabs-haskell/uplc-apply-args": "1.0.29-alpha", "@noble/secp256k1": "^1.7.0", "base64-js": "^1.5.1", "bignumber.js": "^9.1.1", diff --git a/templates/ctl-scaffold/packages.dhall b/templates/ctl-scaffold/packages.dhall index 06e2d6e6d..79537e48f 100644 --- a/templates/ctl-scaffold/packages.dhall +++ b/templates/ctl-scaffold/packages.dhall @@ -1,109 +1,3 @@ -{- -Welcome to your new Dhall package-set! - -Below are instructions for how to edit this file for most use -cases, so that you don't need to know Dhall to use it. - -## Warning: Don't Move This Top-Level Comment! - -Due to how `dhall format` currently works, this comment's -instructions cannot appear near corresponding sections below -because `dhall format` will delete the comment. However, -it will not delete a top-level comment like this one. - -## Use Cases - -Most will want to do one or both of these options: -1. Override/Patch a package's dependency -2. Add a package not already in the default package set - -This file will continue to work whether you use one or both options. -Instructions for each option are explained below. - -### Overriding/Patching a package - -Purpose: -- Change a package's dependency to a newer/older release than the - default package set's release -- Use your own modified version of some dependency that may - include new API, changed API, removed API by - using your custom git repo of the library rather than - the package set's repo - -Syntax: -where `entityName` is one of the following: -- dependencies -- repo -- version -------------------------------- -let upstream = -- -in upstream - with packageName.entityName = "new value" -------------------------------- - -Example: -------------------------------- -let upstream = -- -in upstream - with halogen.version = "master" - with halogen.repo = "https://example.com/path/to/git/repo.git" - - with halogen-vdom.version = "v4.0.0" -------------------------------- - -### Additions - -Purpose: -- Add packages that aren't already included in the default package set - -Syntax: -where `` is: -- a tag (i.e. "v4.0.0") -- a branch (i.e. "master") -- commit hash (i.e. "701f3e44aafb1a6459281714858fadf2c4c2a977") -------------------------------- -let upstream = -- -in upstream - with new-package-name = - { dependencies = - [ "dependency1" - , "dependency2" - ] - , repo = - "https://example.com/path/to/git/repo.git" - , version = - "" - } -------------------------------- - -Example: -------------------------------- -let upstream = -- -in upstream - with benchotron = - { dependencies = - [ "arrays" - , "exists" - , "profunctor" - , "strings" - , "quickcheck" - , "lcg" - , "transformers" - , "foldable-traversable" - , "exceptions" - , "node-fs" - , "node-buffer" - , "node-readline" - , "datetime" - , "now" - ] - , repo = - "https://github.com/hdgarrood/purescript-benchotron.git" - , version = - "v7.0.0" - } -------------------------------- --} let upstream = https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20230105/packages.dhall sha256:3e9fbc9ba03e9a1fcfd895f65e2d50ee2f5e86c4cd273f3d5c841b655a0e1bda @@ -266,21 +160,27 @@ let additions = , cardano-serialization-lib = { dependencies = [ "aeson" + , "aff" , "argonaut" , "bifunctors" , "bytearrays" , "effect" , "either" + , "enums" , "maybe" , "nullable" , "ordered-collections" + , "partial" , "prelude" , "profunctor" + , "spec" + , "transformers" , "tuples" + , "unsafe-coerce" ] , repo = "https://github.com/mlabs-haskell/purescript-cardano-serialization-lib" - , version = "26d437c3f398172c839b93b57c30eb43a7fa7ca0" + , version = "v1.0.0" } , cardano-plutus-data-schema = { dependencies = [ "prelude" ] @@ -394,14 +294,15 @@ let additions = , cardano-types = { dependencies = [ "aeson" + , "aff" , "arraybuffer-types" , "arrays" , "bifunctors" , "bytearrays" , "cardano-plutus-data-schema" , "cardano-serialization-lib" - , "console" , "control" + , "datetime" , "effect" , "either" , "encoding" @@ -415,6 +316,8 @@ let additions = , "literals" , "maybe" , "monad-logger" + , "mote" + , "mote-testplan" , "newtype" , "nonempty" , "nullable" @@ -422,11 +325,12 @@ let additions = , "partial" , "prelude" , "profunctor" + , "profunctor-lenses" , "quickcheck" , "rationals" , "record" , "safe-coerce" - , "strings" + , "spec" , "these" , "tuples" , "typelevel-prelude" @@ -435,7 +339,7 @@ let additions = , "unsafe-coerce" ] , repo = "https://github.com/mlabs-haskell/purescript-cardano-types" - , version = "v1.0.2" + , version = "56877b43ea392ef6486e37d52e1c37d8c2b8c42d" } , cardano-message-signing = { dependencies = @@ -535,7 +439,7 @@ let additions = ] , repo = "https://github.com/mlabs-haskell/purescript-cardano-transaction-builder" - , version = "v1.0.0" + , version = "48866bd7f5eeb8e0870c97384264d08bda9c2725" } , cardano-transaction-lib = { dependencies = @@ -601,6 +505,7 @@ let additions = , "node-process" , "node-readline" , "node-streams" + , "node-streams-aff" , "nonempty" , "now" , "nullable" @@ -609,6 +514,7 @@ let additions = , "ordered-collections" , "orders" , "parallel" + , "parsing" , "partial" , "plutus-types" , "posix-types" @@ -642,7 +548,7 @@ let additions = , "web-storage" ] , repo = "https://github.com/Plutonomicon/cardano-transaction-lib.git" - , version = "ddbd601e882276958fe260b8c492b5c7f489f174" + , version = "70ab312ebe7615444c895fd1072b6be91e47430d" } } diff --git a/templates/ctl-scaffold/spago-packages.nix b/templates/ctl-scaffold/spago-packages.nix index 7d7a8b3d1..6a2364874 100644 --- a/templates/ctl-scaffold/spago-packages.nix +++ b/templates/ctl-scaffold/spago-packages.nix @@ -271,11 +271,11 @@ let "cardano-serialization-lib" = pkgs.stdenv.mkDerivation { name = "cardano-serialization-lib"; - version = "26d437c3f398172c839b93b57c30eb43a7fa7ca0"; + version = "v1.0.0"; src = pkgs.fetchgit { url = "https://github.com/mlabs-haskell/purescript-cardano-serialization-lib"; - rev = "26d437c3f398172c839b93b57c30eb43a7fa7ca0"; - sha256 = "1ikz6j3jvls3cvl6znrw55f59abzdaf7ggd2x7j3f81m5cvkxggr"; + rev = "903bf0adeefedc4d065ad6523ad079433bdd8e32"; + sha256 = "0jlfxrx037hyd4v0j7l2b16yxlm6nw6qlnr992hj9nzip36vbpfg"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -283,11 +283,11 @@ let "cardano-transaction-builder" = pkgs.stdenv.mkDerivation { name = "cardano-transaction-builder"; - version = "v1.0.0"; + version = "48866bd7f5eeb8e0870c97384264d08bda9c2725"; src = pkgs.fetchgit { url = "https://github.com/mlabs-haskell/purescript-cardano-transaction-builder"; - rev = "70d219d6463466458fd381b55d84f458dcaee94a"; - sha256 = "1148x79lxq2rr897cfspkrjspwyjgw5xm9b9188wvgf568703r3w"; + rev = "48866bd7f5eeb8e0870c97384264d08bda9c2725"; + sha256 = "1k57z6l14679vphw6l8l52hfyj5a1pk7vbjn929nsv0axp5y7fxa"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -295,11 +295,11 @@ let "cardano-transaction-lib" = pkgs.stdenv.mkDerivation { name = "cardano-transaction-lib"; - version = "ddbd601e882276958fe260b8c492b5c7f489f174"; + version = "70ab312ebe7615444c895fd1072b6be91e47430d"; src = pkgs.fetchgit { url = "https://github.com/Plutonomicon/cardano-transaction-lib.git"; - rev = "ddbd601e882276958fe260b8c492b5c7f489f174"; - sha256 = "1dgh4sj0hni3knk9rcljpy9r1fcjnxfaf12jrwvvzi8i2kljd7hz"; + rev = "70ab312ebe7615444c895fd1072b6be91e47430d"; + sha256 = "02fg3y4i1q3hr0bz66zigfbkn562clb7yxv5sa0lz5a0zc8j017l"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -307,11 +307,11 @@ let "cardano-types" = pkgs.stdenv.mkDerivation { name = "cardano-types"; - version = "v1.0.2"; + version = "56877b43ea392ef6486e37d52e1c37d8c2b8c42d"; src = pkgs.fetchgit { url = "https://github.com/mlabs-haskell/purescript-cardano-types"; - rev = "40d9468a4712ad2bf57ebede19fae92208f082a0"; - sha256 = "1iawinsrsipqgjrcgv650x3i2iad1z2vlwlhvlcx9880qmv0m9gc"; + rev = "56877b43ea392ef6486e37d52e1c37d8c2b8c42d"; + sha256 = "04h78kivkm9nnz5pxjqvgsf7g9gfzzjn6crwj3lh1m7kxgb1yxds"; }; phases = "installPhase"; installPhase = "ln -s $src $out"; @@ -653,6 +653,18 @@ let installPhase = "ln -s $src $out"; }; + "freet" = pkgs.stdenv.mkDerivation { + name = "freet"; + version = "v7.0.0"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-contrib/purescript-freet.git"; + rev = "21be6fba22599a25812430dda6ba2ca8135920a1"; + sha256 = "006wbr7f19k7vs1jg4wgkwyx1q4wvvs2wqscfcxsp8fzfpn2yqw8"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; + "functions" = pkgs.stdenv.mkDerivation { name = "functions"; version = "v6.0.0"; @@ -1061,6 +1073,18 @@ let installPhase = "ln -s $src $out"; }; + "node-streams-aff" = pkgs.stdenv.mkDerivation { + name = "node-streams-aff"; + version = "v4.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/purescript-node/purescript-node-streams-aff.git"; + rev = "5c9b6937d14d6fed2273e3ac8780e3d256763e7d"; + sha256 = "1vm5s6mlawdpqamnqfyh1vbsybjm2s972m02h8mza4m47zlca948"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; + "node-url" = pkgs.stdenv.mkDerivation { name = "node-url"; version = "v6.0.0"; @@ -1409,6 +1433,18 @@ let installPhase = "ln -s $src $out"; }; + "safely" = pkgs.stdenv.mkDerivation { + name = "safely"; + version = "v4.0.1"; + src = pkgs.fetchgit { + url = "https://github.com/paf31/purescript-safely.git"; + rev = "19f854737e17b4d058e5a1504a960821db36e4ab"; + sha256 = "1mrpz19smjsamz4cci287z89q715chzxna0gpbvdgivlca4z6879"; + }; + phases = "installPhase"; + installPhase = "ln -s $src $out"; + }; + "spec" = pkgs.stdenv.mkDerivation { name = "spec"; version = "v7.2.0"; diff --git a/templates/ctl-scaffold/spago.dhall b/templates/ctl-scaffold/spago.dhall index 3d2677eb4..99316a39a 100644 --- a/templates/ctl-scaffold/spago.dhall +++ b/templates/ctl-scaffold/spago.dhall @@ -27,6 +27,7 @@ You can edit this file as you like. , "plutus-types" , "posix-types" , "prelude" + , "safely" , "spec" ] , packages = ./packages.dhall diff --git a/templates/ctl-scaffold/test/Main.purs b/templates/ctl-scaffold/test/Main.purs index 86c3f3e57..a48919ac7 100644 --- a/templates/ctl-scaffold/test/Main.purs +++ b/templates/ctl-scaffold/test/Main.purs @@ -1,4 +1,4 @@ --- | This module implements a test suite that uses Plutip to automate running +-- | This module implements a test suite that uses Cardano Testnet to automate running -- | contracts in temporary, private networks. module Test.Scaffold.Main (main, suite) where @@ -6,15 +6,15 @@ import Contract.Prelude import Contract.Numeric.BigNum as BigNum import Contract.Test.Mote (TestPlanM, interpretWithConfig) -import Contract.Test.Plutip - ( InitialUTxOs - , PlutipTest - , defaultPlutipConfig - , testPlutipContracts +import Contract.Test.Testnet + ( ContractTest + , InitialUTxOs + , defaultTestnetConfig , withKeyWallet , withWallets ) import Contract.Test.Utils (exitCode, interruptOnSignal) +import Ctl.Internal.Testnet.Contract (testTestnetContracts) import Data.Posix.Signal (Signal(SIGINT)) import Effect.Aff ( Milliseconds(Milliseconds) @@ -32,9 +32,9 @@ main = interruptOnSignal SIGINT =<< launchAff do flip cancelWith (effectCanceler (exitCode 1)) do interpretWithConfig defaultConfig { timeout = Just $ Milliseconds 70_000.0, exit = true } $ - testPlutipContracts defaultPlutipConfig suite + testTestnetContracts defaultTestnetConfig suite -suite :: TestPlanM PlutipTest Unit +suite :: TestPlanM ContractTest Unit suite = do group "Project tests" do test "Print PubKey" do diff --git a/test/Blockfrost/Contract.purs b/test/Blockfrost/Contract.purs index 138afc2cd..691862449 100644 --- a/test/Blockfrost/Contract.purs +++ b/test/Blockfrost/Contract.purs @@ -1,4 +1,4 @@ --- | Module to run `Test.Ctl.Plutip.Contract`s suite without Plutip, using +-- | Module to run `Test.Ctl.Testnet.Contract`s suite without Testnet, using -- | an already running instance of Blockfrost (preview). -- | -- | Use `npm run blockfrost-test` to run. @@ -13,7 +13,7 @@ import Data.Maybe (Maybe(Just)) import Data.Time.Duration (Milliseconds(Milliseconds)) import Effect (Effect) import Test.Ctl.Integration as IntegrationTest -import Test.Ctl.Plutip.Contract as Plutip +import Test.Ctl.Testnet.Contract as Testnet import Test.Spec.Runner (defaultConfig) as TestSpec main :: Effect Unit @@ -22,5 +22,5 @@ main = launchAff_ do TestSpec.defaultConfig { timeout = Just $ Milliseconds 1000000.0 } testnetConfig { suppressLogs = true } do - Plutip.suite + Testnet.suite IntegrationTest.stakingSuite diff --git a/test/Blockfrost/GenerateFixtures/Helpers.purs b/test/Blockfrost/GenerateFixtures/Helpers.purs index fd1b849d4..755e3e08a 100644 --- a/test/Blockfrost/GenerateFixtures/Helpers.purs +++ b/test/Blockfrost/GenerateFixtures/Helpers.purs @@ -24,6 +24,7 @@ import Ctl.Internal.Contract.QueryBackend , defaultConfirmTxDelay , mkBlockfrostBackendParams ) +import Ctl.Internal.ServerConfig (blockfrostPublicSanchonetServerConfig) import Data.Maybe (Maybe(Just, Nothing), maybe) import Data.String (take) as String import Effect.Exception (throw) @@ -68,6 +69,8 @@ blockfrostConfigFromApiKey = String.take networkPrefixLength >>> case _ of pure blockfrostPublicPreviewServerConfig "preprod" -> pure blockfrostPublicPreprodServerConfig + "sanchon" -> + pure blockfrostPublicSanchonetServerConfig _ -> throw "Failed to derive server config from Blockfrost API key" where diff --git a/test/Blockfrost/GenerateFixtures/ProtocolParameters.purs b/test/Blockfrost/GenerateFixtures/ProtocolParameters.purs new file mode 100644 index 000000000..097fe784f --- /dev/null +++ b/test/Blockfrost/GenerateFixtures/ProtocolParameters.purs @@ -0,0 +1,43 @@ +module Test.Ctl.Blockfrost.GenerateFixtures.ProtocolParameters (main) where + +import Prelude + +import Ctl.Internal.Service.Blockfrost + ( BlockfrostEndpoint(LatestProtocolParameters) + , BlockfrostRawResponse + , runBlockfrostServiceTestM + ) +import Ctl.Internal.Service.Blockfrost (getProtocolParameters) as Blockfrost +import Data.Either (either) +import Data.Maybe (Maybe(Just, Nothing)) +import Effect (Effect) +import Effect.Aff (Aff, launchAff_) +import Effect.Class (liftEffect) +import Effect.Exception (throw) +import Test.Ctl.Blockfrost.GenerateFixtures.Helpers + ( blockfrostBackend + , storeBlockfrostFixture + ) + +main :: Effect Unit +main = launchAff_ generateFixture + +generateFixture :: Aff Unit +generateFixture = do + backend <- liftEffect blockfrostBackend + pparams <- runBlockfrostServiceTestM (const (pure unit)) backend + (Just onBlockfrostRawResponse) + Nothing + Blockfrost.getProtocolParameters + either (liftEffect <<< throw <<< show) (const (pure unit)) + pparams + where + onBlockfrostRawResponse + :: BlockfrostEndpoint + -> BlockfrostRawResponse + -> Aff Unit + onBlockfrostRawResponse query rawResp = + case query of + LatestProtocolParameters -> + storeBlockfrostFixture zero "getProtocolParameters" rawResp + _ -> pure unit diff --git a/test/Blockfrost/ProtocolParameters.purs b/test/Blockfrost/ProtocolParameters.purs index ec9e596c8..2621c57b8 100644 --- a/test/Blockfrost/ProtocolParameters.purs +++ b/test/Blockfrost/ProtocolParameters.purs @@ -25,11 +25,11 @@ import Test.Spec.Runner (defaultConfig) blockfrostFixture :: String blockfrostFixture = - "blockfrost/getProtocolParameters/getProtocolParameters-2d2ce3159a465c84058d7eab67b1b345.json" + "blockfrost/getProtocolParameters/getProtocolParameters-980c21227fdfd9bad3d3a40ab41fde7a.json" ogmiosFixture :: String ogmiosFixture = - "ogmios/queryLedgerState-protocolParameters-68ba1141d17af9326cad70407ea3d7fb.json" + "ogmios/queryLedgerState-protocolParameters-44aa6959a9fdb9d5e92b85678918374e.json" loadFixture :: forall (a :: Type). DecodeAeson a => String -> Aff a loadFixture fixture = diff --git a/test/CoinSelection/CoinSelection.purs b/test/CoinSelection/CoinSelection.purs index 0a7066ded..c74466833 100644 --- a/test/CoinSelection/CoinSelection.purs +++ b/test/CoinSelection/CoinSelection.purs @@ -65,7 +65,7 @@ suite = SelectionState.suite UtxoIndex.suite group "performMultiAssetSelection" do - test "Performs a selection with zero outputs" do + test "Performs selection with zero outputs" do quickCheck' 30 prop_performMultiAssetSelection_empty runSelectionTestWithFixture selFixture0 "Selects only from the 'singletons' subset if possible" diff --git a/test/Fixtures.purs b/test/Fixtures.purs index 194d17dfd..dbd26864f 100644 --- a/test/Fixtures.purs +++ b/test/Fixtures.purs @@ -56,11 +56,6 @@ module Test.Ctl.Fixtures , txBinaryFixture5 , txBinaryFixture6 , txFixture1 - , txFixture2 - , txFixture3 - , txFixture4 - , txFixture5 - , txFixture6 , txInputFixture1 , txOutputBinaryFixture1 , txOutputFixture1 @@ -83,28 +78,12 @@ import Prelude import Aeson (Aeson, aesonNull, decodeAeson, fromString, parseJsonStringToAeson) import Cardano.AsCbor (decodeCbor) import Cardano.Types - ( AuxiliaryData(AuxiliaryData) - , Bech32String - , Certificate - ( StakeRegistration - , StakeDeregistration - , StakeDelegation - , PoolRegistration - , PoolRetirement - , GenesisKeyDelegation - , MoveInstantaneousRewardsCert - ) + ( Bech32String , Coin(Coin) , Credential(PubKeyHashCredential) , Ed25519KeyHash - , Epoch(Epoch) - , ExUnitPrices(ExUnitPrices) , ExUnits(ExUnits) - , GeneralTransactionMetadata(GeneralTransactionMetadata) , Language(PlutusV2) - , MIRPot(Reserves, Treasury) - , MIRToStakeCredentials(MIRToStakeCredentials) - , MoveInstantaneousReward(ToOtherPot, ToStakeCreds) , NativeScript ( TimelockExpiry , TimelockStart @@ -114,22 +93,12 @@ import Cardano.Types , ScriptPubkey ) , NetworkId(TestnetId, MainnetId) - , OutputDatum(OutputDatum) , PaymentPubKeyHash(PaymentPubKeyHash) , PlutusData(Integer, Bytes, Constr, List, Map) , PlutusScript(PlutusScript) - , PoolMetadata(PoolMetadata) - , PoolParams(PoolParams) - , PoolPubKeyHash(PoolPubKeyHash) - , ProposedProtocolParameterUpdates(ProposedProtocolParameterUpdates) - , ProtocolParamUpdate(ProtocolParamUpdate) - , ProtocolVersion(ProtocolVersion) , Redeemer(Redeemer) , RedeemerTag(Spend) - , Relay(SingleHostAddr, SingleHostName, MultiHostName) - , RewardAddress , ScriptHash - , ScriptRef(NativeScriptRef) , Slot(Slot) , Transaction(Transaction) , TransactionBody(TransactionBody) @@ -137,9 +106,6 @@ import Cardano.Types , TransactionOutput(TransactionOutput) , TransactionUnspentOutput(TransactionUnspentOutput) , TransactionWitnessSet(TransactionWitnessSet) - , URL(URL) - , UnitInterval(UnitInterval) - , Update(Update) , UtxoMap , Value(Value) , Vkey(Vkey) @@ -154,12 +120,7 @@ import Cardano.Types.Mint (Mint(Mint)) import Cardano.Types.MultiAsset as MultiAsset import Cardano.Types.PlutusScript (plutusV1Script, plutusV2Script) import Cardano.Types.PublicKey as PublicKey -import Cardano.Types.ScriptRef (ScriptRef(PlutusScriptRef)) -import Cardano.Types.TransactionMetadatum (TransactionMetadatum(Text)) -import Contract.Numeric.BigNum (BigNum) import Contract.Numeric.BigNum (fromInt, one, zero) as BigNum -import Contract.Prim.ByteArray (hexToByteArray) -import Data.Array as Array import Data.ByteArray ( ByteArray , byteArrayFromIntArrayUnsafe @@ -177,7 +138,6 @@ import JS.BigInt as BigInt import Node.Encoding (Encoding(UTF8)) import Node.FS.Sync (readTextFile) import Partial.Unsafe (unsafePartial) -import Test.Ctl.Fixtures.CostModels (costModelsFixture1) txOutputFixture1 :: TransactionOutput txOutputFixture1 = @@ -241,62 +201,9 @@ txOutputBinaryFixture1 = pkhBech32 :: Bech32String pkhBech32 = "addr_vkh1zuctrdcq6ctd29242w8g84nlz0q38t2lnv3zzfcrfqktx0c9tzp" -stake1 :: Credential -stake1 = unsafePartial $ fromJust do - PubKeyHashCredential <$> Ed25519KeyHash.fromBech32 pkhBech32 - ed25519KeyHash1 :: Ed25519KeyHash ed25519KeyHash1 = unsafePartial $ fromJust $ Ed25519KeyHash.fromBech32 pkhBech32 -bigNumOne :: BigNum -bigNumOne = BigNum.fromInt 1 - -rewardAddress1 :: RewardAddress -rewardAddress1 = { networkId: TestnetId, stakeCredential: wrap stake1 } - -proposedProtocolParameterUpdates1 :: ProposedProtocolParameterUpdates -proposedProtocolParameterUpdates1 = ProposedProtocolParameterUpdates $ - Map.fromFoldable - [ ( unsafePartial $ fromJust $ decodeCbor $ wrap $ hexToByteArrayUnsafe - "5d677265fa5bb21ce6d8c7502aca70b9316d10e958611f3c6b758f65" - ) /\ - ProtocolParamUpdate - { minfeeA: Just $ Coin $ BigNum.fromInt 1 - , minfeeB: Just $ Coin $ BigNum.fromInt 1 - , maxBlockBodySize: Just $ UInt.fromInt 10000 - , maxTxSize: Just $ UInt.fromInt 10000 - , maxBlockHeaderSize: Just $ UInt.fromInt 1000 - , keyDeposit: Just $ Coin $ BigNum.fromInt 1 - , poolDeposit: Just $ Coin $ BigNum.fromInt 1 - , maxEpoch: Just $ Epoch one - , nOpt: Just $ UInt.fromInt 1 - , poolPledgeInfluence: Just $ UnitInterval - { numerator: bigNumOne, denominator: bigNumOne } - , expansionRate: Just $ UnitInterval - { numerator: bigNumOne, denominator: bigNumOne } - , treasuryGrowthRate: Just $ UnitInterval - { numerator: bigNumOne, denominator: bigNumOne } - , protocolVersion: Just $ ProtocolVersion - { major: 1, minor: 1 } - , minPoolCost: Just $ wrap bigNumOne - , adaPerUtxoByte: Just $ wrap bigNumOne - , costModels: Just costModelsFixture1 - , executionCosts: Just $ ExUnitPrices - { memPrice: UnitInterval - { numerator: bigNumOne, denominator: bigNumOne } - , stepPrice: UnitInterval - { numerator: bigNumOne, denominator: bigNumOne } - } - , maxTxExUnits: Just $ ExUnits - { mem: BigNum.fromInt 1, steps: BigNum.fromInt 1 } - , maxBlockExUnits: Just $ ExUnits - { mem: BigNum.fromInt 1, steps: BigNum.fromInt 1 } - , maxValueSize: Just $ UInt.fromInt 1 - , collateralPercentage: Just $ UInt.fromInt 140 - , maxCollateralInputs: Just $ UInt.fromInt 10 - } - ] - -- | Extend this for your needs. type SampleTxConfig = { inputs :: Array TransactionInput } @@ -325,7 +232,6 @@ mkSampleTx startTx changes = , ttl , certs , withdrawals - , update , auxiliaryDataHash , validityStartInterval , mint @@ -336,6 +242,10 @@ mkSampleTx startTx changes = , networkId , collateralReturn , totalCollateral + , votingProposals + , votingProcedures + , currentTreasuryValue + , donation } , witnessSet , isValid @@ -351,7 +261,6 @@ mkSampleTx startTx changes = , ttl , certs , withdrawals - , update , auxiliaryDataHash , validityStartInterval , mint @@ -362,6 +271,10 @@ mkSampleTx startTx changes = , networkId , collateralReturn , totalCollateral + , votingProposals + , votingProcedures + , currentTreasuryValue + , donation } , witnessSet , isValid @@ -404,7 +317,6 @@ txFixture1 = , ttl: Nothing , certs: [] , withdrawals: Map.empty - , update: Nothing , auxiliaryDataHash: Nothing , validityStartInterval: Nothing , mint: Nothing @@ -415,92 +327,10 @@ txFixture1 = , networkId: Just MainnetId , collateralReturn: Nothing , totalCollateral: Nothing - } - , witnessSet: TransactionWitnessSet - { vkeys: [] - , nativeScripts: [] - , bootstraps: [] - , plutusScripts: [] - , plutusData: [] - , redeemers: [] - } - , isValid: true - , auxiliaryData: mempty - } - -txFixture2 :: Transaction -txFixture2 = - Transaction - { body: TransactionBody - { inputs: [ txInputFixture1 ] - , outputs: [ txOutputFixture2 ] - , fee: Coin $ BigNum.fromInt 177513 - , ttl: Nothing - , certs: [] - , withdrawals: Map.empty - , update: Nothing - , auxiliaryDataHash: Nothing - , validityStartInterval: Nothing - , mint: Nothing - , referenceInputs: mempty - , scriptDataHash: Nothing - , collateral: [] - , requiredSigners: [] - , networkId: Just MainnetId - , collateralReturn: Nothing - , totalCollateral: Nothing - } - , witnessSet: witnessSetFixture3Value - , isValid: true - , auxiliaryData: mempty - } - -txFixture3 :: Transaction -txFixture3 = - Transaction - { body: TransactionBody - { inputs: [ txInputFixture1 ] - , outputs: - [ TransactionOutput - { address: keyHashBaseAddress - { stake: - "0f45aaf1b2959db6e5ff94dbb1f823bf257680c3c723ac2d49f97546" - -- $ T.Bech32 "hbas_1xranhpfej50zdup5jy995dlj9juem9x36syld8wm465hz92acfp" - , payment: - "30fb3b8539951e26f034910a5a37f22cb99d94d1d409f69ddbaea971" - } - , amount: Value (Coin $ BigNum.fromInt 2353402) MultiAsset.empty - , datum: Nothing - , scriptRef: Nothing - } - , TransactionOutput - { address: keyHashBaseAddress - { stake: - "0f45aaf1b2959db6e5ff94dbb1f823bf257680c3c723ac2d49f97546" - -- $ T.Bech32 "hbas_1xranhpfej50zdup5jy995dlj9juem9x36syld8wm465hz92acfp" - , payment: - "30fb3b8539951e26f034910a5a37f22cb99d94d1d409f69ddbaea971" - } - , amount: Value (Coin $ BigNum.fromInt 1000000) MultiAsset.empty - , datum: Nothing - , scriptRef: Nothing - } - ] - , fee: Coin $ BigNum.fromInt 177513 - , ttl: Nothing - , certs: [] - , withdrawals: Map.empty - , update: Nothing - , referenceInputs: [ txInputFixture1 ] - , auxiliaryDataHash: Nothing - , validityStartInterval: Nothing - , mint: Nothing - , scriptDataHash: Nothing - , collateral: [] - , requiredSigners: [] - , networkId: Just MainnetId - , collateralReturn: Nothing - , totalCollateral: Nothing + , votingProposals: [] + , votingProcedures: mempty + , currentTreasuryValue: Nothing + , donation: Nothing } , witnessSet: TransactionWitnessSet { vkeys: [] @@ -531,230 +361,6 @@ mint0 = Mint $ Map.fromFoldable int1 :: Int.Int int1 = Int.newPositive BigNum.one -txFixture4 :: Transaction -txFixture4 = - Transaction - { body: TransactionBody - { inputs: [ txInputFixture1 ] - , outputs: - [ TransactionOutput - { address: keyHashBaseAddress - { stake: - "0f45aaf1b2959db6e5ff94dbb1f823bf257680c3c723ac2d49f97546" - -- $ T.Bech32 "hbas_1xranhpfej50zdup5jy995dlj9juem9x36syld8wm465hz92acfp" - , payment: - "30fb3b8539951e26f034910a5a37f22cb99d94d1d409f69ddbaea971" - } - , amount: Value (Coin $ BigNum.fromInt 2353402) MultiAsset.empty - , datum: Just $ OutputDatum plutusDataFixture1 - , scriptRef: Just $ PlutusScriptRef plutusScriptFixture1 - } - , TransactionOutput - { address: keyHashBaseAddress - { stake: - "0f45aaf1b2959db6e5ff94dbb1f823bf257680c3c723ac2d49f97546" - -- $ T.Bech32 "hbas_1xranhpfej50zdup5jy995dlj9juem9x36syld8wm465hz92acfp" - , payment: - "30fb3b8539951e26f034910a5a37f22cb99d94d1d409f69ddbaea971" - } - , amount: Value (Coin $ BigNum.fromInt 1000000) MultiAsset.empty - , datum: Nothing - , scriptRef: Just $ NativeScriptRef nativeScriptFixture5 - } - ] - , fee: Coin $ BigNum.fromInt 177513 - , ttl: Just $ Slot $ BigNum.fromInt 123 - , certs: - [ StakeRegistration $ wrap stake1 - , StakeDeregistration $ wrap stake1 - , StakeDelegation (wrap stake1) - (PoolPubKeyHash ed25519KeyHash1) - , PoolRegistration $ PoolParams - { operator: PoolPubKeyHash ed25519KeyHash1 - , vrfKeyhash: unsafePartial $ fromJust $ - hexToByteArray - "fbf6d41985670b9041c5bf362b5262cf34add5d265975de176d613ca05f37096" - >>= wrap >>> decodeCbor - , pledge: bigNumOne - , cost: bigNumOne - , margin: UnitInterval - { numerator: bigNumOne, denominator: bigNumOne } - , rewardAccount: - { networkId: MainnetId, stakeCredential: wrap stake1 } - , poolOwners: [ ed25519KeyHash1 ] - , relays: - [ SingleHostAddr - { port: Just 8080 - , ipv4: decodeCbor $ wrap $ byteArrayFromIntArrayUnsafe - [ 127, 0, 0, 1 ] - , ipv6: decodeCbor $ wrap $ byteArrayFromIntArrayUnsafe - $ Array.replicate 16 123 - } - , SingleHostName - { port: Just 8080 - , dnsName: "example.com" - } - , MultiHostName { dnsName: "example.com" } - ] - , poolMetadata: Just $ PoolMetadata - { url: URL "https://example.com/" - , hash: unsafePartial $ fromJust $ decodeCbor $ wrap $ - hexToByteArrayUnsafe - "94b8cac47761c1140c57a48d56ab15d27a842abff041b3798b8618fa84641f5a" - } - } - , PoolRetirement - { poolKeyHash: PoolPubKeyHash ed25519KeyHash1 - , epoch: Epoch one - } - , GenesisKeyDelegation - { genesisHash: unsafePartial $ fromJust $ decodeCbor $ wrap $ - hexToByteArrayUnsafe - "5d677265fa5bb21ce6d8c7502aca70b9316d10e958611f3c6b758f65" - , genesisDelegateHash: unsafePartial $ fromJust $ decodeCbor - $ wrap - $ - hexToByteArrayUnsafe - "5d677265fa5bb21ce6d8c7502aca70b9316d10e958611f3c6b758f65" - , vrfKeyhash: unsafePartial $ fromJust $ decodeCbor $ wrap $ - hexToByteArrayUnsafe - "fbf6d41985670b9041c5bf362b5262cf34add5d265975de176d613ca05f37096" - } - , MoveInstantaneousRewardsCert $ ToOtherPot - { pot: Reserves - , amount: wrap bigNumOne - } - , MoveInstantaneousRewardsCert $ ToStakeCreds - { pot: Treasury - , amounts: MIRToStakeCredentials $ Map.fromFoldable - [ wrap stake1 /\ Int.newPositive bigNumOne ] - } - ] - , withdrawals: Map.fromFoldable - [ rewardAddress1 /\ Coin BigNum.one ] - , update: Just $ Update - { proposedProtocolParameterUpdates: - proposedProtocolParameterUpdates1 - , epoch: Epoch zero - } - , auxiliaryDataHash: decodeCbor $ wrap - $ byteArrayFromIntArrayUnsafe - $ Array.replicate 32 0 - , validityStartInterval: Nothing -- Just $ Slot $ BigNum.fromInt 124 - , mint: Just $ Mint $ Map.fromFoldable - [ currencySymbol1 /\ Map.fromFoldable - [ tokenName2 /\ Int.newPositive BigNum.one - ] - ] - , referenceInputs: mempty - , scriptDataHash: Nothing - , collateral: [] - , requiredSigners: [ ed25519KeyHashFixture1 ] - , networkId: Just MainnetId - , collateralReturn: Just txOutputFixture1 - , totalCollateral: Just $ Coin $ BigNum.fromInt 5_000_000 - } - , witnessSet: TransactionWitnessSet - { vkeys: [] - , nativeScripts: [] - , bootstraps: [] - , plutusScripts: [] - , plutusData: [] - , redeemers: [] - } - , isValid: true - , auxiliaryData: mempty - } - -txFixture5 :: Transaction -txFixture5 = - Transaction - { body: TransactionBody - { inputs: [ txInputFixture1 ] - , outputs: - [ TransactionOutput - { address: keyHashBaseAddress - { stake: - "0f45aaf1b2959db6e5ff94dbb1f823bf257680c3c723ac2d49f97546" - -- $ T.Bech32 "hbas_1xranhpfej50zdup5jy995dlj9juem9x36syld8wm465hz92acfp" - , payment: - "30fb3b8539951e26f034910a5a37f22cb99d94d1d409f69ddbaea971" - } - , amount: Value (Coin $ BigNum.fromInt 490234098) - MultiAsset.empty - , datum: Just $ OutputDatum plutusDataFixture1 - , scriptRef: Just $ PlutusScriptRef plutusScriptFixture2 - } - ] - , fee: Coin $ BigNum.fromInt 89489324 - , ttl: Nothing - , certs: [] - , withdrawals: Map.empty - , update: Nothing - , auxiliaryDataHash: Nothing - , validityStartInterval: Nothing - , mint: Nothing - , referenceInputs: mempty - , scriptDataHash: Nothing - , collateral: [] - , requiredSigners: [] - , networkId: Just MainnetId - , collateralReturn: Nothing - , totalCollateral: Nothing - } - , witnessSet: TransactionWitnessSet - { vkeys: [] - , nativeScripts: [] - , bootstraps: [] - , plutusScripts: [] - , plutusData: [] - , redeemers: [] - } - , isValid: true - , auxiliaryData: mempty - } - -txFixture6 :: Transaction -txFixture6 = - Transaction - { body: TransactionBody - { inputs: [ txInputFixture1 ] - , outputs: [ txOutputFixture1 ] - , fee: Coin $ BigNum.fromInt 177513 - , ttl: Nothing - , certs: [] - , withdrawals: Map.empty - , update: Nothing - , auxiliaryDataHash: Nothing - , validityStartInterval: Nothing - , mint: Nothing - , referenceInputs: mempty - , scriptDataHash: Nothing - , collateral: [] - , requiredSigners: [] - , networkId: Just MainnetId - , collateralReturn: Nothing - , totalCollateral: Nothing - } - , witnessSet: TransactionWitnessSet - { vkeys: [] - , nativeScripts: [] - , bootstraps: [] - , plutusScripts: [] - , plutusData: [] - , redeemers: [] - } - , isValid: true - , auxiliaryData: Just $ AuxiliaryData - { metadata: Just $ GeneralTransactionMetadata - ( Map.fromFoldable - [ BigNum.fromInt 8 /\ Text "foo" ] - ) - , nativeScripts: Nothing - , plutusScripts: Nothing - } - } - -- | To quickly check a serialized tx, create a file with the following contents: -- | -- | diff --git a/test/Fixtures/OgmiosEvaluateTxFailScriptErrorsFixture.json b/test/Fixtures/OgmiosEvaluateTxFailScriptErrorsFixture.json index ead071bbe..5b2976564 100644 --- a/test/Fixtures/OgmiosEvaluateTxFailScriptErrorsFixture.json +++ b/test/Fixtures/OgmiosEvaluateTxFailScriptErrorsFixture.json @@ -1 +1,64 @@ -{"jsonrpc":"2.0","method":"evaluateTransaction","error":{"code":3010,"message":"Some scripts of the transactions terminated with error(s).","data":[{"validator":"certificate:11","error":{"code":3117,"message":"The transaction contains unknown UTxO references as inputs. This can happen if the inputs you're trying to spend have already been spent, or if you've simply referred to non-existing UTxO altogether. The field 'data.unknownOutputReferences' indicates all unknown inputs.","data":{"unknownOutputReferences":[{"transaction":{"id":"731392618255aff0cd24712e6bd234db958cc065f8eff4f5e4476d4825cda180"},"index":1}]}}},{"validator":"certificate:15","error":{"code":3011,"message":"An associated script witness is missing. Indeed, any script used in a transaction (when spending, minting, withdrawing or publishing certificates) must be provided in full with the transaction. Scripts must therefore be added either to the witness set or provided as a reference inputs should you use Plutus V2+ and a format from Babbage and beyond.","data":{"missingScripts":["mint:11"]}}},{"validator":"withdrawal:16","error":{"code":3111,"message":"Transaction failed because some Plutus scripts are missing their associated datums. 'data.missingDatums' contains a set of data hashes for the missing datums. Ensure all Plutus scripts have an associated datum in the transaction's witness set or, are provided through inline datums in reference inputs.","data":{"missingDatums":["342ab6aef80f619bb09dfe2e8a24f8937734d4150d00cb1aa93222ce808c290f"]}}}]},"id":"mK9IYY6GandR"} +{ + "jsonrpc": "2.0", + "method": "evaluateTransaction", + "error": { + "code": 3010, + "message": "Some scripts of the transactions terminated with error(s).", + "data": [ + { + "validator": { + "index": 11, + "purpose": "publish" + }, + "error": { + "code": 3117, + "message": "The transaction contains unknown UTxO references as inputs. This can happen if the inputs you're trying to spend have already been spent, or if you've simply referred to non-existing UTxO altogether. The field 'data.unknownOutputReferences' indicates all unknown inputs.", + "data": { + "unknownOutputReferences": [ + { + "transaction": { + "id": "731392618255aff0cd24712e6bd234db958cc065f8eff4f5e4476d4825cda180" + }, + "index": 1 + } + ] + } + } + }, + { + "validator": { + "index": 11, + "purpose": "publish" + }, + "error": { + "code": 3011, + "message": "An associated script witness is missing. Indeed, any script used in a transaction (when spending, minting, withdrawing or publishing certificates) must be provided in full with the transaction. Scripts must therefore be added either to the witness set or provided as a reference inputs should you use Plutus V2+ and a format from Babbage and beyond.", + "data": { + "missingScripts": [ + { + "index": 11, + "purpose": "mint" + } + ] + } + } + }, + { + "validator": { + "index": 16, + "purpose": "withdraw" + }, + "error": { + "code": 3111, + "message": "Transaction failed because some Plutus scripts are missing their associated datums. 'data.missingDatums' contains a set of data hashes for the missing datums. Ensure all Plutus scripts have an associated datum in the transaction's witness set or, are provided through inline datums in reference inputs.", + "data": { + "missingDatums": [ + "342ab6aef80f619bb09dfe2e8a24f8937734d4150d00cb1aa93222ce808c290f" + ] + } + } + } + ] + }, + "id": "mK9IYY6GandR" +} diff --git a/test/Fixtures/OgmiosEvaluateTxInvalidPointerFormatFixture.json b/test/Fixtures/OgmiosEvaluateTxInvalidPointerFormatFixture.json index 57a1e3507..d4cfab2e6 100644 --- a/test/Fixtures/OgmiosEvaluateTxInvalidPointerFormatFixture.json +++ b/test/Fixtures/OgmiosEvaluateTxInvalidPointerFormatFixture.json @@ -3,21 +3,30 @@ "method": "evaluateTransaction", "result": [ { - "validator": "spend", + "validator": { + "index": 0, + "purpose": "invalid" + }, "budget": { "memory": 2766916028110716146, "cpu": 6325731070934221229 } }, { - "validator": "certificate:3", + "validator": { + "index": 3, + "purpose": "publish" + }, "budget": { "memory": 4926587050210136942, "cpu": 2982577810151428748 } }, { - "validator": "withdrawal:8", + "validator": { + "index": 8, + "purpose": "withdraw" + }, "budget": { "memory": 3603965291794951667, "cpu": 937555587227912939 diff --git a/test/Fixtures/OgmiosEvaluateTxValidRespFixture.json b/test/Fixtures/OgmiosEvaluateTxValidRespFixture.json index dd82d93ad..0b2782ecd 100644 --- a/test/Fixtures/OgmiosEvaluateTxValidRespFixture.json +++ b/test/Fixtures/OgmiosEvaluateTxValidRespFixture.json @@ -3,21 +3,30 @@ "method": "evaluateTransaction", "result": [ { - "validator": "spend:1", + "validator": { + "index": 1, + "purpose": "spend" + }, "budget": { "memory": 2766916028110716146, "cpu": 6325731070934221229 } }, { - "validator": "certificate:3", + "validator": { + "index": 3, + "purpose": "publish" + }, "budget": { "memory": 4926587050210136942, "cpu": 2982577810151428748 } }, { - "validator": "withdrawal:0", + "validator": { + "index": 0, + "purpose": "withdraw" + }, "budget": { "memory": 3603965291794951667, "cpu": 937555587227912939 diff --git a/test/Ogmios/Aeson.purs b/test/Ogmios/Aeson.purs index f8af9bddd..b60492e4a 100644 --- a/test/Ogmios/Aeson.purs +++ b/test/Ogmios/Aeson.purs @@ -29,7 +29,7 @@ import Data.Bifunctor (lmap) import Data.Either (Either(Left, Right), hush) import Data.Map as Map import Data.Maybe (Maybe(Just, Nothing), maybe) -import Data.String (toLower) +import Data.String (null, toLower) as String import Data.String.Regex (match, regex) import Data.String.Regex.Flags (noFlags) import Data.Traversable (for_) @@ -127,16 +127,19 @@ loadFixtures = do catMaybes <$> flip parTraverse (ourFixtures <> ogmiosFixtures) \fp -> do let bn = basename fp contents <- readTextFile UTF8 fp - aeson <- liftEither $ lmap - (error <<< ((bn <> "\n ") <> _) <<< printJsonDecodeError) - (Aeson.parseJsonStringToAeson contents) - pure case pattern >>= flip match bn >>> map tail of - Just [ Just query ] -> Just - { query - , bn - , aeson - } - _ -> Nothing + -- ignore empty (corrupted) fixtures + if String.null contents then pure Nothing + else do + aeson <- liftEither $ lmap + (error <<< ((bn <> "\n ") <> _) <<< printJsonDecodeError) + (Aeson.parseJsonStringToAeson contents) + pure case pattern >>= flip match bn >>> map tail of + Just [ Just query ] -> Just + { query + , bn + , aeson + } + _ -> Nothing let groupedFiles = @@ -151,12 +154,12 @@ suite = group "Ogmios Aeson tests" do groupedFiles <- lift loadFixtures let (tested' :: Map.Map String Check) = Map.fromFoldable $ map - (\(q /\ c) -> (toLower q /\ c)) + (\(q /\ c) -> (String.toLower q /\ c)) tested for_ groupedFiles \(query /\ files') -> let - query' = toLower query + query' = String.toLower query in let test' ch = test (query <> " (" <> show (length files') <> ")") $ for_ diff --git a/test/Ogmios/GenerateFixtures.purs b/test/Ogmios/GenerateFixtures.purs index a09f95977..f1ae3eca6 100644 --- a/test/Ogmios/GenerateFixtures.purs +++ b/test/Ogmios/GenerateFixtures.purs @@ -127,7 +127,6 @@ main = , mkQuery' "queryLedgerState/protocolParameters" , mkQuery' "queryLedgerState/stakePools" ] - resps <- flip parTraverse queries \(Query qc method args) -> do resp <- mkRequestAff listeners ws (\_ _ -> pure unit) qc identity args pure { resp, method } diff --git a/test/Plutip.purs b/test/Plutip.purs deleted file mode 100644 index 2a582b224..000000000 --- a/test/Plutip.purs +++ /dev/null @@ -1,93 +0,0 @@ -module Test.Ctl.Plutip - ( main - ) where - -import Prelude - -import Contract.Test.Plutip - ( PlutipConfig - , noWallet - , runPlutipTestPlan - , testPlutipContracts - ) -import Contract.Test.Utils (exitCode, interruptOnSignal) -import Ctl.Internal.Contract.Monad (wrapQueryM) -import Ctl.Internal.Plutip.Server - ( checkPlutipServer - , startPlutipCluster - , startPlutipServer - , stopChildProcessWithPort - , stopPlutipCluster - ) -import Ctl.Internal.Plutip.Types (StopClusterResponse(StopClusterSuccess)) -import Data.Maybe (Maybe(Just)) -import Data.Posix.Signal (Signal(SIGINT)) -import Effect (Effect) -import Effect.Aff - ( Aff - , Milliseconds(Milliseconds) - , bracket - , cancelWith - , effectCanceler - , launchAff - ) -import Mote (group, test) -import Mote.Monad (mapTest) -import Mote.TestPlanM (TestPlanM) -import Mote.TestPlanM as Utils -import Test.Ctl.BalanceTx.ChangeGeneration as ChangeGeneration -import Test.Ctl.Plutip.Common (config) -import Test.Ctl.Plutip.Contract as Contract -import Test.Ctl.Plutip.Contract.Assert as Assert -import Test.Ctl.Plutip.Contract.ClusterParameters as ClusterParameters -import Test.Ctl.Plutip.Contract.Mnemonics as Mnemonics -import Test.Ctl.Plutip.Contract.OgmiosMempool as OgmiosMempool -import Test.Ctl.Plutip.ExUnits as ExUnits -import Test.Ctl.Plutip.Logging as Logging -import Test.Ctl.Plutip.SameWallets as SameWallets -import Test.Ctl.Plutip.UtxoDistribution as UtxoDistribution -import Test.Ctl.QueryM.AffInterface as QueryM.AffInterface -import Test.Spec.Assertions (shouldSatisfy) -import Test.Spec.Runner (defaultConfig) - --- Run with `npm run plutip-test` -main :: Effect Unit -main = interruptOnSignal SIGINT =<< launchAff do - flip cancelWith (effectCanceler (exitCode 1)) do - Utils.interpretWithConfig - defaultConfig { timeout = Just $ Milliseconds 70_000.0, exit = true } - $ group "Plutip" do - testPlutipContracts config Mnemonics.suite - group "ExUnits - normal limits" do - testPlutipContracts config $ ExUnits.mkFailingSuite 3000 - testPlutipContracts config $ ExUnits.mkSuite 2550 - group "ExUnits - relaxed limits" do - testPlutipContracts configWithMaxExUnits $ ExUnits.mkSuite 3000 - testPlutipContracts config Assert.suite - Logging.suite - testStartPlutipCluster - testPlutipContracts config $ do - flip mapTest QueryM.AffInterface.suite - (noWallet <<< wrapQueryM) - ChangeGeneration.suite - Contract.suite - UtxoDistribution.suite - testPlutipContracts config OgmiosMempool.suite - runPlutipTestPlan config SameWallets.suite - ClusterParameters.runTest - -configWithMaxExUnits :: PlutipConfig -configWithMaxExUnits = config - { clusterConfig = config.clusterConfig { raiseExUnitsToMax = true } } - -testStartPlutipCluster :: TestPlanM (Aff Unit) Unit -testStartPlutipCluster = group "Server" do - test "startPlutipCluster / stopPlutipCluster" do - bracket (startPlutipServer config) - (stopChildProcessWithPort config.port) $ const do - checkPlutipServer config - _startRes <- startPlutipCluster config [ [] ] - stopRes <- stopPlutipCluster config - stopRes `shouldSatisfy` case _ of - StopClusterSuccess -> true - _ -> false diff --git a/test/Plutip/Contract/ClusterParameters.purs b/test/Plutip/Contract/ClusterParameters.purs deleted file mode 100644 index a7239e963..000000000 --- a/test/Plutip/Contract/ClusterParameters.purs +++ /dev/null @@ -1,52 +0,0 @@ -module Test.Ctl.Plutip.Contract.ClusterParameters (mkSuite, runTest) where - -import Prelude - -import Cardano.Types.BigNum as BigNum -import Contract.Test (ContractTest, InitialUTxOs, withWallets) -import Contract.Test.Mote (TestPlanM) -import Contract.Test.Plutip (testPlutipContracts) -import Ctl.Internal.Contract.Hooks (ClusterParameters) -import Data.Array as Array -import Data.Maybe (Maybe(Just)) -import Data.Tuple.Nested (type (/\), (/\)) -import Effect.Aff (Aff) -import Effect.Class (liftEffect) -import Effect.Ref (Ref) -import Effect.Ref as Ref -import Mote (group, test) -import Test.Ctl.Plutip.Common (config) -import Test.Spec.Assertions (shouldEqual) - -runTest :: TestPlanM (Aff Unit) Unit -runTest = - do - clusterParamsRef <- - liftEffect $ Ref.new - { privateKeys: [] - , nodeSocketPath: "" - , nodeConfigPath: "" - , privateKeysDirectory: "" - } - testPlutipContracts - config - { hooks = config.hooks - { onClusterStartup = Just (flip Ref.write clusterParamsRef) } - } - (mkSuite clusterParamsRef) - -mkSuite :: Ref ClusterParameters -> TestPlanM ContractTest Unit -mkSuite ref = do - group "Getting ClusterParameters" do - let - initialUtxos :: InitialUTxOs - initialUtxos = - [ BigNum.fromInt 2_000_000_000, BigNum.fromInt 2_000_000_000 ] - - distribution :: InitialUTxOs /\ InitialUTxOs - distribution = initialUtxos /\ initialUtxos - test "getting cluster parameters" do - withWallets distribution \(_alice /\ _bob) -> do - clusterParams <- liftEffect $ Ref.read ref - Array.length clusterParams.privateKeys `shouldEqual` 2 - pure unit diff --git a/test/Plutus/Time.purs b/test/Plutus/Time.purs index 2aa8e9ca7..29bda59ab 100644 --- a/test/Plutus/Time.purs +++ b/test/Plutus/Time.purs @@ -43,13 +43,13 @@ import Ctl.Internal.Types.Interval import Ctl.Internal.Types.SystemStart (sysStartFromOgmiosTimestampUnsafe) import Data.Int as Int import Data.Maybe (Maybe(Just, Nothing)) -import Data.Newtype (unwrap, wrap) +import Data.Newtype (wrap) import Data.UInt as UInt import Effect.Aff (Aff) import JS.BigInt as BigInt import Mote (group) import Mote.TestPlanM (TestPlanM) -import Test.Ctl.Utils (toFromAesonTest, toFromAesonTestWith) +import Test.Ctl.Utils (toFromAesonTest) slotFixture :: Slot slotFixture = mkSlot 34892625 @@ -217,21 +217,6 @@ eraSummariesFixture = EraSummaries } ] -eraSummaryLengthToSeconds :: EraSummary -> EraSummary -eraSummaryLengthToSeconds old@(EraSummary { parameters }) = - let - newSlotLength :: SlotLength - newSlotLength = wrap $ 1e-3 * unwrap (unwrap parameters).slotLength - - newParameters :: EraSummaryParameters - newParameters = wrap $ (unwrap parameters) { slotLength = newSlotLength } - in - wrap (unwrap old) { parameters = newParameters } - -eraSummariesLengthToSeconds :: OgmiosEraSummaries -> OgmiosEraSummaries -eraSummariesLengthToSeconds (OgmiosEraSummaries values) = - wrap $ wrap (eraSummaryLengthToSeconds <$> unwrap values) - suite :: TestPlanM (Aff Unit) Unit suite = do group "Time-related Aeson representation tests" do @@ -260,7 +245,6 @@ suite = do toFromAesonTest "AbsTime" absTimeFixture toFromAesonTest "RelSlot" relSlotFixture toFromAesonTest "RelTime" relTimeFixture - toFromAesonTestWith "EraSummaries" eraSummariesLengthToSeconds $ - OgmiosEraSummaries eraSummariesFixture + toFromAesonTest "EraSummaries" $ OgmiosEraSummaries eraSummariesFixture toFromAesonTest "SystemStart" systemStartFixture toFromAesonTest "CurrentEpoch" currentEpochFixture diff --git a/test/ProtocolParams.purs b/test/ProtocolParams.purs index fa065c52e..1af299e7a 100644 --- a/test/ProtocolParams.purs +++ b/test/ProtocolParams.purs @@ -16,7 +16,7 @@ import Test.Spec.Assertions (shouldSatisfy) suite :: TestPlanM (Aff Unit) Unit suite = do aeson <- Utils.readAeson - "./fixtures/test/ogmios/queryLedgerState-protocolParameters-68ba1141d17af9326cad70407ea3d7fb.json" + "./fixtures/test/ogmios/queryLedgerState-protocolParameters-44aa6959a9fdb9d5e92b85678918374e.json" group "ProtocolParameters parser" $ do test "is able to parse ogmios response fixture" $ (decodeAeson aeson :: Either _ { result :: OgmiosProtocolParameters }) diff --git a/test/Serialization.purs b/test/Serialization.purs index 19b957f41..e0971729b 100644 --- a/test/Serialization.purs +++ b/test/Serialization.purs @@ -4,7 +4,7 @@ import Prelude import Cardano.AsCbor (decodeCbor, encodeCbor) import Cardano.Serialization.Lib (publicKey_fromBytes) -import Cardano.Types (PublicKey, Transaction, TransactionHash) +import Cardano.Types (PublicKey, TransactionHash) import Cardano.Types.BigNum (fromString, one) as BN import Cardano.Types.PlutusData as PD import Cardano.Types.PublicKey as PublicKey @@ -21,17 +21,7 @@ import Effect.Exception (error) import JS.BigInt as BigInt import Mote (group, test) import Mote.TestPlanM (TestPlanM) -import Test.Ctl.Fixtures - ( txFixture1 - , txFixture2 - , txFixture3 - , txFixture4 - , txFixture5 - , txFixture6 - , txOutputBinaryFixture1 - , txOutputFixture1 - ) -import Test.Ctl.Utils (errMaybe) +import Test.Ctl.Fixtures (txOutputBinaryFixture1, txOutputFixture1) import Test.Spec.Assertions (shouldEqual, shouldSatisfy) suite :: TestPlanM (Aff Unit) Unit @@ -106,19 +96,6 @@ suite = do test "TransactionOutput serialization" $ liftEffect do let bytes = unwrap $ encodeCbor txOutputFixture1 byteArrayToHex bytes `shouldEqual` txOutputBinaryFixture1 - group "Transaction Roundtrips" $ do - test "Deserialization is inverse to serialization #1" $ - txSerializedRoundtrip txFixture1 - test "Deserialization is inverse to serialization #2" $ - txSerializedRoundtrip txFixture2 - test "Deserialization is inverse to serialization #3" $ - txSerializedRoundtrip txFixture3 - test "Deserialization is inverse to serialization #4" $ - txSerializedRoundtrip txFixture4 - test "Deserialization is inverse to serialization #5" $ - txSerializedRoundtrip txFixture5 - test "Deserialization is inverse to serialization #6" $ - txSerializedRoundtrip txFixture6 group "BigNum tests" $ do test "BigNum ok" $ do let bn = "18446744073709551615" @@ -129,11 +106,3 @@ suite = do test "BigNum negative" $ do let bnNeg = "-1" BN.fromString bnNeg `shouldSatisfy` isNothing - -txSerializedRoundtrip :: Transaction -> Aff Unit -txSerializedRoundtrip tx = do - let serialized = encodeCbor tx - (deserialized :: Transaction) <- errMaybe "Cannot deserialize bytes" $ - decodeCbor serialized - let expected = encodeCbor deserialized - serialized `shouldEqual` expected diff --git a/test/Testnet.purs b/test/Testnet.purs new file mode 100644 index 000000000..8c33f11f3 --- /dev/null +++ b/test/Testnet.purs @@ -0,0 +1,79 @@ +module Test.Ctl.Testnet + ( main + ) where + +import Prelude + +import Contract.Test (noWallet) +import Contract.Test.Testnet (defaultTestnetConfig) +import Contract.Test.Utils (exitCode, interruptOnSignal) +import Ctl.Internal.Contract.Monad (wrapQueryM) +import Ctl.Internal.Testnet.Contract (runTestnetTestPlan, testTestnetContracts) +import Data.Maybe (Maybe(Just)) +import Data.Posix.Signal (Signal(SIGINT)) +import Effect (Effect) +import Effect.Aff + ( Milliseconds(Milliseconds) + , cancelWith + , effectCanceler + , launchAff + ) +import Mote (group) +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.Contract as Contract +import Test.Ctl.Testnet.Contract.Assert as Assert +import Test.Ctl.Testnet.Contract.Mnemonics as Mnemonics +import Test.Ctl.Testnet.Contract.OgmiosMempool as OgmiosMempool +import Test.Ctl.Testnet.ExUnits as ExUnits +import Test.Ctl.Testnet.Logging as Logging +import Test.Ctl.Testnet.SameWallets as SameWallets +import Test.Ctl.Testnet.UtxoDistribution as UtxoDistribution +import Test.Spec.Runner (defaultConfig) + +-- Run with `npm run testnet-test` +main :: Effect Unit +main = interruptOnSignal SIGINT =<< launchAff do + let config = defaultTestnetConfig + 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 + UtxoDistribution.suite + testTestnetContracts config OgmiosMempool.suite + runTestnetTestPlan config SameWallets.suite +-- FIXME: ClusterParameters.runTest + +{- +configWithMaxExUnits :: PlutipConfig +configWithMaxExUnits = config + { clusterConfig = config.clusterConfig { raiseExUnitsToMax = true } } + +testStartPlutipCluster :: TestPlanM (Aff Unit) Unit +testStartPlutipCluster = group "Server" do + test "startPlutipCluster / stopPlutipCluster" do + bracket (startPlutipServer config) + (stopChildProcessWithPort config.port) $ const do + checkPlutipServer config + _startRes <- startPlutipCluster config [ [] ] + stopRes <- stopPlutipCluster config + stopRes `shouldSatisfy` case _ of + StopClusterSuccess -> true + _ -> false + -} diff --git a/test/Plutip/Common.purs b/test/Testnet/Common.purs similarity index 69% rename from test/Plutip/Common.purs rename to test/Testnet/Common.purs index fbca65804..00f035269 100644 --- a/test/Plutip/Common.purs +++ b/test/Testnet/Common.purs @@ -1,22 +1,16 @@ -module Test.Ctl.Plutip.Common - ( config - , privateStakeKey +module Test.Ctl.Testnet.Common + ( privateStakeKey ) where import Prelude import Cardano.Wallet.Key (PrivateStakeKey) import Contract.Keys (privateKeyFromBytes) -import Contract.Test.Plutip (defaultPlutipConfig) -import Ctl.Internal.Plutip.Types (PlutipConfig) import Data.ByteArray (hexToByteArray) import Data.Maybe (fromJust) import Data.Newtype (wrap) import Partial.Unsafe (unsafePartial) -config :: PlutipConfig -config = defaultPlutipConfig - privateStakeKey :: PrivateStakeKey privateStakeKey = wrap $ unsafePartial $ fromJust $ privateKeyFromBytes =<< map wrap diff --git a/test/Plutip/Contract.purs b/test/Testnet/Contract.purs similarity index 98% rename from test/Plutip/Contract.purs rename to test/Testnet/Contract.purs index 26a197d98..595120c86 100644 --- a/test/Plutip/Contract.purs +++ b/test/Testnet/Contract.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Plutip.Contract +module Test.Ctl.Testnet.Contract ( suite ) where @@ -16,7 +16,7 @@ import Cardano.Transaction.Builder import Cardano.Types ( Address , Credential(PubKeyHashCredential, ScriptHashCredential) - , GeneralTransactionMetadata(GeneralTransactionMetadata) + , GeneralTransactionMetadata , PaymentCredential(PaymentCredential) , StakeCredential(StakeCredential) , TransactionUnspentOutput(TransactionUnspentOutput) @@ -27,7 +27,7 @@ import Cardano.Types.AssetName as AssetName import Cardano.Types.Coin as Coin import Cardano.Types.Int as Int import Cardano.Types.Mint as Mint -import Cardano.Types.PlutusData as PlutusData +import Cardano.Types.PlutusData (unit) as PlutusData import Cardano.Types.PlutusScript as PlutusScript import Cardano.Types.RedeemerDatum as RedeemerDatum import Cardano.Types.TransactionUnspentOutput (toUtxoMap) @@ -77,7 +77,7 @@ import Contract.Scripts ) import Contract.Test (ContractTest) import Contract.Test.Assert (runChecks) -import Contract.Test.Plutip +import Contract.Test.Testnet ( InitialUTxOs , InitialUTxOsWithStakeKey , withStakeKey @@ -98,7 +98,7 @@ import Contract.Transaction , balanceTxE , buildTx , createAdditionalUtxos - , getTxMetadata + , getTxAuxiliaryData , lookupTxHash , signTransaction , submit @@ -193,9 +193,9 @@ import Test.Ctl.Fixtures , partiallyAppliedScriptFixture , unappliedScriptFixture ) -import Test.Ctl.Plutip.Common (privateStakeKey) -import Test.Ctl.Plutip.Utils (getLockedInputs, submitAndLog) -import Test.Ctl.Plutip.UtxoDistribution (checkUtxoDistribution) +import Test.Ctl.Testnet.Common (privateStakeKey) +import Test.Ctl.Testnet.Utils (getLockedInputs, submitAndLog) +import Test.Ctl.Testnet.UtxoDistribution (checkUtxoDistribution) import Test.Spec.Assertions (shouldEqual, shouldNotEqual, shouldSatisfy) suite :: TestPlanM ContractTest Unit @@ -203,7 +203,6 @@ suite = do group "WaitUntilSlot" do test "wait for slot far in the future" do withWallets unit \_ -> do - -- Plutip increases last known slot by 80 at a time void $ waitUntilSlot $ Slot $ BigNum.fromInt 10 void $ waitUntilSlot $ Slot $ BigNum.fromInt 160 void $ waitUntilSlot $ Slot $ BigNum.fromInt 161 @@ -942,17 +941,16 @@ suite = do payToTest :: ValidatorHash -> Contract TransactionHash payToTest vhash = do let - constraints = - Constraints.mustPayToScript - vhash - datum1 - Constraints.DatumWitness - (Value.lovelaceValueOf $ BigNum.fromInt 1_000_000) - <> Constraints.mustPayToScript - vhash - datum2 + constraints = mconcat + [ Constraints.mustPayToScript vhash datum1 + Constraints.DatumWitness + (Value.lovelaceValueOf $ BigNum.fromInt 1_000_000) + , Constraints.mustPayToScript vhash datum2 Constraints.DatumWitness (Value.lovelaceValueOf $ BigNum.fromInt 1_000_000) + , Constraints.mustIncludeDatum datum1 + , Constraints.mustIncludeDatum datum2 + ] lookups :: Lookups.ScriptLookups lookups = mempty @@ -1036,8 +1034,11 @@ suite = do lookups :: Lookups.ScriptLookups lookups = mempty - givenMetadata = GeneralTransactionMetadata $ Map.fromFoldable - [ BigNum.fromInt 8 /\ Metadatum.Text "foo" ] + + givenMetadata :: GeneralTransactionMetadata + givenMetadata = + wrap $ Map.fromFoldable + [ BigNum.fromInt 8 /\ Metadatum.Text "foo" ] ubTx /\ usedUtxos <- mkUnbalancedTx lookups constraints let ubTx' = setGeneralTxMetadata ubTx givenMetadata @@ -1045,8 +1046,8 @@ suite = do txId <- submit bsTx awaitTxConfirmed txId - mMetadata <- getTxMetadata txId - mMetadata `shouldEqual` Right givenMetadata + mMetadata <- map (_.metadata <<< unwrap) <$> getTxAuxiliaryData txId + mMetadata `shouldEqual` Right (Just givenMetadata) test "Minting zero of a token fails" do let diff --git a/test/Plutip/Contract/Assert.purs b/test/Testnet/Contract/Assert.purs similarity index 98% rename from test/Plutip/Contract/Assert.purs rename to test/Testnet/Contract/Assert.purs index 38bb779a2..2a1b933ce 100644 --- a/test/Plutip/Contract/Assert.purs +++ b/test/Testnet/Contract/Assert.purs @@ -1,5 +1,5 @@ -- | Testing assertions interface provided by `Contract.Test.Assert` -module Test.Ctl.Plutip.Contract.Assert (suite) where +module Test.Ctl.Testnet.Contract.Assert (suite) where import Prelude @@ -8,14 +8,13 @@ import Cardano.Types.PlutusScript as PlutusScript import Contract.Monad (liftedM) import Contract.Numeric.BigNum as BigNum import Contract.PlutusData (PlutusData(Integer)) -import Contract.Test (ContractTest) +import Contract.Test (ContractTest, InitialUTxOs, withWallets) import Contract.Test.Assert ( checkExUnitsNotExceed , collectAssertionFailures , printContractAssertionFailures ) import Contract.Test.Mote (TestPlanM) -import Contract.Test.Plutip (InitialUTxOs, withWallets) import Contract.Wallet ( ownPaymentPubKeyHashes , ownStakePubKeyHashes diff --git a/test/Plutip/Contract/Mnemonics.purs b/test/Testnet/Contract/Mnemonics.purs similarity index 79% rename from test/Plutip/Contract/Mnemonics.purs rename to test/Testnet/Contract/Mnemonics.purs index c6445c161..b21d1ac3b 100644 --- a/test/Plutip/Contract/Mnemonics.purs +++ b/test/Testnet/Contract/Mnemonics.purs @@ -1,11 +1,10 @@ -module Test.Ctl.Plutip.Contract.Mnemonics (suite) where +module Test.Ctl.Testnet.Contract.Mnemonics (suite) where import Prelude import Contract.Address (addressFromBech32) -import Contract.Test (ContractTest) +import Contract.Test (ContractTest, withWallets) import Contract.Test.Mote (TestPlanM) -import Contract.Test.Plutip (withWallets) import Contract.Wallet (getWalletAddresses, withKeyWalletFromMnemonic) import Contract.Wallet.Key (StakeKeyPresence(WithStakeKey)) import Data.Array (head) @@ -28,7 +27,7 @@ suite = do do head <$> getWalletAddresses addrExpected <- addressFromBech32 - "addr1q8day0u0gtx3302u5mmgmw20q67s9mkglte8y8kqk75jge5mvvhnhsjfj5jfpt7dv4tu6wlz7z032cmmp9ljftjmkzfswlmg44" + "addr_test1qrday0u0gtx3302u5mmgmw20q67s9mkglte8y8kqk75jge5mvvhnhsjfj5jfpt7dv4tu6wlz7z032cmmp9ljftjmkzfsdfxge2" addr1 `shouldEqual` pure addrExpected do addr1 <- withKeyWalletFromMnemonic @@ -40,7 +39,7 @@ suite = do do head <$> getWalletAddresses addrExpected <- addressFromBech32 - "addr1q9mmg8l2w7ar4cj89jte699dxuu0u3partkjt7fqdga5a7u6w4gzwu7mms8sn7rd0apcwtyu2xjzflvm7sc5vd3vtvpqnux32a" + "addr_test1qpmmg8l2w7ar4cj89jte699dxuu0u3partkjt7fqdga5a7u6w4gzwu7mms8sn7rd0apcwtyu2xjzflvm7sc5vd3vtvpqs2m3xz" addr1 `shouldEqual` pure addrExpected where diff --git a/test/Plutip/Contract/OgmiosMempool.purs b/test/Testnet/Contract/OgmiosMempool.purs similarity index 98% rename from test/Plutip/Contract/OgmiosMempool.purs rename to test/Testnet/Contract/OgmiosMempool.purs index 0af7dd40c..6edd6cb46 100644 --- a/test/Plutip/Contract/OgmiosMempool.purs +++ b/test/Testnet/Contract/OgmiosMempool.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Plutip.Contract.OgmiosMempool +module Test.Ctl.Testnet.Contract.OgmiosMempool ( suite ) where diff --git a/test/Testnet/DistributeFunds.purs b/test/Testnet/DistributeFunds.purs new file mode 100644 index 000000000..9971d7f10 --- /dev/null +++ b/test/Testnet/DistributeFunds.purs @@ -0,0 +1,274 @@ +module Test.Ctl.Testnet.DistributeFunds where + +import Contract.Prelude hiding (over) + +import Contract.Test.Mote (TestPlanM) +import Ctl.Internal.Testnet.DistributeFunds + ( _completeTxs + , _leftover + , _source + , _total + , _totalUtxos + , _tx + , _utxos + ) +import Ctl.Internal.Testnet.DistributeFunds as Distribute +import Data.Bifunctor (lmap) +import Data.Lens (over, set, view, (%~), (+~), (-~), (.~), (^.)) +import Data.List (List(Cons)) +import Data.List as List +import Mote (group, test) +import Test.Spec.Assertions (shouldEqual) + +suite :: TestPlanM (Aff Unit) Unit +suite = group "Testnet" $ group "Distribute Funds" do + group "assignUtxo" do + let + highThreshold = + { maxCoinPerTx: 999_999 + , maxTargetUtxosPerTx: 999_999 + } + + test "Fails if sources do not have enough funds" do + + let + outcome = + Distribute.assignUtxo + highThreshold + { amount: 120, key: "utxo0" } + $ List.fromFoldable + [ Distribute.initialSourceState + { key: 1, initialFunds: 90 } + , Distribute.initialSourceState + { key: 2, initialFunds: 100 } + ] + lmap (const unit) outcome `shouldEqual` Left unit + test "Starts new Tx when reaches the limit of UTxOs" do + let + thresholds = highThreshold { maxTargetUtxosPerTx = 3 } + + src0 :: Distribute.SourceState Int String Int + src0 = + Distribute.initialSourceState + { key: 0, initialFunds: 90 } + # (_tx <<< _total .~ 370) + # (_tx <<< _totalUtxos .~ 2) + # + ( _tx <<< _utxos .~ List.fromFoldable + [ { key: "tgt0", amount: 300 } + , { key: "tgt42", amount: 70 } + ] + ) + + src1 :: Distribute.SourceState Int String Int + src1 = Distribute.initialSourceState + { key: 1, initialFunds: 30 } + + utxo0 = { amount: 10, key: "utxo0" } + utxo1 = { amount: 6, key: "utxo1" } + acc0 = List.fromFoldable [ src0, src1 ] + outcome = do + acc1 <- Distribute.assignUtxo + thresholds + utxo0 + acc0 + acc2 <- Distribute.assignUtxo + thresholds + utxo1 + acc1 + pure acc2 + + expected :: List (Distribute.SourceState Int String Int) + expected = List.fromFoldable + [ src1 + # (_leftover -~ utxo1.amount) + # + ( set _tx + $ Distribute.emptyTx utxo1.amount + # (_totalUtxos .~ 1) + # (_utxos .~ pure utxo1) + ) + , src0 + # (_leftover -~ utxo0.amount) + # (_tx .~ Distribute.emptyTx zero) + # + ( over _completeTxs + $ src0 + # (view _tx) + # (_total +~ utxo0.amount) + # (_totalUtxos .~ 3) + # (_utxos %~ Cons utxo0) + # Cons + ) + ] + + outcome `shouldEqual` Right expected + test "Tends to spend sources evenly" do + let + utxos0 = List.fromFoldable + [ { key: "01", amount: 2 } + , { key: "02", amount: 18 } + ] + utxos1 = List.fromFoldable + [ { key: "11", amount: 3 } + , { key: "12", amount: 17 } + ] + utxos2 = List.fromFoldable + [ { key: "21", amount: 9 } + , { key: "22", amount: 11 } + ] + utxos3 = List.fromFoldable + [ { key: "31", amount: 15 } + , { key: "32", amount: 5 } + ] + -- total = 80 + utxos = utxos0 <> utxos1 <> utxos2 <> utxos3 + + -- they have exactly enough to fit all the utxos + src0 = Distribute.initialSourceState + { key: 0, initialFunds: 40 } + src1 = Distribute.initialSourceState + { key: 1, initialFunds: 40 } + sources = List.fromFoldable [ src0, src1 ] + + outcome = foldM + ( flip $ Distribute.assignUtxo highThreshold + { maxTargetUtxosPerTx = 2 } + ) + sources + utxos + + -- Both must have 2 txs, 20 UTxO each. All sources funds must be spent. + expected = List.fromFoldable + [ src1 + # (_leftover .~ 0) + -- it would be put in completeTxs on the next iteration + # + ( set _tx + $ Distribute.emptyTx 20 + # (_totalUtxos .~ 2) + # (_utxos .~ List.reverse utxos3) + ) + # + ( set _completeTxs + $ Distribute.emptyTx 20 + # (_totalUtxos .~ 2) + # (_utxos .~ List.reverse utxos1) + # pure + ) + , src0 + # (_leftover .~ 0) + # + ( _completeTxs .~ List.fromFoldable + [ Distribute.emptyTx 20 + # (_totalUtxos .~ 2) + # (_utxos .~ List.reverse utxos2) + , Distribute.emptyTx 20 + # (_totalUtxos .~ 2) + # (_utxos .~ List.reverse utxos0) + ] + ) + ] + outcome `shouldEqual` Right expected + + -- It could be better: seach for a source that have a Tx with lowest total or lowest amount of UTxOs + -- But if it worths it? + test "Makes new Tx if utxo is impossible to fit in existing ones" do + let + src0 = + Distribute.initialSourceState + { key: 0, initialFunds: 900 } + # (_tx <<< _total .~ 120) + src1 = + Distribute.initialSourceState + { key: 1, initialFunds: 800 } + # (_tx <<< _total .~ 105) + utxo = { key: "utxo0", amount: 100 } + outcome = + Distribute.assignUtxo + highThreshold { maxCoinPerTx = 200 } + utxo + $ List.fromFoldable [ src0, src1 ] + expected = List.fromFoldable + [ src0 + , src1 + # (_leftover -~ utxo.amount) + # + ( set _tx + $ Distribute.emptyTx utxo.amount + # (_totalUtxos .~ 1) + # (_utxos .~ pure utxo) + ) + # (_completeTxs .~ pure (src1 ^. _tx)) + ] + outcome `shouldEqual` Right expected + test "Tries to fit UTxO in any constructing tx that can fit it" do + let + src0 = + Distribute.initialSourceState + { key: 0, initialFunds: 900 } + -- not enough to fit the utxo + # (_tx <<< _total .~ 120) + src1 = + Distribute.initialSourceState + { key: 1, initialFunds: 800 } + -- exactly enough to fit the utxo + # (_tx <<< _total .~ 100) + utxo = { key: "utxo0", amount: 100 } + outcome = + Distribute.assignUtxo + highThreshold { maxCoinPerTx = 200 } + utxo + $ List.fromFoldable [ src0, src1 ] + expected = List.fromFoldable + [ src0 + , src1 + # (_leftover -~ utxo.amount) + # (_tx <<< _total +~ utxo.amount) + # (_tx <<< _totalUtxos +~ 1) + # (_tx <<< _utxos .~ pure utxo) + ] + outcome `shouldEqual` Right expected + test "Tries to fit UTxO in any source tx that has enough funds" do + let + -- not enough + src0 = Distribute.initialSourceState + { key: 0, initialFunds: 200 } + src1 = Distribute.initialSourceState + { key: 1, initialFunds: 100 } + -- enough + src2 = Distribute.initialSourceState + { key: 2, initialFunds: 300 } + utxo = { key: "utxo0", amount: 250 } + outcome = map (List.sortBy $ comparing (view _source)) + $ Distribute.assignUtxo highThreshold utxo + $ List.fromFoldable [ src0, src1, src2 ] + expected = List.sortBy (comparing $ view _source) $ List.fromFoldable + [ src0 + , src1 + , src2 + # (_leftover -~ utxo.amount) + # + ( set _tx + $ Distribute.emptyTx utxo.amount + # (_totalUtxos .~ 1) + # (_utxos .~ pure utxo) + ) + ] + outcome `shouldEqual` Right expected + test "Fails if UTxO amount is higher than threshold" do + let + -- not enough + src0 = Distribute.initialSourceState + { key: 0, initialFunds: 300 } + src1 = Distribute.initialSourceState + { key: 1, initialFunds: 900 } + utxo = { key: "utxo0", amount: 250 } + outcome = + Distribute.assignUtxo + highThreshold { maxCoinPerTx = 200 } + utxo + $ List.fromFoldable [ src0, src1 ] + lmap (const unit) outcome `shouldEqual` Left unit + pure unit + diff --git a/test/Testnet/DistributeFundsV2.purs b/test/Testnet/DistributeFundsV2.purs new file mode 100644 index 000000000..6105937e5 --- /dev/null +++ b/test/Testnet/DistributeFundsV2.purs @@ -0,0 +1,205 @@ +module Test.Ctl.Testnet.DistributeFundsV2 + ( suite + ) where + +import Prelude + +import Contract.Test.Mote (TestPlanM) +import Ctl.Internal.Testnet.DistributeFundsV2 + ( AssignUtxoResult + ( AssignUtxo_Unassigned + , AssignUtxo_Deferred + , AssignUtxo_AssignedToSource + ) + , DistrFundsError(DistrFunds_AssignUtxoError) + , DistrFundsParams + , SourceState + , assignUtxoToSource + , initSourceState + , makeDistributionPlan + , runDistrFundsRound + ) +import Data.Array (reverse) +import Data.Either (Either(Left, Right)) +import Data.List (fromFoldable) as List +import Data.Maybe (Maybe(Just, Nothing)) +import Data.Newtype (modify, wrap) +import Data.Tuple.Nested (type (/\), (/\)) +import Effect.Aff (Aff) +import Mote (group, test) +import Test.Spec.Assertions (shouldEqual) + +suite :: TestPlanM (Aff Unit) Unit +suite = + group "DistributeFundsV2" do + group "assignUtxoToSource" do + test "Leaves utxo unassigned if it cannot be covered by source" + let + src0 = initSourceState "src0" 1000 + utxo = "target0" /\ 2000 + in + assignUtxoToSource defaultParams src0 utxo `shouldEqual` + AssignUtxo_Unassigned + + test "Takes tx fee into account" + let + params = defaultParams { feePerTx = 10 } + src0 = initSourceState "src0" 1000 + utxo = "target0" /\ 1000 + in + assignUtxoToSource params src0 utxo `shouldEqual` + AssignUtxo_Unassigned + + test "Marks utxo as deferred if maxUtxosPerTx is exceeded" + let + params = defaultParams { maxUtxosPerTx = 0 } + src0 = initSourceState "src0" 1000 + utxo = "target0" /\ 1000 + in + assignUtxoToSource params src0 utxo `shouldEqual` + AssignUtxo_Deferred + + test "Correctly assigns utxos to source" + let + params = defaultParams { feePerTx = 100 } + src0 = initSourceState "src0" 2000 + utxo0 = "target0" /\ 1000 + utxo1 = "target1" /\ 500 + assignUtxo = flip (assignUtxoToSource params) + outcome = + (getSource <<< assignUtxo utxo1) + =<< getSource (assignUtxo utxo0 src0) + in + outcome `shouldEqual` Just + ( src0 + { leftover = 500 + , currentTx = modify + ( _ + { numUtxos = 2 + , utxos = List.fromFoldable + [ utxoToRec utxo1, utxoToRec utxo0 ] + } + ) + src0.currentTx + } + ) + + group "runDistrFundsRound" do + test "Fails if utxo cannot be covered by any source" + let + sources = List.fromFoldable + [ initSourceState "src0" 1000 + , initSourceState "src1" 2000 + , initSourceState "src2" 3000 + ] + utxos = List.fromFoldable + [ "target0" /\ 1000 + , "target1" /\ 3500 + ] + in + runDistrFundsRound defaultParams sources utxos `shouldEqual` + Left DistrFunds_AssignUtxoError + + test "Deferrs utxos that cannot be assigned in the current round" + let + params = defaultParams { maxUtxosPerTx = 1 } + src0 = initSourceState "src0" 2000 + src1 = initSourceState "src1" 1000 + sources = List.fromFoldable [ src0, src1 ] + utxo0 = "target0" /\ 1600 + utxo1 = "target1" /\ 800 + utxo2 = "target2" /\ 400 + utxos = List.fromFoldable [ utxo0, utxo1, utxo2 ] + in + runDistrFundsRound params sources utxos `shouldEqual` + Right + { sources: List.fromFoldable + [ src0 + { leftover = 400 + , currentTx = modify + ( _ + { numUtxos = 1 + , utxos = List.fromFoldable [ utxoToRec utxo0 ] + } + ) + src0.currentTx + } + , src1 + { leftover = 200 + , currentTx = modify + ( _ + { numUtxos = 1 + , utxos = List.fromFoldable [ utxoToRec utxo1 ] + } + ) + src1.currentTx + } + ] + , deferredTargets: List.fromFoldable [ utxo2 ] + } + + group "makeDistributionPlan" do + test "Prepares simple funds distribution plan (2 rounds)" + let + params = defaultParams { maxUtxosPerTx = 2, maxRounds = 5 } + + utxos0 = [ "01" /\ 2, "02" /\ 18 ] + utxos1 = [ "11" /\ 3, "12" /\ 17 ] + utxos2 = [ "21" /\ 9, "22" /\ 11 ] + utxos3 = [ "31" /\ 15, "32" /\ 5 ] + + -- total = 80 + utxos = utxos0 <> utxos1 <> utxos2 <> utxos3 + + -- sources have exactly enough funds to fit all the utxos + src0 = "src0" /\ 40 + src1 = "src1" /\ 40 + sources = [ src0, src1 ] + in + makeDistributionPlan params sources utxos `shouldEqual` + Right + [ [ wrap + { srcWallet: "src0" + , numUtxos: 2 + , utxos: List.fromFoldable $ utxoToRec <$> reverse utxos1 + } + , wrap + { srcWallet: "src1" + , numUtxos: 2 + , utxos: List.fromFoldable $ utxoToRec <$> reverse utxos0 + } + ] + , [ wrap + { srcWallet: "src0" + , numUtxos: 2 + , utxos: List.fromFoldable $ utxoToRec <$> utxos2 + } + , wrap + { srcWallet: "src1" + , numUtxos: 2 + , utxos: List.fromFoldable $ utxoToRec <$> utxos3 + } + ] + ] + +utxoToRec + :: forall wallet amount + . wallet /\ amount + -> { wallet :: wallet, amount :: amount } +utxoToRec (wallet /\ amount) = { wallet, amount } + +getSource + :: forall wallet amount + . AssignUtxoResult wallet amount + -> Maybe (SourceState wallet amount) +getSource = case _ of + AssignUtxo_AssignedToSource src -> Just src + _ -> Nothing + +defaultParams :: forall wallet. DistrFundsParams wallet Int +defaultParams = + { maxRounds: top + , maxUtxosPerTx: top + , getUtxoMinAdaForWallet: const zero + , feePerTx: zero + } diff --git a/test/Plutip/ExUnits.purs b/test/Testnet/ExUnits.purs similarity index 98% rename from test/Plutip/ExUnits.purs rename to test/Testnet/ExUnits.purs index 822569b15..a3bb79368 100644 --- a/test/Plutip/ExUnits.purs +++ b/test/Testnet/ExUnits.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Plutip.ExUnits +module Test.Ctl.Testnet.ExUnits ( mkSuite , mkFailingSuite ) where diff --git a/test/Plutip/Logging.purs b/test/Testnet/Logging.purs similarity index 81% rename from test/Plutip/Logging.purs rename to test/Testnet/Logging.purs index 1dcc04e6a..4df8b9ac2 100644 --- a/test/Plutip/Logging.purs +++ b/test/Testnet/Logging.purs @@ -1,11 +1,12 @@ -module Test.Ctl.Plutip.Logging +module Test.Ctl.Testnet.Logging ( suite ) where import Prelude import Contract.Log (logWarn') -import Contract.Test.Plutip (runPlutipContract) +import Contract.Test.Testnet (defaultTestnetConfig) +import Ctl.Internal.Testnet.Contract (runTestnetContract) import Data.Log.Level (LogLevel(Error)) import Data.Maybe (Maybe(Just)) import Effect.Aff (Aff, try) @@ -14,7 +15,6 @@ import Effect.Exception (throw) import Effect.Ref as Ref import Mote (group, test) import Mote.TestPlanM (TestPlanM) -import Test.Ctl.Plutip.Common (config) import Test.Spec.Assertions (shouldEqual) suite :: TestPlanM (Aff Unit) Unit @@ -24,12 +24,12 @@ suite = do hasLogged <- liftEffect $ Ref.new false let config' = - config + defaultTestnetConfig { customLogger = Just \_ _ -> liftEffect $ Ref.write true hasLogged , suppressLogs = false } - runPlutipContract config' unit \_ -> do + runTestnetContract config' unit \_ -> do logWarn' "" hasLoggedResult <- liftEffect $ Ref.read hasLogged hasLoggedResult `shouldEqual` true @@ -37,12 +37,12 @@ suite = do hasLogged <- liftEffect $ Ref.new false let config' = - config + defaultTestnetConfig { customLogger = Just \_ _ -> liftEffect $ Ref.write true hasLogged , suppressLogs = true } - runPlutipContract config' unit \_ -> do + runTestnetContract config' unit \_ -> do logWarn' "" hasLoggedResult <- liftEffect $ Ref.read hasLogged hasLoggedResult `shouldEqual` false @@ -50,12 +50,12 @@ suite = do hasLogged <- liftEffect $ Ref.new false let config' = - config + defaultTestnetConfig { customLogger = Just \_ _ -> liftEffect $ Ref.write true hasLogged , suppressLogs = true } - void $ try $ runPlutipContract config' unit \_ -> do + void $ try $ runTestnetContract config' unit \_ -> do logWarn' "" liftEffect $ throw "Exception" hasLoggedResult <- liftEffect $ Ref.read hasLogged @@ -64,14 +64,14 @@ suite = do hasLogged <- liftEffect $ Ref.new false let config' = - config + defaultTestnetConfig { customLogger = Just writeLog , suppressLogs = false , logLevel = Error } writeLog lgl m = liftEffect $ when (m.level >= lgl) $ do Ref.write true hasLogged - runPlutipContract config' unit \_ -> do + runTestnetContract config' unit \_ -> do logWarn' "" hasLoggedResult <- liftEffect $ Ref.read hasLogged hasLoggedResult `shouldEqual` false diff --git a/test/Plutip/SameWallets.purs b/test/Testnet/SameWallets.purs similarity index 94% rename from test/Plutip/SameWallets.purs rename to test/Testnet/SameWallets.purs index a100bdf81..d53804405 100644 --- a/test/Plutip/SameWallets.purs +++ b/test/Testnet/SameWallets.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Plutip.SameWallets +module Test.Ctl.Testnet.SameWallets ( suite ) where @@ -11,7 +11,11 @@ import Cardano.Types.PlutusScript as PlutusScript import Contract.Address (PaymentPubKeyHash) import Contract.Monad (Contract, liftedM) import Contract.ScriptLookups as Lookups -import Contract.Test.Plutip (PlutipTestPlan, sameWallets, withKeyWallet) +import Contract.Test.Testnet + ( ContractTestPlan + , sameWallets + , withKeyWallet + ) import Contract.Transaction (awaitTxConfirmed, submitTxFromConstraints) import Contract.TxConstraints as Constraints import Contract.Value (TokenName, Value) @@ -23,7 +27,7 @@ import Ctl.Internal.Test.UtxoDistribution (InitialUTxOs) import Data.Array as Array import Mote (group, test) -suite :: PlutipTestPlan +suite :: ContractTestPlan suite = let distribution :: InitialUTxOs /\ InitialUTxOs diff --git a/test/Plutip/Staking.purs b/test/Testnet/Staking.purs similarity index 92% rename from test/Plutip/Staking.purs rename to test/Testnet/Staking.purs index 5c5093be8..8e957b974 100644 --- a/test/Plutip/Staking.purs +++ b/test/Testnet/Staking.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Plutip.Staking +module Test.Ctl.Testnet.Staking ( main , suite ) where @@ -37,6 +37,7 @@ import Cardano.Types.PrivateKey as PrivateKey import Cardano.Types.PublicKey as PublicKey import Cardano.Types.RedeemerDatum as RedeemerDatum import Cardano.Types.Transaction as Transaction +import Cardano.Wallet.Key (PrivateStakeKey) import Contract.Address (getNetworkId, mkAddress) import Contract.Backend.Ogmios (getPoolParameters) import Contract.Log (logInfo') @@ -52,7 +53,7 @@ import Contract.Staking , getValidatorHashDelegationsAndRewards ) import Contract.Test.Mote (TestPlanM, interpretWithConfig) -import Contract.Test.Plutip (runPlutipContract, withStakeKey) +import Contract.Test.Testnet (defaultTestnetConfig) import Contract.Test.Utils (exitCode, interruptOnSignal) import Contract.Time (getCurrentEpoch) import Contract.Transaction @@ -60,7 +61,6 @@ import Contract.Transaction , PoolPubKeyHash(PoolPubKeyHash) , balanceTx , buildTx - , mkPoolPubKeyHash , signTransaction ) import Contract.Value (lovelaceValueOf) @@ -74,7 +74,12 @@ import Control.Bind (bindFlipped) import Ctl.Examples.AlwaysSucceeds (alwaysSucceedsScript) import Ctl.Examples.Helpers (submitAndLog) import Ctl.Examples.IncludeDatum (only42Script) -import Data.Array (head, (!!)) +import Ctl.Internal.Test.UtxoDistribution + ( InitialUTxOs + , InitialUTxOsWithStakeKey(InitialUTxOsWithStakeKey) + ) +import Ctl.Internal.Testnet.Contract (runTestnetContract) +import Data.Array (head) import Data.Array as Array import Data.Either (hush) import Data.Foldable (for_) @@ -96,11 +101,9 @@ import Effect.Aff , launchAff ) import Effect.Aff.Class (liftAff) -import Effect.Class (liftEffect) import Effect.Exception (error) import Mote (group, skip, test) -import Test.Ctl.Plutip.Common (config) as Common -import Test.Ctl.Plutip.Common (privateStakeKey) +import Test.Ctl.Testnet.Common (privateStakeKey) import Test.Spec.Assertions (shouldEqual, shouldSatisfy) import Test.Spec.Runner (defaultConfig) @@ -113,15 +116,8 @@ main = interruptOnSignal SIGINT =<< launchAff do suite :: TestPlanM (Aff Unit) Unit suite = do - -- We must never select this pool, because it retires at the third epoch - -- (this is Plutip internal knowledge) - -- https://github.com/mlabs-haskell/plutip/blob/7f2d59abd911dd11310404863cdedb2886902ebf/src/Test/Plutip/Internal/Cluster.hs#L692 - retiringPoolId <- liftEffect $ liftM (error "unable to decode poolId bech32") - $ mkPoolPubKeyHash - "pool1rv7ur8r2hz02lly9q8ehtwcrcydl3m2arqmndvwcqsfavgaemt6" let - -- A routine function that filters out retiring pool from the list of available - -- pools + -- A routine function that selects a pool from the list of available pools selectPoolId :: Contract PoolPubKeyHash selectPoolId = do pools <- getPoolIds @@ -130,17 +126,16 @@ suite = do for_ pools \poolId -> do logInfo' "Pool parameters" logInfo' <<< show =<< getPoolParameters poolId - liftM (error "unable to get any pools") - (Array.filter (_ /= retiringPoolId) pools !! 1) + liftM (error "unable to get any pools") $ head pools group "Staking" do group "Stake keys: register & deregister" do test "PubKey" do let - distribution = withStakeKey privateStakeKey + distribution = withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution $ flip withKeyWallet do + runTestnetContract config distribution $ flip withKeyWallet do aliceStakePkh <- liftedM "Failed to get Stake PKH" (join <<< head <$> ownStakePubKeyHashes) @@ -170,11 +165,11 @@ suite = do test "PlutusScript" do let - distribution = withStakeKey privateStakeKey + distribution = withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution $ flip withKeyWallet do + runTestnetContract config distribution $ flip withKeyWallet do validator1 <- alwaysSucceedsScript validator2 <- do only42 <- only42Script @@ -223,11 +218,11 @@ suite = do test "NativeScript" do let - distribution = withStakeKey privateStakeKey + distribution = withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution $ flip withKeyWallet do + runTestnetContract config distribution $ flip withKeyWallet do alicePkh <- liftedM "Failed to get PKH" (head <$> ownPaymentPubKeyHashes) let @@ -264,11 +259,11 @@ suite = do test "Pool registration & retirement" do let - distribution = withStakeKey privateStakeKey + distribution = withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution \alice -> withKeyWallet alice do + runTestnetContract config distribution \alice -> withKeyWallet alice do aliceStakePkh <- liftedM "Failed to get Stake PKH" (join <<< head <$> ownStakePubKeyHashes) @@ -372,11 +367,11 @@ suite = do "Plutus Stake script: delegate to existing pool & withdraw rewards" do let - distribution = withStakeKey privateStakeKey + distribution = withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution \alice -> + runTestnetContract config distribution \alice -> withKeyWallet alice do validator <- alwaysSucceedsScript let @@ -491,11 +486,11 @@ suite = do [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] /\ - withStakeKey privateStakeKey + withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution \(alice /\ bob) -> do + runTestnetContract config distribution \(alice /\ bob) -> do bobStakePkh <- withKeyWallet bob do liftedM "Failed to get Stake PKH" (join <<< head <$> ownStakePubKeyHashes) @@ -607,11 +602,11 @@ suite = do skip $ test "PubKey: delegate to existing pool & withdraw rewards" do let - distribution = withStakeKey privateStakeKey + distribution = withStakeKey privateStakeKeyForDist [ BigNum.fromInt 1_000_000_000 , BigNum.fromInt 2_000_000_000 ] - runPlutipContract config distribution \alice -> + runTestnetContract config distribution \alice -> withKeyWallet alice do aliceStakePkh <- liftedM "Failed to get Stake PKH" (join <<< head <$> ownStakePubKeyHashes) @@ -692,13 +687,17 @@ suite = do rewardsAfter `shouldSatisfy` \after -> after < rewardsBefore where config = - Common.config + defaultTestnetConfig { clusterConfig = - Common.config.clusterConfig - -- changing these constants breaks rewards - -- https://github.com/mlabs-haskell/plutip/issues/149 + defaultTestnetConfig.clusterConfig { slotLength = Seconds 0.05 , epochSize = Just $ UInt.fromInt 80 } -- , suppressLogs = false } + +withStakeKey :: PrivateStakeKey -> InitialUTxOs -> InitialUTxOsWithStakeKey +withStakeKey = InitialUTxOsWithStakeKey + +privateStakeKeyForDist :: PrivateStakeKey +privateStakeKeyForDist = privateStakeKey diff --git a/test/Plutip/Utils.purs b/test/Testnet/Utils.purs similarity index 96% rename from test/Plutip/Utils.purs rename to test/Testnet/Utils.purs index 42e4e87e4..f9be6991d 100644 --- a/test/Plutip/Utils.purs +++ b/test/Testnet/Utils.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Plutip.Utils +module Test.Ctl.Testnet.Utils ( submitAndLog , getLockedInputs ) where diff --git a/test/Plutip/UtxoDistribution.purs b/test/Testnet/UtxoDistribution.purs similarity index 91% rename from test/Plutip/UtxoDistribution.purs rename to test/Testnet/UtxoDistribution.purs index a6bd33cdc..40ebfada6 100644 --- a/test/Plutip/UtxoDistribution.purs +++ b/test/Testnet/UtxoDistribution.purs @@ -1,10 +1,10 @@ -module Test.Ctl.Plutip.UtxoDistribution +module Test.Ctl.Testnet.UtxoDistribution ( ArbitraryUtxoDistr , assertContract , assertCorrectDistribution , assertNoUtxosAtAddress , assertNoUtxosAtEnterpriseAddress - , assertUtxosAtPlutipWalletAddress + , assertUtxosAtTestnetWalletAddress , checkUtxoDistribution , genInitialUtxo , ppArbitraryUtxoDistr @@ -25,11 +25,11 @@ import Cardano.Types.Address (Address(EnterpriseAddress)) import Cardano.Types.BigNum as BigNum import Contract.Address (Address, getNetworkId) import Contract.Monad (Contract, liftedM) -import Contract.Test.Plutip +import Contract.Test.Testnet ( class UtxoDistribution , InitialUTxOs , InitialUTxOsWithStakeKey(InitialUTxOsWithStakeKey) - , runPlutipContract + , defaultTestnetConfig , withStakeKey ) import Contract.Utxos (utxosAt) @@ -43,6 +43,7 @@ import Contract.Wallet ) import Control.Lazy (fix) import Ctl.Internal.Test.UtxoDistribution (encodeDistribution, keyWallets) +import Ctl.Internal.Testnet.Contract (runTestnetContract) import Data.Array (foldl, head, replicate, zip) import Data.Array.NonEmpty (fromNonEmpty) as NEArray import Data.Foldable (intercalate) @@ -59,7 +60,7 @@ import Effect.Exception (throw) import Mote (group, test) import Mote.TestPlanM (TestPlanM) import Partial.Unsafe (unsafePartial) -import Test.Ctl.Plutip.Common (config, privateStakeKey) +import Test.Ctl.Testnet.Common (privateStakeKey) import Test.QuickCheck (class Arbitrary, arbitrary, mkSeed) import Test.QuickCheck.Gen ( Gen @@ -80,7 +81,8 @@ suite = group "UtxoDistribution" do let distribution :: Array InitialUTxOs distribution = replicate 2 [ BigNum.fromInt 1_000_000_000 ] - runPlutipContract config distribution $ checkUtxoDistribution distribution + runTestnetContract defaultTestnetConfig distribution $ + checkUtxoDistribution distribution test "stake key transfers with distribution: stake + [[1000000000,1000000000]]" @@ -89,7 +91,8 @@ suite = group "UtxoDistribution" do distribution :: Array InitialUTxOsWithStakeKey distribution = withStakeKey privateStakeKey <$> replicate 2 [ BigNum.fromInt 1_000_000_000 ] - runPlutipContract config distribution $ checkUtxoDistribution distribution + runTestnetContract defaultTestnetConfig distribution $ + checkUtxoDistribution distribution test "stake key transfers with distribution: ([[1000000000,1000000000]], stake + [[1000000000,1000000000]])" @@ -100,7 +103,8 @@ suite = group "UtxoDistribution" do distribution = distribution1 /\ (withStakeKey privateStakeKey <$> distribution1) - runPlutipContract config distribution $ checkUtxoDistribution distribution + runTestnetContract defaultTestnetConfig distribution $ + checkUtxoDistribution distribution -- set seed to 5 and size to 10 to fail let distrs = sample (mkSeed 2) 5 arbitrary @@ -112,7 +116,7 @@ suite = group "UtxoDistribution" do $ withArbUtxoDistr distr - \randDistr -> runPlutipContract config randDistr $ + \randDistr -> runTestnetContract defaultTestnetConfig randDistr $ checkUtxoDistribution randDistr checkUtxoDistribution @@ -125,7 +129,7 @@ checkUtxoDistribution distr wallets = do let walletsArray = keyWallets (Proxy :: Proxy distr) wallets walletUtxos = encodeDistribution distr - for_ walletsArray assertUtxosAtPlutipWalletAddress + for_ walletsArray assertUtxosAtTestnetWalletAddress assertCorrectDistribution $ zip walletsArray walletUtxos -- TODO: minimum value of 1 ada is hardcoded, tests become flaky below @@ -194,14 +198,14 @@ withArbUtxoDistr d f = case d of assertContract :: String -> Boolean -> Contract Unit assertContract msg cond = if cond then pure unit else liftEffect $ throw msg --- | For a plutip test wallet, assert that any utxos held by the +-- | For a testnet wallet, assert that any utxos held by the -- | wallet are at the expected address. If the wallet has a stake -- | key, this function assumes the expected address is the base -- | address, otherwise it assumes the expected address is the -- | enterprise address. -assertUtxosAtPlutipWalletAddress +assertUtxosAtTestnetWalletAddress :: KeyWallet -> Contract Unit -assertUtxosAtPlutipWalletAddress wallet = withKeyWallet wallet do +assertUtxosAtTestnetWalletAddress wallet = withKeyWallet wallet do maybeStake <- join <<< head <$> ownStakePubKeyHashes when (isJust maybeStake) $ assertNoUtxosAtEnterpriseAddress wallet diff --git a/test/Types/Interval.purs b/test/Types/Interval.purs index abfcaddcf..478be40f0 100644 --- a/test/Types/Interval.purs +++ b/test/Types/Interval.purs @@ -52,7 +52,7 @@ import Test.Spec.Assertions (shouldEqual) suite :: TestPlanM (EraSummaries -> SystemStart -> Effect Unit) Unit suite = do group "Interval" do - group "EraSumaries related" do + group "EraSummaries related" do test "Inverse posixTimeToSlot >>> slotToPosixTime " testPosixTimeToSlot test "Inverse slotToPosixTime >>> posixTimeToSlot " testSlotToPosixTime test "PosixTimeToSlot errors" testPosixTimeToSlotError @@ -87,14 +87,14 @@ eraSummariesFixture :: Effect EraSummaries eraSummariesFixture = do { result } :: { result :: OgmiosEraSummaries } <- loadOgmiosFixture "queryLedgerState-eraSummaries" - "d8b19110b9580cddfa3895eea34c2139" + "8073a8f378e969384ec52010ec6c290c" pure $ unwrap result systemStartFixture :: Effect SystemStart systemStartFixture = do { result } :: { result :: OgmiosSystemStart } <- loadOgmiosFixture "queryNetwork-startTime" - "02fa6f9e7ed04ebfe3294c7648be54d5" + "5185237542c7c8a6810aeb0fe74b3b40" pure $ unwrap result testPosixTimeToSlot :: EraSummaries -> SystemStart -> Effect Unit diff --git a/test/Unit.purs b/test/Unit.purs index da961ca05..4250ac8a5 100644 --- a/test/Unit.purs +++ b/test/Unit.purs @@ -28,6 +28,8 @@ import Test.Ctl.Partition as Partition import Test.Ctl.ProtocolParams as ProtocolParams import Test.Ctl.Serialization as Serialization import Test.Ctl.Serialization.Hash as Serialization.Hash +import Test.Ctl.Testnet.DistributeFunds as Testnet.DistributeFunds +import Test.Ctl.Testnet.DistributeFundsV2 as Testnet.DistributeFundsV2 import Test.Ctl.Types.Interval as Types.Interval import Test.Ctl.Types.Ipv6 as Ipv6 import Test.Ctl.Types.TokenName as Types.TokenName @@ -46,6 +48,8 @@ main = interruptOnSignal SIGINT =<< launchAff do testPlan :: TestPlanM (Aff Unit) Unit testPlan = do + Testnet.DistributeFunds.suite + Testnet.DistributeFundsV2.suite ApplyArgs.suite Ipv6.suite NativeScript.suite