diff --git a/.deny.toml b/.deny.toml index fd7bcebb..4d69e70b 100644 --- a/.deny.toml +++ b/.deny.toml @@ -18,7 +18,6 @@ ignore = [ { id = "RUSTSEC-2024-0370", reason = "transitive dependency of `logos-blockchain-http-api-common`, can't do anything than wait for upstream fix" }, { id = "RUSTSEC-2026-0173", reason = "`proc-macro-error2` is unmaintained; pulled in transitively via `leptos_macro` and `overwatch-derive`, waiting on upstream fix" }, - { id = "RUSTSEC-2026-0185", reason = "`quinn-proto` remote memory exhaustion; pulled in transitively via `logos-blockchain-libp2p`, waiting on upstream fix" }, ] yanked = "deny" unused-ignored-advisory = "deny" diff --git a/Cargo.lock b/Cargo.lock index 214f94de..86295b9d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2038,7 +2038,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" dependencies = [ "data-encoding", - "syn 2.0.117", + "syn 1.0.109", ] [[package]] @@ -7610,9 +7610,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e" dependencies = [ "bytes", "getrandom 0.3.4", @@ -10765,6 +10765,7 @@ dependencies = [ name = "wallet-ffi" version = "0.1.0" dependencies = [ + "bip39", "cbindgen", "common", "key_protocol", diff --git a/flake.lock b/flake.lock index 44b0300f..912fd769 100644 --- a/flake.lock +++ b/flake.lock @@ -15,6 +15,61 @@ "type": "github" } }, + "default-container": { + "inputs": { + "logos-container": "logos-container", + "logos-nix": "logos-nix_2", + "nixpkgs": [ + "logos-liblogos", + "default-container", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781741375, + "narHash": "sha256-PP/2tFfwrbqTzbZKVl46I96xz/ZZj7hi9C3/QeLHtQE=", + "owner": "logos-co", + "repo": "logos-container-subprocess", + "rev": "f4860708a982b361a2e25c5260e13800bcee126e", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-container-subprocess", + "type": "github" + } + }, + "default-module-loader": { + "inputs": { + "logos-container": "logos-container_2", + "logos-cpp-sdk": "logos-cpp-sdk", + "logos-module": "logos-module", + "logos-module-loader": "logos-module-loader", + "logos-nix": "logos-nix_8", + "logos-protocol": "logos-protocol", + "logos-qt-sdk": "logos-qt-sdk", + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781734000, + "narHash": "sha256-TyrUHKnb5llx+Z5GN+bMAbjkxON6w7aj4yN6gokq2eQ=", + "owner": "logos-co", + "repo": "logos-module-loader-qt", + "rev": "08213eb216ae9b33c73830d3cf2d9111d97cbbcb", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module-loader-qt", + "type": "github" + } + }, "logos-blockchain-circuits": { "inputs": { "nixpkgs": "nixpkgs" @@ -82,8 +137,8 @@ "logos-standalone-app", "logos-cpp-sdk" ], - "logos-module": "logos-module_7", - "logos-nix": "logos-nix_16", + "logos-module": "logos-module_8", + "logos-nix": "logos-nix_26", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -112,9 +167,9 @@ }, "logos-capability-module_4": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_4", - "logos-module": "logos-module_8", - "logos-nix": "logos-nix_21", + "logos-cpp-sdk": "logos-cpp-sdk_5", + "logos-module": "logos-module_9", + "logos-nix": "logos-nix_31", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -174,8 +229,8 @@ "logos-standalone-app", "logos-cpp-sdk" ], - "logos-module": "logos-module_13", - "logos-nix": "logos-nix_60", + "logos-module": "logos-module_14", + "logos-nix": "logos-nix_70", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -205,9 +260,9 @@ }, "logos-capability-module_7": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_9", - "logos-module": "logos-module_14", - "logos-nix": "logos-nix_65", + "logos-cpp-sdk": "logos-cpp-sdk_10", + "logos-module": "logos-module_15", + "logos-nix": "logos-nix_75", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -237,24 +292,154 @@ "type": "github" } }, - "logos-cpp-sdk": { + "logos-container": { "inputs": { "logos-nix": "logos-nix", "nixpkgs": [ "logos-liblogos", - "logos-capability-module", - "logos-module-builder", + "default-container", + "logos-container", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732360, + "narHash": "sha256-RJjquPiZz3/LkJaFUGpDxFbt1+paBiVtbbxjVhDMR3o=", + "owner": "logos-co", + "repo": "logos-container", + "rev": "15adc74f829f0cc662bce4f0bfae917cd50e7db4", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-container", + "type": "github" + } + }, + "logos-container_2": { + "inputs": { + "logos-nix": "logos-nix_3", + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-container", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732360, + "narHash": "sha256-RJjquPiZz3/LkJaFUGpDxFbt1+paBiVtbbxjVhDMR3o=", + "owner": "logos-co", + "repo": "logos-container", + "rev": "15adc74f829f0cc662bce4f0bfae917cd50e7db4", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-container", + "type": "github" + } + }, + "logos-container_3": { + "inputs": { + "logos-nix": "logos-nix_6", + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-module-loader", + "logos-container", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732360, + "narHash": "sha256-RJjquPiZz3/LkJaFUGpDxFbt1+paBiVtbbxjVhDMR3o=", + "owner": "logos-co", + "repo": "logos-container", + "rev": "15adc74f829f0cc662bce4f0bfae917cd50e7db4", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-container", + "type": "github" + } + }, + "logos-container_4": { + "inputs": { + "logos-nix": "logos-nix_132", + "nixpkgs": [ + "logos-liblogos", + "logos-container", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732360, + "narHash": "sha256-RJjquPiZz3/LkJaFUGpDxFbt1+paBiVtbbxjVhDMR3o=", + "owner": "logos-co", + "repo": "logos-container", + "rev": "15adc74f829f0cc662bce4f0bfae917cd50e7db4", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-container", + "type": "github" + } + }, + "logos-container_5": { + "inputs": { + "logos-nix": "logos-nix_135", + "nixpkgs": [ + "logos-liblogos", + "logos-module-loader", + "logos-container", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732360, + "narHash": "sha256-RJjquPiZz3/LkJaFUGpDxFbt1+paBiVtbbxjVhDMR3o=", + "owner": "logos-co", + "repo": "logos-container", + "rev": "15adc74f829f0cc662bce4f0bfae917cd50e7db4", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-container", + "type": "github" + } + }, + "logos-cpp-sdk": { + "inputs": { + "logos-lidl": "logos-lidl", + "logos-nix": "logos-nix_4", + "logos-protocol": [ + "logos-liblogos", + "default-module-loader", + "logos-protocol" + ], + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", "logos-cpp-sdk", "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1781207077, - "narHash": "sha256-ZamVbPJxW364RFOa0WnYTJV7AiEjnUcOgfxIbfNgTO0=", + "lastModified": 1781663756, + "narHash": "sha256-q1Q2MCax3L1RLfcS40sDStVipK6dhfiPHYk31YeGyUI=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "f5a127dd11589c8fc6db0a1bd4332d09ac080bb6", + "rev": "182d850e722c820b3640a09541d7c469ef79f0e6", "type": "github" }, "original": { @@ -265,7 +450,40 @@ }, "logos-cpp-sdk_10": { "inputs": { - "logos-nix": "logos-nix_66", + "logos-nix": "logos-nix_73", + "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", + "logos-liblogos", + "logos-capability-module", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773956385, + "narHash": "sha256-CV0Lo1FrosBt/MSP+GWQGWXnYobxRGXGOREylNuwZ58=", + "owner": "logos-co", + "repo": "logos-cpp-sdk", + "rev": "4b66dac015e4b977d33cfae80a4c8e1d518679f3", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-cpp-sdk", + "type": "github" + } + }, + "logos-cpp-sdk_11": { + "inputs": { + "logos-nix": "logos-nix_76", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -295,9 +513,9 @@ "type": "github" } }, - "logos-cpp-sdk_11": { + "logos-cpp-sdk_12": { "inputs": { - "logos-nix": "logos-nix_94", + "logos-nix": "logos-nix_104", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -323,7 +541,7 @@ "type": "github" } }, - "logos-cpp-sdk_12": { + "logos-cpp-sdk_13": { "inputs": { "logos-nix": [ "logos-liblogos", @@ -358,9 +576,14 @@ "type": "github" } }, - "logos-cpp-sdk_13": { + "logos-cpp-sdk_14": { "inputs": { - "logos-nix": "logos-nix_122", + "logos-lidl": "logos-lidl_3", + "logos-nix": "logos-nix_133", + "logos-protocol": [ + "logos-liblogos", + "logos-protocol" + ], "nixpkgs": [ "logos-liblogos", "logos-cpp-sdk", @@ -368,6 +591,32 @@ "nixpkgs" ] }, + "locked": { + "lastModified": 1781663756, + "narHash": "sha256-q1Q2MCax3L1RLfcS40sDStVipK6dhfiPHYk31YeGyUI=", + "owner": "logos-co", + "repo": "logos-cpp-sdk", + "rev": "182d850e722c820b3640a09541d7c469ef79f0e6", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-cpp-sdk", + "type": "github" + } + }, + "logos-cpp-sdk_2": { + "inputs": { + "logos-nix": "logos-nix_11", + "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] + }, "locked": { "lastModified": 1781207077, "narHash": "sha256-ZamVbPJxW364RFOa0WnYTJV7AiEjnUcOgfxIbfNgTO0=", @@ -382,38 +631,9 @@ "type": "github" } }, - "logos-cpp-sdk_2": { - "inputs": { - "logos-nix": "logos-nix_8", - "nixpkgs": [ - "logos-liblogos", - "logos-capability-module", - "logos-module-builder", - "logos-standalone-app", - "logos-capability-module", - "logos-module-builder", - "logos-cpp-sdk", - "logos-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1778167634, - "narHash": "sha256-gbBYvyEDxBHF8iACAE/dFcljBkIUTWr1rP3gBLj62JI=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "25c88f4d48fa95ea4437194bcf60bd8d0cf84a74", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, "logos-cpp-sdk_3": { "inputs": { - "logos-nix": "logos-nix_17", + "logos-nix": "logos-nix_18", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -421,7 +641,6 @@ "logos-standalone-app", "logos-capability-module", "logos-module-builder", - "logos-standalone-app", "logos-cpp-sdk", "logos-nix", "nixpkgs" @@ -443,7 +662,37 @@ }, "logos-cpp-sdk_4": { "inputs": { - "logos-nix": "logos-nix_19", + "logos-nix": "logos-nix_27", + "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", + "logos-cpp-sdk", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778167634, + "narHash": "sha256-gbBYvyEDxBHF8iACAE/dFcljBkIUTWr1rP3gBLj62JI=", + "owner": "logos-co", + "repo": "logos-cpp-sdk", + "rev": "25c88f4d48fa95ea4437194bcf60bd8d0cf84a74", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-cpp-sdk", + "type": "github" + } + }, + "logos-cpp-sdk_5": { + "inputs": { + "logos-nix": "logos-nix_29", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -473,9 +722,9 @@ "type": "github" } }, - "logos-cpp-sdk_5": { + "logos-cpp-sdk_6": { "inputs": { - "logos-nix": "logos-nix_22", + "logos-nix": "logos-nix_32", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -504,9 +753,9 @@ "type": "github" } }, - "logos-cpp-sdk_6": { + "logos-cpp-sdk_7": { "inputs": { - "logos-nix": "logos-nix_50", + "logos-nix": "logos-nix_60", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -531,39 +780,9 @@ "type": "github" } }, - "logos-cpp-sdk_7": { - "inputs": { - "logos-nix": "logos-nix_52", - "nixpkgs": [ - "logos-liblogos", - "logos-capability-module", - "logos-module-builder", - "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-module-builder", - "logos-cpp-sdk", - "logos-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1778167634, - "narHash": "sha256-gbBYvyEDxBHF8iACAE/dFcljBkIUTWr1rP3gBLj62JI=", - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "rev": "25c88f4d48fa95ea4437194bcf60bd8d0cf84a74", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-cpp-sdk", - "type": "github" - } - }, "logos-cpp-sdk_8": { "inputs": { - "logos-nix": "logos-nix_61", + "logos-nix": "logos-nix_62", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -572,7 +791,6 @@ "logos-liblogos", "logos-capability-module", "logos-module-builder", - "logos-standalone-app", "logos-cpp-sdk", "logos-nix", "nixpkgs" @@ -594,7 +812,7 @@ }, "logos-cpp-sdk_9": { "inputs": { - "logos-nix": "logos-nix_63", + "logos-nix": "logos-nix_71", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -604,19 +822,17 @@ "logos-capability-module", "logos-module-builder", "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", "logos-cpp-sdk", "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1773956385, - "narHash": "sha256-CV0Lo1FrosBt/MSP+GWQGWXnYobxRGXGOREylNuwZ58=", + "lastModified": 1778167634, + "narHash": "sha256-gbBYvyEDxBHF8iACAE/dFcljBkIUTWr1rP3gBLj62JI=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "4b66dac015e4b977d33cfae80a4c8e1d518679f3", + "rev": "25c88f4d48fa95ea4437194bcf60bd8d0cf84a74", "type": "github" }, "original": { @@ -627,7 +843,7 @@ }, "logos-design-system": { "inputs": { - "logos-nix": "logos-nix_18", + "logos-nix": "logos-nix_28", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -657,7 +873,7 @@ }, "logos-design-system_2": { "inputs": { - "logos-nix": "logos-nix_51", + "logos-nix": "logos-nix_61", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -684,7 +900,7 @@ }, "logos-design-system_3": { "inputs": { - "logos-nix": "logos-nix_62", + "logos-nix": "logos-nix_72", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -715,11 +931,17 @@ }, "logos-liblogos": { "inputs": { + "default-container": "default-container", + "default-module-loader": "default-module-loader", "logos-capability-module": "logos-capability-module", - "logos-cpp-sdk": "logos-cpp-sdk_13", - "logos-module": "logos-module_17", - "logos-nix": "logos-nix_124", + "logos-container": "logos-container_4", + "logos-cpp-sdk": "logos-cpp-sdk_14", + "logos-module": "logos-module_18", + "logos-module-loader": "logos-module-loader_2", + "logos-nix": "logos-nix_137", "logos-package-manager": "logos-package-manager_7", + "logos-protocol": "logos-protocol_2", + "logos-qt-sdk": "logos-qt-sdk_2", "nixpkgs": [ "logos-liblogos", "logos-nix", @@ -728,11 +950,11 @@ "process-stats": "process-stats_4" }, "locked": { - "lastModified": 1781211239, - "narHash": "sha256-qRWrWyxpry5cO03rG1cXYPtujQON6A/0Z0Z/R1NmUV8=", + "lastModified": 1781742244, + "narHash": "sha256-Vd9UevKBn0Mie5tvexaaYOSkiqDlC4G3qTFKD28S1gk=", "owner": "logos-co", "repo": "logos-liblogos", - "rev": "66256b54efb995adf977689ea63f6bfb6ccfdd81", + "rev": "dbcafea05c06e91be18763bc0c4b307222d8b853", "type": "github" }, "original": { @@ -744,9 +966,9 @@ "logos-liblogos_2": { "inputs": { "logos-capability-module": "logos-capability-module_4", - "logos-cpp-sdk": "logos-cpp-sdk_5", - "logos-module": "logos-module_9", - "logos-nix": "logos-nix_24", + "logos-cpp-sdk": "logos-cpp-sdk_6", + "logos-module": "logos-module_10", + "logos-nix": "logos-nix_34", "logos-package-manager": "logos-package-manager", "nixpkgs": [ "logos-liblogos", @@ -778,9 +1000,9 @@ "logos-liblogos_3": { "inputs": { "logos-capability-module": "logos-capability-module_5", - "logos-cpp-sdk": "logos-cpp-sdk_11", - "logos-module": "logos-module_16", - "logos-nix": "logos-nix_96", + "logos-cpp-sdk": "logos-cpp-sdk_12", + "logos-module": "logos-module_17", + "logos-nix": "logos-nix_106", "logos-package-manager": "logos-package-manager_5", "nixpkgs": [ "logos-liblogos", @@ -810,9 +1032,9 @@ "logos-liblogos_4": { "inputs": { "logos-capability-module": "logos-capability-module_7", - "logos-cpp-sdk": "logos-cpp-sdk_10", - "logos-module": "logos-module_15", - "logos-nix": "logos-nix_68", + "logos-cpp-sdk": "logos-cpp-sdk_11", + "logos-module": "logos-module_16", + "logos-nix": "logos-nix_78", "logos-package-manager": "logos-package-manager_3", "nixpkgs": [ "logos-liblogos", @@ -842,24 +1064,143 @@ "type": "github" } }, - "logos-module": { + "logos-lidl": { "inputs": { - "logos-nix": "logos-nix_2", + "logos-nix": [ + "logos-liblogos", + "default-module-loader", + "logos-cpp-sdk", + "logos-nix" + ], "nixpkgs": [ "logos-liblogos", - "logos-capability-module", - "logos-module-builder", + "default-module-loader", + "logos-cpp-sdk", + "logos-lidl", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781653473, + "narHash": "sha256-8l2tE2K5nY1grcFROQHC1By1jVI0NrfkS3k2v2y6R2I=", + "owner": "logos-co", + "repo": "logos-lidl", + "rev": "8c95d4f0cc6a10195c70ed71e85b7a4cddca02f8", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-lidl", + "type": "github" + } + }, + "logos-lidl_2": { + "inputs": { + "logos-nix": [ + "logos-liblogos", + "default-module-loader", + "logos-qt-sdk", + "logos-nix" + ], + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-qt-sdk", + "logos-lidl", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781653473, + "narHash": "sha256-8l2tE2K5nY1grcFROQHC1By1jVI0NrfkS3k2v2y6R2I=", + "owner": "logos-co", + "repo": "logos-lidl", + "rev": "8c95d4f0cc6a10195c70ed71e85b7a4cddca02f8", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-lidl", + "type": "github" + } + }, + "logos-lidl_3": { + "inputs": { + "logos-nix": [ + "logos-liblogos", + "logos-cpp-sdk", + "logos-nix" + ], + "nixpkgs": [ + "logos-liblogos", + "logos-cpp-sdk", + "logos-lidl", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781653473, + "narHash": "sha256-8l2tE2K5nY1grcFROQHC1By1jVI0NrfkS3k2v2y6R2I=", + "owner": "logos-co", + "repo": "logos-lidl", + "rev": "8c95d4f0cc6a10195c70ed71e85b7a4cddca02f8", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-lidl", + "type": "github" + } + }, + "logos-lidl_4": { + "inputs": { + "logos-nix": [ + "logos-liblogos", + "logos-qt-sdk", + "logos-nix" + ], + "nixpkgs": [ + "logos-liblogos", + "logos-qt-sdk", + "logos-lidl", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781653473, + "narHash": "sha256-8l2tE2K5nY1grcFROQHC1By1jVI0NrfkS3k2v2y6R2I=", + "owner": "logos-co", + "repo": "logos-lidl", + "rev": "8c95d4f0cc6a10195c70ed71e85b7a4cddca02f8", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-lidl", + "type": "github" + } + }, + "logos-module": { + "inputs": { + "logos-nix": "logos-nix_5", + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", "logos-module", "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1780603603, - "narHash": "sha256-CV7R+lwNIP0baXZtE9uNjqu7qDLiANwyGfMkHfTjcl0=", + "lastModified": 1781311603, + "narHash": "sha256-Ym3i52f5MWuZy8Qas3+zfoxz+mxQUsyW+Qol1no6kDs=", "owner": "logos-co", "repo": "logos-module", - "rev": "780894dd40ebc8eded0fa97b1729286f31571cfb", + "rev": "a3e288a71d6f79445db598b0ffcca2ee435596b9", "type": "github" }, "original": { @@ -870,9 +1211,9 @@ }, "logos-module-builder": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk", - "logos-module": "logos-module", - "logos-nix": "logos-nix_3", + "logos-cpp-sdk": "logos-cpp-sdk_2", + "logos-module": "logos-module_2", + "logos-nix": "logos-nix_13", "logos-plugin-core": "logos-plugin-core", "logos-plugin-qt": "logos-plugin-qt", "logos-standalone-app": "logos-standalone-app", @@ -903,9 +1244,9 @@ }, "logos-module-builder_2": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_2", - "logos-module": "logos-module_4", - "logos-nix": "logos-nix_10", + "logos-cpp-sdk": "logos-cpp-sdk_3", + "logos-module": "logos-module_5", + "logos-nix": "logos-nix_20", "logos-plugin-core": "logos-plugin-core_2", "logos-plugin-qt": "logos-plugin-qt_2", "logos-standalone-app": "logos-standalone-app_2", @@ -939,9 +1280,9 @@ }, "logos-module-builder_3": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_7", - "logos-module": "logos-module_10", - "logos-nix": "logos-nix_54", + "logos-cpp-sdk": "logos-cpp-sdk_8", + "logos-module": "logos-module_11", + "logos-nix": "logos-nix_64", "logos-plugin-core": "logos-plugin-core_3", "logos-plugin-qt": "logos-plugin-qt_3", "logos-standalone-app": "logos-standalone-app_3", @@ -974,9 +1315,91 @@ "type": "github" } }, + "logos-module-loader": { + "inputs": { + "logos-container": "logos-container_3", + "logos-nix": "logos-nix_7", + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-module-loader", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732584, + "narHash": "sha256-v1eIGPXTnW0oCwEvEjEoBLeoidUh3ZomDGQY9m/ucNw=", + "owner": "logos-co", + "repo": "logos-module-loader", + "rev": "7ed7a5a97e1ad9142187d755c4ce56ed17d69f18", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module-loader", + "type": "github" + } + }, + "logos-module-loader_2": { + "inputs": { + "logos-container": "logos-container_5", + "logos-nix": "logos-nix_136", + "nixpkgs": [ + "logos-liblogos", + "logos-module-loader", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781732584, + "narHash": "sha256-v1eIGPXTnW0oCwEvEjEoBLeoidUh3ZomDGQY9m/ucNw=", + "owner": "logos-co", + "repo": "logos-module-loader", + "rev": "7ed7a5a97e1ad9142187d755c4ce56ed17d69f18", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module-loader", + "type": "github" + } + }, "logos-module_10": { "inputs": { - "logos-nix": "logos-nix_53", + "logos-nix": "logos-nix_33", + "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", + "logos-liblogos", + "logos-module", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776369033, + "narHash": "sha256-ehePoUEd/u3Ng0TvCmjocXYJWWH6P61PA7tNpgV59lo=", + "owner": "logos-co", + "repo": "logos-module", + "rev": "194778491ef4dd36967ac40cc2fec6b8a8b1d660", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module", + "type": "github" + } + }, + "logos-module_11": { + "inputs": { + "logos-nix": "logos-nix_63", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1004,9 +1427,9 @@ "type": "github" } }, - "logos-module_11": { + "logos-module_12": { "inputs": { - "logos-nix": "logos-nix_55", + "logos-nix": "logos-nix_65", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1035,9 +1458,9 @@ "type": "github" } }, - "logos-module_12": { + "logos-module_13": { "inputs": { - "logos-nix": "logos-nix_57", + "logos-nix": "logos-nix_67", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1066,41 +1489,9 @@ "type": "github" } }, - "logos-module_13": { - "inputs": { - "logos-nix": "logos-nix_59", - "nixpkgs": [ - "logos-liblogos", - "logos-capability-module", - "logos-module-builder", - "logos-standalone-app", - "logos-liblogos", - "logos-capability-module", - "logos-module-builder", - "logos-standalone-app", - "logos-capability-module", - "logos-module", - "logos-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773963329, - "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", - "owner": "logos-co", - "repo": "logos-module", - "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-module", - "type": "github" - } - }, "logos-module_14": { "inputs": { - "logos-nix": "logos-nix_64", + "logos-nix": "logos-nix_69", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1110,7 +1501,6 @@ "logos-capability-module", "logos-module-builder", "logos-standalone-app", - "logos-liblogos", "logos-capability-module", "logos-module", "logos-nix", @@ -1133,7 +1523,7 @@ }, "logos-module_15": { "inputs": { - "logos-nix": "logos-nix_67", + "logos-nix": "logos-nix_74", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1144,17 +1534,18 @@ "logos-module-builder", "logos-standalone-app", "logos-liblogos", + "logos-capability-module", "logos-module", "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1776369033, - "narHash": "sha256-ehePoUEd/u3Ng0TvCmjocXYJWWH6P61PA7tNpgV59lo=", + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", "owner": "logos-co", "repo": "logos-module", - "rev": "194778491ef4dd36967ac40cc2fec6b8a8b1d660", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", "type": "github" }, "original": { @@ -1165,8 +1556,12 @@ }, "logos-module_16": { "inputs": { - "logos-nix": "logos-nix_95", + "logos-nix": "logos-nix_77", "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", "logos-liblogos", "logos-capability-module", "logos-module-builder", @@ -1193,8 +1588,12 @@ }, "logos-module_17": { "inputs": { - "logos-nix": "logos-nix_123", + "logos-nix": "logos-nix_105", "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-standalone-app", "logos-liblogos", "logos-module", "logos-nix", @@ -1215,25 +1614,48 @@ "type": "github" } }, + "logos-module_18": { + "inputs": { + "logos-nix": "logos-nix_134", + "nixpkgs": [ + "logos-liblogos", + "logos-module", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781311603, + "narHash": "sha256-Ym3i52f5MWuZy8Qas3+zfoxz+mxQUsyW+Qol1no6kDs=", + "owner": "logos-co", + "repo": "logos-module", + "rev": "a3e288a71d6f79445db598b0ffcca2ee435596b9", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module", + "type": "github" + } + }, "logos-module_2": { "inputs": { - "logos-nix": "logos-nix_4", + "logos-nix": "logos-nix_12", "nixpkgs": [ "logos-liblogos", "logos-capability-module", "logos-module-builder", - "logos-plugin-core", "logos-module", "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1776369033, - "narHash": "sha256-ehePoUEd/u3Ng0TvCmjocXYJWWH6P61PA7tNpgV59lo=", + "lastModified": 1780603603, + "narHash": "sha256-CV7R+lwNIP0baXZtE9uNjqu7qDLiANwyGfMkHfTjcl0=", "owner": "logos-co", "repo": "logos-module", - "rev": "194778491ef4dd36967ac40cc2fec6b8a8b1d660", + "rev": "780894dd40ebc8eded0fa97b1729286f31571cfb", "type": "github" }, "original": { @@ -1244,12 +1666,12 @@ }, "logos-module_3": { "inputs": { - "logos-nix": "logos-nix_6", + "logos-nix": "logos-nix_14", "nixpkgs": [ "logos-liblogos", "logos-capability-module", "logos-module-builder", - "logos-plugin-qt", + "logos-plugin-core", "logos-module", "logos-nix", "nixpkgs" @@ -1271,7 +1693,34 @@ }, "logos-module_4": { "inputs": { - "logos-nix": "logos-nix_9", + "logos-nix": "logos-nix_16", + "nixpkgs": [ + "logos-liblogos", + "logos-capability-module", + "logos-module-builder", + "logos-plugin-qt", + "logos-module", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776369033, + "narHash": "sha256-ehePoUEd/u3Ng0TvCmjocXYJWWH6P61PA7tNpgV59lo=", + "owner": "logos-co", + "repo": "logos-module", + "rev": "194778491ef4dd36967ac40cc2fec6b8a8b1d660", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-module", + "type": "github" + } + }, + "logos-module_5": { + "inputs": { + "logos-nix": "logos-nix_19", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1298,9 +1747,9 @@ "type": "github" } }, - "logos-module_5": { + "logos-module_6": { "inputs": { - "logos-nix": "logos-nix_11", + "logos-nix": "logos-nix_21", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1328,9 +1777,9 @@ "type": "github" } }, - "logos-module_6": { + "logos-module_7": { "inputs": { - "logos-nix": "logos-nix_13", + "logos-nix": "logos-nix_23", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1358,40 +1807,9 @@ "type": "github" } }, - "logos-module_7": { - "inputs": { - "logos-nix": "logos-nix_15", - "nixpkgs": [ - "logos-liblogos", - "logos-capability-module", - "logos-module-builder", - "logos-standalone-app", - "logos-capability-module", - "logos-module-builder", - "logos-standalone-app", - "logos-capability-module", - "logos-module", - "logos-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1773963329, - "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", - "owner": "logos-co", - "repo": "logos-module", - "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-module", - "type": "github" - } - }, "logos-module_8": { "inputs": { - "logos-nix": "logos-nix_20", + "logos-nix": "logos-nix_25", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1400,7 +1818,6 @@ "logos-capability-module", "logos-module-builder", "logos-standalone-app", - "logos-liblogos", "logos-capability-module", "logos-module", "logos-nix", @@ -1423,7 +1840,7 @@ }, "logos-module_9": { "inputs": { - "logos-nix": "logos-nix_23", + "logos-nix": "logos-nix_30", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -1433,17 +1850,18 @@ "logos-module-builder", "logos-standalone-app", "logos-liblogos", + "logos-capability-module", "logos-module", "logos-nix", "nixpkgs" ] }, "locked": { - "lastModified": 1776369033, - "narHash": "sha256-ehePoUEd/u3Ng0TvCmjocXYJWWH6P61PA7tNpgV59lo=", + "lastModified": 1773963329, + "narHash": "sha256-zdvDHoYWQDse0eJ/UCKIJcfuYJ8NMgl6QfxRcyDEovI=", "owner": "logos-co", "repo": "logos-module", - "rev": "194778491ef4dd36967ac40cc2fec6b8a8b1d660", + "rev": "ac5a4f06ea94b01dd9c5fbb9ed4f20620beab88d", "type": "github" }, "original": { @@ -1511,11 +1929,11 @@ "nixpkgs": "nixpkgs_102" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -1546,24 +1964,6 @@ "inputs": { "nixpkgs": "nixpkgs_104" }, - "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", - "owner": "logos-co", - "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-nix", - "type": "github" - } - }, - "logos-nix_104": { - "inputs": { - "nixpkgs": "nixpkgs_105" - }, "locked": { "lastModified": 1773955630, "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", @@ -1578,9 +1978,9 @@ "type": "github" } }, - "logos-nix_105": { + "logos-nix_104": { "inputs": { - "nixpkgs": "nixpkgs_106" + "nixpkgs": "nixpkgs_105" }, "locked": { "lastModified": 1774455309, @@ -1596,6 +1996,24 @@ "type": "github" } }, + "logos-nix_105": { + "inputs": { + "nixpkgs": "nixpkgs_106" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_106": { "inputs": { "nixpkgs": "nixpkgs_107" @@ -1619,11 +2037,11 @@ "nixpkgs": "nixpkgs_108" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -1654,24 +2072,6 @@ "inputs": { "nixpkgs": "nixpkgs_110" }, - "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", - "owner": "logos-co", - "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-nix", - "type": "github" - } - }, - "logos-nix_11": { - "inputs": { - "nixpkgs": "nixpkgs_12" - }, "locked": { "lastModified": 1773955630, "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", @@ -1686,9 +2086,9 @@ "type": "github" } }, - "logos-nix_110": { + "logos-nix_11": { "inputs": { - "nixpkgs": "nixpkgs_111" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1774455309, @@ -1704,6 +2104,24 @@ "type": "github" } }, + "logos-nix_110": { + "inputs": { + "nixpkgs": "nixpkgs_111" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_111": { "inputs": { "nixpkgs": "nixpkgs_112" @@ -1763,11 +2181,11 @@ "nixpkgs": "nixpkgs_115" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -1781,11 +2199,11 @@ "nixpkgs": "nixpkgs_116" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -1799,11 +2217,11 @@ "nixpkgs": "nixpkgs_117" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -1871,11 +2289,11 @@ "nixpkgs": "nixpkgs_13" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -1889,11 +2307,11 @@ "nixpkgs": "nixpkgs_121" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -1925,11 +2343,11 @@ "nixpkgs": "nixpkgs_123" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -1943,11 +2361,11 @@ "nixpkgs": "nixpkgs_124" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -1979,11 +2397,11 @@ "nixpkgs": "nixpkgs_126" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2051,11 +2469,11 @@ "nixpkgs": "nixpkgs_130" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2069,11 +2487,11 @@ "nixpkgs": "nixpkgs_14" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2100,9 +2518,27 @@ "type": "github" } }, - "logos-nix_14": { + "logos-nix_131": { "inputs": { - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_132" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_132": { + "inputs": { + "nixpkgs": "nixpkgs_133" }, "locked": { "lastModified": 1774455309, @@ -2118,9 +2554,27 @@ "type": "github" } }, - "logos-nix_15": { + "logos-nix_133": { "inputs": { - "nixpkgs": "nixpkgs_16" + "nixpkgs": "nixpkgs_134" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_134": { + "inputs": { + "nixpkgs": "nixpkgs_135" }, "locked": { "lastModified": 1773955630, @@ -2136,6 +2590,240 @@ "type": "github" } }, + "logos-nix_135": { + "inputs": { + "nixpkgs": "nixpkgs_136" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_136": { + "inputs": { + "nixpkgs": "nixpkgs_137" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_137": { + "inputs": { + "nixpkgs": "nixpkgs_138" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_138": { + "inputs": { + "nixpkgs": "nixpkgs_139" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_139": { + "inputs": { + "nixpkgs": "nixpkgs_140" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_14": { + "inputs": { + "nixpkgs": "nixpkgs_15" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_140": { + "inputs": { + "nixpkgs": "nixpkgs_141" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_141": { + "inputs": { + "nixpkgs": "nixpkgs_142" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_142": { + "inputs": { + "nixpkgs": "nixpkgs_143" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_143": { + "inputs": { + "nixpkgs": "nixpkgs_144" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_144": { + "inputs": { + "nixpkgs": "nixpkgs_145" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_145": { + "inputs": { + "nixpkgs": "nixpkgs_146" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, + "logos-nix_15": { + "inputs": { + "nixpkgs": "nixpkgs_16" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_16": { "inputs": { "nixpkgs": "nixpkgs_17" @@ -2177,11 +2865,11 @@ "nixpkgs": "nixpkgs_19" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2213,11 +2901,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2231,11 +2919,11 @@ "nixpkgs": "nixpkgs_21" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2321,11 +3009,11 @@ "nixpkgs": "nixpkgs_26" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2357,11 +3045,11 @@ "nixpkgs": "nixpkgs_28" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2446,24 +3134,6 @@ "inputs": { "nixpkgs": "nixpkgs_32" }, - "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", - "owner": "logos-co", - "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-nix", - "type": "github" - } - }, - "logos-nix_32": { - "inputs": { - "nixpkgs": "nixpkgs_33" - }, "locked": { "lastModified": 1773955630, "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", @@ -2478,9 +3148,9 @@ "type": "github" } }, - "logos-nix_33": { + "logos-nix_32": { "inputs": { - "nixpkgs": "nixpkgs_34" + "nixpkgs": "nixpkgs_33" }, "locked": { "lastModified": 1774455309, @@ -2496,6 +3166,24 @@ "type": "github" } }, + "logos-nix_33": { + "inputs": { + "nixpkgs": "nixpkgs_34" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_34": { "inputs": { "nixpkgs": "nixpkgs_35" @@ -2519,11 +3207,11 @@ "nixpkgs": "nixpkgs_36" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2555,11 +3243,11 @@ "nixpkgs": "nixpkgs_38" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2573,11 +3261,11 @@ "nixpkgs": "nixpkgs_39" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2609,11 +3297,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2663,11 +3351,11 @@ "nixpkgs": "nixpkgs_43" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2681,11 +3369,11 @@ "nixpkgs": "nixpkgs_44" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2699,11 +3387,11 @@ "nixpkgs": "nixpkgs_45" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2771,11 +3459,11 @@ "nixpkgs": "nixpkgs_49" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2807,11 +3495,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2825,11 +3513,11 @@ "nixpkgs": "nixpkgs_51" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2843,11 +3531,11 @@ "nixpkgs": "nixpkgs_52" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2897,11 +3585,11 @@ "nixpkgs": "nixpkgs_55" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -2932,24 +3620,6 @@ "inputs": { "nixpkgs": "nixpkgs_57" }, - "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", - "owner": "logos-co", - "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-nix", - "type": "github" - } - }, - "logos-nix_57": { - "inputs": { - "nixpkgs": "nixpkgs_58" - }, "locked": { "lastModified": 1773955630, "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", @@ -2964,9 +3634,9 @@ "type": "github" } }, - "logos-nix_58": { + "logos-nix_57": { "inputs": { - "nixpkgs": "nixpkgs_59" + "nixpkgs": "nixpkgs_58" }, "locked": { "lastModified": 1774455309, @@ -2982,6 +3652,24 @@ "type": "github" } }, + "logos-nix_58": { + "inputs": { + "nixpkgs": "nixpkgs_59" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_59": { "inputs": { "nixpkgs": "nixpkgs_60" @@ -3005,11 +3693,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3022,24 +3710,6 @@ "inputs": { "nixpkgs": "nixpkgs_61" }, - "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", - "owner": "logos-co", - "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-nix", - "type": "github" - } - }, - "logos-nix_61": { - "inputs": { - "nixpkgs": "nixpkgs_62" - }, "locked": { "lastModified": 1774455309, "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", @@ -3054,9 +3724,9 @@ "type": "github" } }, - "logos-nix_62": { + "logos-nix_61": { "inputs": { - "nixpkgs": "nixpkgs_63" + "nixpkgs": "nixpkgs_62" }, "locked": { "lastModified": 1773955630, @@ -3072,6 +3742,24 @@ "type": "github" } }, + "logos-nix_62": { + "inputs": { + "nixpkgs": "nixpkgs_63" + }, + "locked": { + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_63": { "inputs": { "nixpkgs": "nixpkgs_64" @@ -3095,11 +3783,11 @@ "nixpkgs": "nixpkgs_65" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3185,11 +3873,11 @@ "nixpkgs": "nixpkgs_70" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -3239,11 +3927,11 @@ "nixpkgs": "nixpkgs_72" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3310,24 +3998,6 @@ "inputs": { "nixpkgs": "nixpkgs_76" }, - "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", - "owner": "logos-co", - "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", - "type": "github" - }, - "original": { - "owner": "logos-co", - "repo": "logos-nix", - "type": "github" - } - }, - "logos-nix_76": { - "inputs": { - "nixpkgs": "nixpkgs_77" - }, "locked": { "lastModified": 1773955630, "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", @@ -3342,9 +4012,9 @@ "type": "github" } }, - "logos-nix_77": { + "logos-nix_76": { "inputs": { - "nixpkgs": "nixpkgs_78" + "nixpkgs": "nixpkgs_77" }, "locked": { "lastModified": 1774455309, @@ -3360,6 +4030,24 @@ "type": "github" } }, + "logos-nix_77": { + "inputs": { + "nixpkgs": "nixpkgs_78" + }, + "locked": { + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "owner": "logos-co", + "repo": "logos-nix", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-nix", + "type": "github" + } + }, "logos-nix_78": { "inputs": { "nixpkgs": "nixpkgs_79" @@ -3383,11 +4071,11 @@ "nixpkgs": "nixpkgs_80" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3437,11 +4125,11 @@ "nixpkgs": "nixpkgs_82" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -3455,11 +4143,11 @@ "nixpkgs": "nixpkgs_83" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -3527,11 +4215,11 @@ "nixpkgs": "nixpkgs_87" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -3545,11 +4233,11 @@ "nixpkgs": "nixpkgs_88" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3563,11 +4251,11 @@ "nixpkgs": "nixpkgs_89" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3599,11 +4287,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3653,11 +4341,11 @@ "nixpkgs": "nixpkgs_93" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3689,11 +4377,11 @@ "nixpkgs": "nixpkgs_95" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -3707,11 +4395,11 @@ "nixpkgs": "nixpkgs_96" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -3743,11 +4431,11 @@ "nixpkgs": "nixpkgs_98" }, "locked": { - "lastModified": 1774455309, - "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", + "lastModified": 1773955630, + "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", "owner": "logos-co", "repo": "logos-nix", - "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", + "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", "type": "github" }, "original": { @@ -3794,7 +4482,7 @@ }, "logos-package": { "inputs": { - "logos-nix": "logos-nix_26", + "logos-nix": "logos-nix_36", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -3826,7 +4514,7 @@ }, "logos-package-manager": { "inputs": { - "logos-nix": "logos-nix_25", + "logos-nix": "logos-nix_35", "logos-package": "logos-package", "nix-bundle-appimage": "nix-bundle-appimage", "nix-bundle-dir": "nix-bundle-dir_2", @@ -3860,7 +4548,7 @@ }, "logos-package-manager_2": { "inputs": { - "logos-nix": "logos-nix_42", + "logos-nix": "logos-nix_52", "logos-package": "logos-package_4", "nix-bundle-appimage": "nix-bundle-appimage_2", "nix-bundle-dir": "nix-bundle-dir_6", @@ -3893,7 +4581,7 @@ }, "logos-package-manager_3": { "inputs": { - "logos-nix": "logos-nix_69", + "logos-nix": "logos-nix_79", "logos-package": "logos-package_6", "nix-bundle-appimage": "nix-bundle-appimage_3", "nix-bundle-dir": "nix-bundle-dir_9", @@ -3928,7 +4616,7 @@ }, "logos-package-manager_4": { "inputs": { - "logos-nix": "logos-nix_86", + "logos-nix": "logos-nix_96", "logos-package": "logos-package_9", "nix-bundle-appimage": "nix-bundle-appimage_4", "nix-bundle-dir": "nix-bundle-dir_13", @@ -3962,7 +4650,7 @@ }, "logos-package-manager_5": { "inputs": { - "logos-nix": "logos-nix_97", + "logos-nix": "logos-nix_107", "logos-package": "logos-package_11", "nix-bundle-appimage": "nix-bundle-appimage_5", "nix-bundle-dir": "nix-bundle-dir_16", @@ -3993,7 +4681,7 @@ }, "logos-package-manager_6": { "inputs": { - "logos-nix": "logos-nix_114", + "logos-nix": "logos-nix_124", "logos-package": "logos-package_14", "nix-bundle-appimage": "nix-bundle-appimage_6", "nix-bundle-dir": "nix-bundle-dir_20", @@ -4023,7 +4711,7 @@ }, "logos-package-manager_7": { "inputs": { - "logos-nix": "logos-nix_125", + "logos-nix": "logos-nix_138", "logos-package": "logos-package_16", "nix-bundle-appimage": "nix-bundle-appimage_7", "nix-bundle-dir": "nix-bundle-dir_23", @@ -4035,11 +4723,11 @@ ] }, "locked": { - "lastModified": 1776374462, - "narHash": "sha256-HMkuqSLdScAWTwXEWjhqx9Yk82GiPzPIfRaHTvjG730=", + "lastModified": 1781106836, + "narHash": "sha256-vHxdyGdW3Ai3/Omspw5drtJXzXyN0TWuCYet95A5h6E=", "owner": "logos-co", "repo": "logos-package-manager", - "rev": "9101875bc103214855bc6217834e22e66802ed86", + "rev": "8a6b72f28b1e73b6d753eaabe7eba13bf425f04e", "type": "github" }, "original": { @@ -4050,7 +4738,7 @@ }, "logos-package_10": { "inputs": { - "logos-nix": "logos-nix_92", + "logos-nix": "logos-nix_102", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4082,7 +4770,7 @@ }, "logos-package_11": { "inputs": { - "logos-nix": "logos-nix_98", + "logos-nix": "logos-nix_108", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4111,7 +4799,7 @@ }, "logos-package_12": { "inputs": { - "logos-nix": "logos-nix_107", + "logos-nix": "logos-nix_117", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4139,7 +4827,7 @@ }, "logos-package_13": { "inputs": { - "logos-nix": "logos-nix_111", + "logos-nix": "logos-nix_121", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4166,7 +4854,7 @@ }, "logos-package_14": { "inputs": { - "logos-nix": "logos-nix_115", + "logos-nix": "logos-nix_125", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4194,7 +4882,7 @@ }, "logos-package_15": { "inputs": { - "logos-nix": "logos-nix_120", + "logos-nix": "logos-nix_130", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4222,7 +4910,7 @@ }, "logos-package_16": { "inputs": { - "logos-nix": "logos-nix_126", + "logos-nix": "logos-nix_139", "nixpkgs": [ "logos-liblogos", "logos-package-manager", @@ -4247,7 +4935,7 @@ }, "logos-package_2": { "inputs": { - "logos-nix": "logos-nix_35", + "logos-nix": "logos-nix_45", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4278,7 +4966,7 @@ }, "logos-package_3": { "inputs": { - "logos-nix": "logos-nix_39", + "logos-nix": "logos-nix_49", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4308,7 +4996,7 @@ }, "logos-package_4": { "inputs": { - "logos-nix": "logos-nix_43", + "logos-nix": "logos-nix_53", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4339,7 +5027,7 @@ }, "logos-package_5": { "inputs": { - "logos-nix": "logos-nix_48", + "logos-nix": "logos-nix_58", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4370,7 +5058,7 @@ }, "logos-package_6": { "inputs": { - "logos-nix": "logos-nix_70", + "logos-nix": "logos-nix_80", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4403,7 +5091,7 @@ }, "logos-package_7": { "inputs": { - "logos-nix": "logos-nix_79", + "logos-nix": "logos-nix_89", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4435,7 +5123,7 @@ }, "logos-package_8": { "inputs": { - "logos-nix": "logos-nix_83", + "logos-nix": "logos-nix_93", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4466,7 +5154,7 @@ }, "logos-package_9": { "inputs": { - "logos-nix": "logos-nix_87", + "logos-nix": "logos-nix_97", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4498,8 +5186,8 @@ }, "logos-plugin-core": { "inputs": { - "logos-module": "logos-module_2", - "logos-nix": "logos-nix_5", + "logos-module": "logos-module_3", + "logos-nix": "logos-nix_15", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4525,8 +5213,8 @@ }, "logos-plugin-core_2": { "inputs": { - "logos-module": "logos-module_5", - "logos-nix": "logos-nix_12", + "logos-module": "logos-module_6", + "logos-nix": "logos-nix_22", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4555,8 +5243,8 @@ }, "logos-plugin-core_3": { "inputs": { - "logos-module": "logos-module_11", - "logos-nix": "logos-nix_56", + "logos-module": "logos-module_12", + "logos-nix": "logos-nix_66", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4586,8 +5274,8 @@ }, "logos-plugin-qt": { "inputs": { - "logos-module": "logos-module_3", - "logos-nix": "logos-nix_7", + "logos-module": "logos-module_4", + "logos-nix": "logos-nix_17", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4613,8 +5301,8 @@ }, "logos-plugin-qt_2": { "inputs": { - "logos-module": "logos-module_6", - "logos-nix": "logos-nix_14", + "logos-module": "logos-module_7", + "logos-nix": "logos-nix_24", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4643,8 +5331,8 @@ }, "logos-plugin-qt_3": { "inputs": { - "logos-module": "logos-module_12", - "logos-nix": "logos-nix_58", + "logos-module": "logos-module_13", + "logos-nix": "logos-nix_68", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4672,9 +5360,58 @@ "type": "github" } }, + "logos-protocol": { + "inputs": { + "logos-nix": "logos-nix_9", + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-protocol", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781303997, + "narHash": "sha256-j9U4wPlHdN5oA+65h1SAo/s2YUHvNYKxij4/pCqEtAs=", + "owner": "logos-co", + "repo": "logos-protocol", + "rev": "9de4165ab68ece4071647026cb2596bed8a8d7e2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-protocol", + "type": "github" + } + }, + "logos-protocol_2": { + "inputs": { + "logos-nix": "logos-nix_143", + "nixpkgs": [ + "logos-liblogos", + "logos-protocol", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781303997, + "narHash": "sha256-j9U4wPlHdN5oA+65h1SAo/s2YUHvNYKxij4/pCqEtAs=", + "owner": "logos-co", + "repo": "logos-protocol", + "rev": "9de4165ab68ece4071647026cb2596bed8a8d7e2", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-protocol", + "type": "github" + } + }, "logos-qt-mcp": { "inputs": { - "logos-nix": "logos-nix_32", + "logos-nix": "logos-nix_42", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4703,7 +5440,7 @@ }, "logos-qt-mcp_2": { "inputs": { - "logos-nix": "logos-nix_76", + "logos-nix": "logos-nix_86", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4733,7 +5470,7 @@ }, "logos-qt-mcp_3": { "inputs": { - "logos-nix": "logos-nix_104", + "logos-nix": "logos-nix_114", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4758,13 +5495,82 @@ "type": "github" } }, + "logos-qt-sdk": { + "inputs": { + "logos-cpp-sdk": [ + "logos-liblogos", + "default-module-loader", + "logos-cpp-sdk" + ], + "logos-lidl": "logos-lidl_2", + "logos-nix": "logos-nix_10", + "logos-protocol": [ + "logos-liblogos", + "default-module-loader", + "logos-protocol" + ], + "nixpkgs": [ + "logos-liblogos", + "default-module-loader", + "logos-qt-sdk", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781655169, + "narHash": "sha256-wjbHmczSG8VUMlRkIp3pviVTLPTzReDbIRfBpqnlQr4=", + "owner": "logos-co", + "repo": "logos-qt-sdk", + "rev": "812369213719773f6486755a30c476a699469b37", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-qt-sdk", + "type": "github" + } + }, + "logos-qt-sdk_2": { + "inputs": { + "logos-cpp-sdk": [ + "logos-liblogos", + "logos-cpp-sdk" + ], + "logos-lidl": "logos-lidl_4", + "logos-nix": "logos-nix_144", + "logos-protocol": [ + "logos-liblogos", + "logos-protocol" + ], + "nixpkgs": [ + "logos-liblogos", + "logos-qt-sdk", + "logos-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781655169, + "narHash": "sha256-wjbHmczSG8VUMlRkIp3pviVTLPTzReDbIRfBpqnlQr4=", + "owner": "logos-co", + "repo": "logos-qt-sdk", + "rev": "812369213719773f6486755a30c476a699469b37", + "type": "github" + }, + "original": { + "owner": "logos-co", + "repo": "logos-qt-sdk", + "type": "github" + } + }, "logos-standalone-app": { "inputs": { "logos-capability-module": "logos-capability-module_2", - "logos-cpp-sdk": "logos-cpp-sdk_6", + "logos-cpp-sdk": "logos-cpp-sdk_7", "logos-design-system": "logos-design-system_2", "logos-liblogos": "logos-liblogos_3", - "logos-nix": "logos-nix_103", + "logos-nix": "logos-nix_113", "logos-qt-mcp": "logos-qt-mcp_3", "logos-view-module-runtime": "logos-view-module-runtime_3", "nix-bundle-lgx": "nix-bundle-lgx_7", @@ -4794,10 +5600,10 @@ "logos-standalone-app_2": { "inputs": { "logos-capability-module": "logos-capability-module_3", - "logos-cpp-sdk": "logos-cpp-sdk_3", + "logos-cpp-sdk": "logos-cpp-sdk_4", "logos-design-system": "logos-design-system", "logos-liblogos": "logos-liblogos_2", - "logos-nix": "logos-nix_31", + "logos-nix": "logos-nix_41", "logos-qt-mcp": "logos-qt-mcp", "logos-view-module-runtime": "logos-view-module-runtime", "nix-bundle-lgx": "nix-bundle-lgx", @@ -4830,10 +5636,10 @@ "logos-standalone-app_3": { "inputs": { "logos-capability-module": "logos-capability-module_6", - "logos-cpp-sdk": "logos-cpp-sdk_8", + "logos-cpp-sdk": "logos-cpp-sdk_9", "logos-design-system": "logos-design-system_3", "logos-liblogos": "logos-liblogos_4", - "logos-nix": "logos-nix_75", + "logos-nix": "logos-nix_85", "logos-qt-mcp": "logos-qt-mcp_2", "logos-view-module-runtime": "logos-view-module-runtime_2", "nix-bundle-lgx": "nix-bundle-lgx_4", @@ -4875,7 +5681,7 @@ "logos-module-builder", "logos-cpp-sdk" ], - "logos-nix": "logos-nix_37", + "logos-nix": "logos-nix_47", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4914,7 +5720,7 @@ "logos-module-builder", "logos-cpp-sdk" ], - "logos-nix": "logos-nix_81", + "logos-nix": "logos-nix_91", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4950,7 +5756,7 @@ "logos-module-builder", "logos-cpp-sdk" ], - "logos-nix": "logos-nix_109", + "logos-nix": "logos-nix_119", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -4986,7 +5792,7 @@ "logos-standalone-app", "logos-cpp-sdk" ], - "logos-nix": "logos-nix_33", + "logos-nix": "logos-nix_43", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5026,7 +5832,7 @@ "logos-standalone-app", "logos-cpp-sdk" ], - "logos-nix": "logos-nix_77", + "logos-nix": "logos-nix_87", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5056,8 +5862,8 @@ }, "logos-view-module-runtime_3": { "inputs": { - "logos-cpp-sdk": "logos-cpp-sdk_12", - "logos-nix": "logos-nix_105", + "logos-cpp-sdk": "logos-cpp-sdk_13", + "logos-nix": "logos-nix_115", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5084,7 +5890,7 @@ }, "nix-bundle-appimage": { "inputs": { - "logos-nix": "logos-nix_27", + "logos-nix": "logos-nix_37", "nix-bundle-dir": "nix-bundle-dir", "nixpkgs": [ "logos-liblogos", @@ -5117,7 +5923,7 @@ }, "nix-bundle-appimage_2": { "inputs": { - "logos-nix": "logos-nix_44", + "logos-nix": "logos-nix_54", "nix-bundle-dir": "nix-bundle-dir_5", "nixpkgs": [ "logos-liblogos", @@ -5149,7 +5955,7 @@ }, "nix-bundle-appimage_3": { "inputs": { - "logos-nix": "logos-nix_71", + "logos-nix": "logos-nix_81", "nix-bundle-dir": "nix-bundle-dir_8", "nixpkgs": [ "logos-liblogos", @@ -5183,7 +5989,7 @@ }, "nix-bundle-appimage_4": { "inputs": { - "logos-nix": "logos-nix_88", + "logos-nix": "logos-nix_98", "nix-bundle-dir": "nix-bundle-dir_12", "nixpkgs": [ "logos-liblogos", @@ -5216,7 +6022,7 @@ }, "nix-bundle-appimage_5": { "inputs": { - "logos-nix": "logos-nix_99", + "logos-nix": "logos-nix_109", "nix-bundle-dir": "nix-bundle-dir_15", "nixpkgs": [ "logos-liblogos", @@ -5246,7 +6052,7 @@ }, "nix-bundle-appimage_6": { "inputs": { - "logos-nix": "logos-nix_116", + "logos-nix": "logos-nix_126", "nix-bundle-dir": "nix-bundle-dir_19", "nixpkgs": [ "logos-liblogos", @@ -5275,7 +6081,7 @@ }, "nix-bundle-appimage_7": { "inputs": { - "logos-nix": "logos-nix_127", + "logos-nix": "logos-nix_140", "nix-bundle-dir": "nix-bundle-dir_22", "nixpkgs": [ "logos-liblogos", @@ -5301,7 +6107,7 @@ }, "nix-bundle-dir": { "inputs": { - "logos-nix": "logos-nix_28", + "logos-nix": "logos-nix_38", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5332,7 +6138,7 @@ }, "nix-bundle-dir_10": { "inputs": { - "logos-nix": "logos-nix_80", + "logos-nix": "logos-nix_90", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5364,7 +6170,7 @@ }, "nix-bundle-dir_11": { "inputs": { - "logos-nix": "logos-nix_84", + "logos-nix": "logos-nix_94", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5395,7 +6201,7 @@ }, "nix-bundle-dir_12": { "inputs": { - "logos-nix": "logos-nix_89", + "logos-nix": "logos-nix_99", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5426,7 +6232,7 @@ }, "nix-bundle-dir_13": { "inputs": { - "logos-nix": "logos-nix_90", + "logos-nix": "logos-nix_100", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5458,7 +6264,7 @@ }, "nix-bundle-dir_14": { "inputs": { - "logos-nix": "logos-nix_93", + "logos-nix": "logos-nix_103", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5490,7 +6296,7 @@ }, "nix-bundle-dir_15": { "inputs": { - "logos-nix": "logos-nix_100", + "logos-nix": "logos-nix_110", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5518,7 +6324,7 @@ }, "nix-bundle-dir_16": { "inputs": { - "logos-nix": "logos-nix_101", + "logos-nix": "logos-nix_111", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5547,7 +6353,7 @@ }, "nix-bundle-dir_17": { "inputs": { - "logos-nix": "logos-nix_108", + "logos-nix": "logos-nix_118", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5575,7 +6381,7 @@ }, "nix-bundle-dir_18": { "inputs": { - "logos-nix": "logos-nix_112", + "logos-nix": "logos-nix_122", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5602,7 +6408,7 @@ }, "nix-bundle-dir_19": { "inputs": { - "logos-nix": "logos-nix_117", + "logos-nix": "logos-nix_127", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5629,7 +6435,7 @@ }, "nix-bundle-dir_2": { "inputs": { - "logos-nix": "logos-nix_29", + "logos-nix": "logos-nix_39", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5661,7 +6467,7 @@ }, "nix-bundle-dir_20": { "inputs": { - "logos-nix": "logos-nix_118", + "logos-nix": "logos-nix_128", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5689,7 +6495,7 @@ }, "nix-bundle-dir_21": { "inputs": { - "logos-nix": "logos-nix_121", + "logos-nix": "logos-nix_131", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5717,7 +6523,7 @@ }, "nix-bundle-dir_22": { "inputs": { - "logos-nix": "logos-nix_128", + "logos-nix": "logos-nix_141", "nixpkgs": [ "logos-liblogos", "logos-package-manager", @@ -5741,7 +6547,7 @@ }, "nix-bundle-dir_23": { "inputs": { - "logos-nix": "logos-nix_129", + "logos-nix": "logos-nix_142", "nixpkgs": [ "logos-liblogos", "logos-package-manager", @@ -5766,7 +6572,7 @@ }, "nix-bundle-dir_3": { "inputs": { - "logos-nix": "logos-nix_36", + "logos-nix": "logos-nix_46", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5797,7 +6603,7 @@ }, "nix-bundle-dir_4": { "inputs": { - "logos-nix": "logos-nix_40", + "logos-nix": "logos-nix_50", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5827,7 +6633,7 @@ }, "nix-bundle-dir_5": { "inputs": { - "logos-nix": "logos-nix_45", + "logos-nix": "logos-nix_55", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5857,7 +6663,7 @@ }, "nix-bundle-dir_6": { "inputs": { - "logos-nix": "logos-nix_46", + "logos-nix": "logos-nix_56", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5888,7 +6694,7 @@ }, "nix-bundle-dir_7": { "inputs": { - "logos-nix": "logos-nix_49", + "logos-nix": "logos-nix_59", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5919,7 +6725,7 @@ }, "nix-bundle-dir_8": { "inputs": { - "logos-nix": "logos-nix_72", + "logos-nix": "logos-nix_82", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5951,7 +6757,7 @@ }, "nix-bundle-dir_9": { "inputs": { - "logos-nix": "logos-nix_73", + "logos-nix": "logos-nix_83", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -5984,7 +6790,7 @@ }, "nix-bundle-lgx": { "inputs": { - "logos-nix": "logos-nix_34", + "logos-nix": "logos-nix_44", "logos-package": "logos-package_2", "nix-bundle-dir": "nix-bundle-dir_3", "nixpkgs": [ @@ -6015,7 +6821,7 @@ }, "nix-bundle-lgx_2": { "inputs": { - "logos-nix": "logos-nix_38", + "logos-nix": "logos-nix_48", "logos-package": "logos-package_3", "nix-bundle-dir": "nix-bundle-dir_4", "nixpkgs": [ @@ -6046,7 +6852,7 @@ }, "nix-bundle-lgx_3": { "inputs": { - "logos-nix": "logos-nix_47", + "logos-nix": "logos-nix_57", "logos-package": "logos-package_5", "nix-bundle-dir": "nix-bundle-dir_7", "nixpkgs": [ @@ -6078,7 +6884,7 @@ }, "nix-bundle-lgx_4": { "inputs": { - "logos-nix": "logos-nix_78", + "logos-nix": "logos-nix_88", "logos-package": "logos-package_7", "nix-bundle-dir": "nix-bundle-dir_10", "nixpkgs": [ @@ -6110,7 +6916,7 @@ }, "nix-bundle-lgx_5": { "inputs": { - "logos-nix": "logos-nix_82", + "logos-nix": "logos-nix_92", "logos-package": "logos-package_8", "nix-bundle-dir": "nix-bundle-dir_11", "nixpkgs": [ @@ -6142,7 +6948,7 @@ }, "nix-bundle-lgx_6": { "inputs": { - "logos-nix": "logos-nix_91", + "logos-nix": "logos-nix_101", "logos-package": "logos-package_10", "nix-bundle-dir": "nix-bundle-dir_14", "nixpkgs": [ @@ -6175,7 +6981,7 @@ }, "nix-bundle-lgx_7": { "inputs": { - "logos-nix": "logos-nix_106", + "logos-nix": "logos-nix_116", "logos-package": "logos-package_12", "nix-bundle-dir": "nix-bundle-dir_17", "nixpkgs": [ @@ -6204,7 +7010,7 @@ }, "nix-bundle-lgx_8": { "inputs": { - "logos-nix": "logos-nix_110", + "logos-nix": "logos-nix_120", "logos-package": "logos-package_13", "nix-bundle-dir": "nix-bundle-dir_18", "nixpkgs": [ @@ -6232,7 +7038,7 @@ }, "nix-bundle-lgx_9": { "inputs": { - "logos-nix": "logos-nix_119", + "logos-nix": "logos-nix_129", "logos-package": "logos-package_15", "nix-bundle-dir": "nix-bundle-dir_21", "nixpkgs": [ @@ -6261,7 +7067,7 @@ }, "nix-bundle-logos-module-install": { "inputs": { - "logos-nix": "logos-nix_41", + "logos-nix": "logos-nix_51", "logos-package-manager": "logos-package-manager_2", "nix-bundle-lgx": "nix-bundle-lgx_3", "nixpkgs": [ @@ -6292,7 +7098,7 @@ }, "nix-bundle-logos-module-install_2": { "inputs": { - "logos-nix": "logos-nix_85", + "logos-nix": "logos-nix_95", "logos-package-manager": "logos-package-manager_4", "nix-bundle-lgx": "nix-bundle-lgx_6", "nixpkgs": [ @@ -6324,7 +7130,7 @@ }, "nix-bundle-logos-module-install_3": { "inputs": { - "logos-nix": "logos-nix_113", + "logos-nix": "logos-nix_123", "logos-package-manager": "logos-package-manager_6", "nix-bundle-lgx": "nix-bundle-lgx_9", "nixpkgs": [ @@ -6944,16 +7750,128 @@ }, "nixpkgs_132": { "locked": { - "lastModified": 1767313136, - "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-25.05", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_133": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_134": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_135": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_136": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_137": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_138": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_139": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -6974,6 +7892,134 @@ "type": "github" } }, + "nixpkgs_140": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_141": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_142": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_143": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_144": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_145": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_146": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_147": { + "locked": { + "lastModified": 1767313136, + "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_15": { "locked": { "lastModified": 1759036355, @@ -8464,7 +9510,7 @@ }, "process-stats": { "inputs": { - "logos-nix": "logos-nix_30", + "logos-nix": "logos-nix_40", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -8495,7 +9541,7 @@ }, "process-stats_2": { "inputs": { - "logos-nix": "logos-nix_74", + "logos-nix": "logos-nix_84", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -8527,7 +9573,7 @@ }, "process-stats_3": { "inputs": { - "logos-nix": "logos-nix_102", + "logos-nix": "logos-nix_112", "nixpkgs": [ "logos-liblogos", "logos-capability-module", @@ -8555,7 +9601,7 @@ }, "process-stats_4": { "inputs": { - "logos-nix": "logos-nix_130", + "logos-nix": "logos-nix_145", "nixpkgs": [ "logos-liblogos", "process-stats", @@ -8597,11 +9643,11 @@ ] }, "locked": { - "lastModified": 1781234414, - "narHash": "sha256-HdA+P4fKRGOomkewnI/Tww5Wz4xK1O7+hDO90YAsPB4=", + "lastModified": 1781752752, + "narHash": "sha256-kVG5tV9hddPviGAgqf9sGSuStvv+HAB9onfKqGptV0k=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "1d18bfe3de6244c641ca4e8011186d0981b81d76", + "rev": "c06d86dabe5b92982b9d67acccb9990d58da3a0e", "type": "github" }, "original": { @@ -8612,7 +9658,7 @@ }, "rust-rapidsnark": { "inputs": { - "nixpkgs": "nixpkgs_132" + "nixpkgs": "nixpkgs_147" }, "locked": { "lastModified": 1781090841, diff --git a/integration_tests/tests/wallet_ffi.rs b/integration_tests/tests/wallet_ffi.rs index ad63e9b7..295d3917 100644 --- a/integration_tests/tests/wallet_ffi.rs +++ b/integration_tests/tests/wallet_ffi.rs @@ -33,6 +33,7 @@ use wallet_ffi::{ FfiAccount, FfiAccountIdentity, FfiAccountList, FfiBytes32, FfiPrivateAccountKeys, FfiPublicAccountKey, FfiTransferResult, FfiU128, WalletHandle, error, generic_transaction::{FfiProgramWithDependencies, FfiTransactionResult}, + wallet::FfiCreateWalletOutput, }; unsafe extern "C" { @@ -40,7 +41,7 @@ unsafe extern "C" { config_path: *const c_char, storage_path: *const c_char, password: *const c_char, - ) -> *mut WalletHandle; + ) -> FfiCreateWalletOutput; fn wallet_ffi_open( config_path: *const c_char, @@ -214,6 +215,13 @@ unsafe extern "C" { out_block_height: *mut u64, ) -> error::WalletFfiError; + fn wallet_ffi_restore_data( + handle: *mut WalletHandle, + mnemonic: *const c_char, + password: *const c_char, + depth: u32, + ) -> error::WalletFfiError; + fn wallet_ffi_resolve_public_account( account_id: FfiBytes32, needs_sign: bool, @@ -254,7 +262,7 @@ unsafe extern "C" { fn new_wallet_ffi_with_test_context_config( ctx: &BlockingTestContext, home: &Path, -) -> Result<*mut WalletHandle> { +) -> Result { let config_path = home.join("wallet_config.json"); let storage_path = home.join("storage.json"); let mut config = ctx.ctx().wallet().config().to_owned(); @@ -275,7 +283,7 @@ fn new_wallet_ffi_with_test_context_config( let storage_path = CString::new(storage_path.to_str().unwrap())?; let password = CString::new(ctx.ctx().wallet_password())?; - let wallet_ffi_handle = unsafe { + let create_wallet_result = unsafe { wallet_ffi_create_new( config_path.as_ptr(), storage_path.as_ptr(), @@ -293,8 +301,10 @@ fn new_wallet_ffi_with_test_context_config( .unwrap() .to_string(); let private_key_hex = CString::new(private_key_hex)?; - unsafe { wallet_ffi_import_public_account(wallet_ffi_handle, private_key_hex.as_ptr()) } - .unwrap(); + unsafe { + wallet_ffi_import_public_account(create_wallet_result.wallet, private_key_hex.as_ptr()) + } + .unwrap(); } for (account_id, _chain_index) in source_key_chain.private_account_ids() { @@ -317,7 +327,7 @@ fn new_wallet_ffi_with_test_context_config( unsafe { wallet_ffi_import_private_account( - wallet_ffi_handle, + create_wallet_result.wallet, key_chain_json.as_ptr(), chain_index_ptr, &raw const identifier, @@ -327,10 +337,10 @@ fn new_wallet_ffi_with_test_context_config( .unwrap(); } - Ok(wallet_ffi_handle) + Ok(create_wallet_result) } -fn new_wallet_ffi_with_default_config(password: &str) -> Result<*mut WalletHandle> { +fn new_wallet_ffi_with_default_config(password: &str) -> Result { let tempdir = tempdir()?; let config_path = tempdir.path().join("wallet_config.json"); let storage_path = tempdir.path().join("storage.json"); @@ -338,13 +348,15 @@ fn new_wallet_ffi_with_default_config(password: &str) -> Result<*mut WalletHandl let storage_path_c = CString::new(storage_path.to_str().unwrap())?; let password = CString::new(password)?; - Ok(unsafe { + let create_wallet_result = unsafe { wallet_ffi_create_new( config_path_c.as_ptr(), storage_path_c.as_ptr(), password.as_ptr(), ) - }) + }; + + Ok(create_wallet_result) } fn load_existing_ffi_wallet(home: &Path) -> Result<*mut WalletHandle> { @@ -365,7 +377,10 @@ fn wallet_ffi_create_public_accounts() -> Result<()> { let new_public_account_ids_ffi = unsafe { let mut account_ids = Vec::new(); - let wallet_ffi_handle = new_wallet_ffi_with_default_config(password)?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_default_config(password)?; for _ in 0..n_accounts { let mut out_account_id = FfiBytes32::from_bytes([0; 32]); wallet_ffi_create_account_public(wallet_ffi_handle, &raw mut out_account_id).unwrap(); @@ -401,7 +416,10 @@ fn wallet_ffi_create_private_accounts() -> Result<()> { let new_npks_ffi = unsafe { let mut npks = Vec::new(); - let wallet_ffi_handle = new_wallet_ffi_with_default_config(password)?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_default_config(password)?; for _ in 0..n_accounts { let mut out_keys = FfiPrivateAccountKeys::default(); wallet_ffi_create_private_accounts_key(wallet_ffi_handle, &raw mut out_keys).unwrap(); @@ -430,7 +448,10 @@ fn wallet_ffi_save_and_load_persistent_storage() -> Result<()> { let home = tempfile::tempdir()?; // Create a receiving key and save let first_npk = unsafe { - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let mut out_keys = FfiPrivateAccountKeys::default(); wallet_ffi_create_private_accounts_key(wallet_ffi_handle, &raw mut out_keys).unwrap(); let npk = out_keys.nullifier_public_key.data; @@ -467,7 +488,10 @@ fn test_wallet_ffi_list_accounts() -> Result<()> { // Create the wallet FFI and track which account IDs were created as public/private let (wallet_ffi_handle, created_public_ids) = unsafe { - let handle = new_wallet_ffi_with_default_config(password)?; + let FfiCreateWalletOutput { + wallet: handle, + mnemonic: _, + } = new_wallet_ffi_with_default_config(password)?; let mut public_ids: Vec<[u8; 32]> = Vec::new(); // Create 5 public accounts and 5 receiving keys @@ -532,7 +556,10 @@ fn test_wallet_ffi_get_balance_public() -> Result<()> { let ctx = BlockingTestContext::new()?; let account_id: AccountId = ctx.ctx().existing_public_accounts()[0]; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let balance = unsafe { let mut out_balance: [u8; 16] = [0; 16]; @@ -562,7 +589,10 @@ fn test_wallet_ffi_get_account_public() -> Result<()> { let ctx = BlockingTestContext::new()?; let account_id: AccountId = ctx.ctx().existing_public_accounts()[0]; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let mut out_account = FfiAccount::default(); let account: Account = unsafe { @@ -599,7 +629,10 @@ fn test_wallet_ffi_get_account_private() -> Result<()> { let ctx = BlockingTestContext::new()?; let account_id: AccountId = ctx.ctx().existing_private_accounts()[0]; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let mut out_account = FfiAccount::default(); let account: Account = unsafe { @@ -635,7 +668,10 @@ fn test_wallet_ffi_get_public_account_keys() -> Result<()> { let ctx = BlockingTestContext::new()?; let account_id: AccountId = ctx.ctx().existing_public_accounts()[0]; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let mut out_key = FfiPublicAccountKey::default(); let key: PublicKey = unsafe { @@ -674,7 +710,10 @@ fn test_wallet_ffi_get_private_account_keys() -> Result<()> { let ctx = BlockingTestContext::new()?; let account_id: AccountId = ctx.ctx().existing_private_accounts()[0]; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let mut keys = FfiPrivateAccountKeys::default(); unsafe { @@ -756,7 +795,10 @@ fn wallet_ffi_base58_to_account_id() -> Result<()> { fn wallet_ffi_init_public_account_auth_transfer() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; // Create a new uninitialized public account let mut out_account_id = FfiBytes32::from_bytes([0; 32]); @@ -819,7 +861,10 @@ fn wallet_ffi_init_public_account_auth_transfer() -> Result<()> { fn wallet_ffi_init_private_account_auth_transfer() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; // Create a new private account let mut out_account_id = FfiBytes32::default(); @@ -876,7 +921,10 @@ fn wallet_ffi_init_private_account_auth_transfer() -> Result<()> { fn test_wallet_ffi_transfer_public() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_public_accounts()[0].into(); let to: FfiBytes32 = ctx.ctx().existing_public_accounts()[1].into(); let amount: [u8; 16] = 100_u128.to_le_bytes(); @@ -930,7 +978,10 @@ fn test_wallet_ffi_transfer_public() -> Result<()> { fn test_wallet_ffi_transfer_shielded() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_public_accounts()[0].into(); let (to, to_keys) = unsafe { let mut out_keys = FfiPrivateAccountKeys::default(); @@ -1006,7 +1057,10 @@ fn test_wallet_ffi_transfer_shielded() -> Result<()> { fn test_wallet_ffi_transfer_deshielded() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_private_accounts()[0].into(); let to: FfiBytes32 = ctx.ctx().existing_public_accounts()[0].into(); let amount: [u8; 16] = 100_u128.to_le_bytes(); @@ -1066,7 +1120,10 @@ fn test_wallet_ffi_transfer_deshielded() -> Result<()> { fn test_wallet_ffi_transfer_private() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_private_accounts()[0].into(); let (to, to_keys) = unsafe { @@ -1138,11 +1195,303 @@ fn test_wallet_ffi_transfer_private() -> Result<()> { Ok(()) } +#[test] +fn restore_keys_from_seed_ffi() -> Result<()> { + let ctx = BlockingTestContext::new()?; + let home = tempfile::tempdir()?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + + let mnemonic = unsafe { CString::from_raw(mnemonic) }; + + // Create 2 new private accounts + let (private_account_id_1, private_account_1_keys) = unsafe { + let mut out_keys = FfiPrivateAccountKeys::default(); + wallet_ffi_create_private_accounts_key(wallet_ffi_handle, &raw mut out_keys).unwrap(); + let account_id = lee::AccountId::for_regular_private_account(&out_keys.npk(), 0_u128); + let to: FfiBytes32 = account_id.into(); + (to, out_keys) + }; + + let (private_account_id_2, private_account_2_keys) = unsafe { + let mut out_keys = FfiPrivateAccountKeys::default(); + wallet_ffi_create_private_accounts_key(wallet_ffi_handle, &raw mut out_keys).unwrap(); + let account_id = lee::AccountId::for_regular_private_account(&out_keys.npk(), 0_u128); + let to: FfiBytes32 = account_id.into(); + (to, out_keys) + }; + + // Create 2 new public accounts + let mut public_account_id_1 = FfiBytes32::default(); + unsafe { + wallet_ffi_create_account_public(wallet_ffi_handle, &raw mut public_account_id_1).unwrap(); + } + + let mut public_account_id_2 = FfiBytes32::default(); + unsafe { + wallet_ffi_create_account_public(wallet_ffi_handle, &raw mut public_account_id_2).unwrap(); + } + + info!("Accounts created"); + + info!("Waiting for next block creation"); + std::thread::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)); + + // Sync private account local storage with onchain encrypted state + unsafe { + let mut current_height = 0; + wallet_ffi_get_current_block_height(wallet_ffi_handle, &raw mut current_height).unwrap(); + wallet_ffi_sync_to_block(wallet_ffi_handle, current_height).unwrap(); + }; + + // Send funds to accounts + let from_private: FfiBytes32 = ctx.ctx().existing_private_accounts()[0].into(); + let from_public: FfiBytes32 = ctx.ctx().existing_public_accounts()[0].into(); + + let amount_1: [u8; 16] = 100_u128.to_le_bytes(); + + let mut transfer_result_1 = FfiTransferResult::default(); + unsafe { + let to_identifier = FfiU128 { + data: 0_u128.to_le_bytes(), + }; + wallet_ffi_transfer_private( + wallet_ffi_handle, + &raw const from_private, + &raw const private_account_1_keys, + &raw const to_identifier, + &raw const amount_1, + &raw mut transfer_result_1, + ) + .unwrap(); + } + + info!("Waiting for next block creation"); + std::thread::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)); + + // Sync private account local storage with onchain encrypted state + unsafe { + let mut current_height = 0; + wallet_ffi_get_current_block_height(wallet_ffi_handle, &raw mut current_height).unwrap(); + wallet_ffi_sync_to_block(wallet_ffi_handle, current_height).unwrap(); + }; + + let amount_2: [u8; 16] = 101_u128.to_le_bytes(); + + let mut transfer_result_2 = FfiTransferResult::default(); + unsafe { + let to_identifier = FfiU128 { + data: 0_u128.to_le_bytes(), + }; + wallet_ffi_transfer_private( + wallet_ffi_handle, + &raw const from_private, + &raw const private_account_2_keys, + &raw const to_identifier, + &raw const amount_2, + &raw mut transfer_result_2, + ) + .unwrap(); + } + + info!("Waiting for next block creation"); + std::thread::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)); + + // Sync private account local storage with onchain encrypted state + unsafe { + let mut current_height = 0; + wallet_ffi_get_current_block_height(wallet_ffi_handle, &raw mut current_height).unwrap(); + wallet_ffi_sync_to_block(wallet_ffi_handle, current_height).unwrap(); + }; + + let amount_3: [u8; 16] = 102_u128.to_le_bytes(); + + let mut transfer_result_3 = FfiTransferResult::default(); + unsafe { + wallet_ffi_transfer_public( + wallet_ffi_handle, + &raw const from_public, + &raw const public_account_id_1, + &raw const amount_3, + &raw mut transfer_result_3, + ) + .unwrap(); + } + + info!("Waiting for next block creation"); + std::thread::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)); + + // Sync private account local storage with onchain encrypted state + unsafe { + let mut current_height = 0; + wallet_ffi_get_current_block_height(wallet_ffi_handle, &raw mut current_height).unwrap(); + wallet_ffi_sync_to_block(wallet_ffi_handle, current_height).unwrap(); + }; + + let amount_4: [u8; 16] = 103_u128.to_le_bytes(); + + let mut transfer_result_4 = FfiTransferResult::default(); + unsafe { + wallet_ffi_transfer_public( + wallet_ffi_handle, + &raw const from_public, + &raw const public_account_id_2, + &raw const amount_4, + &raw mut transfer_result_4, + ) + .unwrap(); + } + + info!("Waiting for next block creation"); + std::thread::sleep(Duration::from_secs(TIME_TO_WAIT_FOR_BLOCK_SECONDS)); + + // Sync private account local storage with onchain encrypted state + unsafe { + let mut current_height = 0; + wallet_ffi_get_current_block_height(wallet_ffi_handle, &raw mut current_height).unwrap(); + wallet_ffi_sync_to_block(wallet_ffi_handle, current_height).unwrap(); + }; + + unsafe { + wallet_ffi_free_transfer_result(&raw mut transfer_result_1); + wallet_ffi_free_transfer_result(&raw mut transfer_result_2); + wallet_ffi_free_transfer_result(&raw mut transfer_result_3); + wallet_ffi_free_transfer_result(&raw mut transfer_result_4); + } + + info!("Preparation complete, performing keys restoration"); + + let password = CString::new(ctx.ctx().wallet_password())?; + + info!("Checking balance correctness before restoration"); + + let private_account_id_1_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const private_account_id_1, + false, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + let private_account_id_2_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const private_account_id_2, + false, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + let public_account_id_1_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const public_account_id_1, + true, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + let public_account_id_2_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const public_account_id_2, + true, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + assert_eq!(private_account_id_1_balance, 100); + assert_eq!(private_account_id_2_balance, 101); + assert_eq!(public_account_id_1_balance, 102); + assert_eq!(public_account_id_2_balance, 103); + + unsafe { + wallet_ffi_restore_data(wallet_ffi_handle, mnemonic.as_ptr(), password.as_ptr(), 5) + .unwrap(); + } + + // Sync private account local storage with onchain encrypted state + unsafe { + let mut current_height = 0; + wallet_ffi_get_current_block_height(wallet_ffi_handle, &raw mut current_height).unwrap(); + wallet_ffi_sync_to_block(wallet_ffi_handle, current_height).unwrap(); + }; + + info!("Checking balance correctness after restoration"); + + let private_account_id_1_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const private_account_id_1, + false, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + let private_account_id_2_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const private_account_id_2, + false, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + let public_account_id_1_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const public_account_id_1, + true, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + let public_account_id_2_balance = unsafe { + let mut out_balance: [u8; 16] = [0; 16]; + let _result = wallet_ffi_get_balance( + wallet_ffi_handle, + &raw const public_account_id_2, + true, + &raw mut out_balance, + ); + u128::from_le_bytes(out_balance) + }; + + assert_eq!(private_account_id_1_balance, 100); + assert_eq!(private_account_id_2_balance, 101); + assert_eq!(public_account_id_1_balance, 102); + assert_eq!(public_account_id_2_balance, 103); + + info!("Accounts restored"); + + Ok(()) +} + #[test] fn test_wallet_ffi_bridge_withdraw() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_public_accounts()[0].into(); let bridge_account: FfiBytes32 = lee::system_bridge_account_id().into(); let bedrock_account_pk = FfiBytes32::from_bytes([0x42; 32]); @@ -1202,7 +1551,10 @@ fn test_wallet_ffi_bridge_withdraw() -> Result<()> { fn test_wallet_ffi_transfer_generic_public() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_public_accounts()[0].into(); let to: FfiBytes32 = ctx.ctx().existing_public_accounts()[1].into(); let amount = 100_u128; @@ -1294,7 +1646,10 @@ fn test_wallet_ffi_transfer_generic_public() -> Result<()> { fn test_wallet_ffi_transfer_generic_private() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let from: FfiBytes32 = ctx.ctx().existing_private_accounts()[0].into(); let to: FfiBytes32 = ctx.ctx().existing_private_accounts()[1].into(); let amount = 100_u128; @@ -1400,7 +1755,10 @@ fn test_wallet_ffi_transfer_generic_private() -> Result<()> { fn test_wallet_ffi_vault_balance_and_claim_public() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let sender = ctx.ctx().existing_public_accounts()[0]; let owner = ctx.ctx().existing_public_accounts()[1]; @@ -1482,7 +1840,10 @@ fn test_wallet_ffi_vault_balance_and_claim_public() -> Result<()> { fn test_wallet_ffi_vault_balance_and_claim_private() -> Result<()> { let ctx = BlockingTestContext::new()?; let home = tempfile::tempdir()?; - let wallet_ffi_handle = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; + let FfiCreateWalletOutput { + wallet: wallet_ffi_handle, + mnemonic: _, + } = new_wallet_ffi_with_test_context_config(&ctx, home.path())?; let sender = ctx.ctx().existing_public_accounts()[0]; let owner = ctx.ctx().existing_private_accounts()[0]; diff --git a/lez/wallet-ffi/Cargo.toml b/lez/wallet-ffi/Cargo.toml index 43a4f05d..5d56fb95 100644 --- a/lez/wallet-ffi/Cargo.toml +++ b/lez/wallet-ffi/Cargo.toml @@ -21,6 +21,7 @@ tokio.workspace = true key_protocol.workspace = true serde_json.workspace = true risc0-zkvm.workspace = true +bip39.workspace = true vault_core.workspace = true [build-dependencies] diff --git a/lez/wallet-ffi/src/wallet.rs b/lez/wallet-ffi/src/wallet.rs index 7aabaa2d..b19aaae5 100644 --- a/lez/wallet-ffi/src/wallet.rs +++ b/lez/wallet-ffi/src/wallet.rs @@ -1,16 +1,18 @@ //! Wallet lifecycle management functions. use std::{ - ffi::{c_char, CStr}, + ffi::{c_char, CStr, CString}, path::PathBuf, ptr, + str::FromStr as _, sync::Mutex, }; -use wallet::WalletCore; +use bip39::Mnemonic; +use wallet::{cli::execute_keys_restoration, WalletCore}; use crate::{ - c_str_to_string, + block_on, c_str_to_string, error::{print_error, WalletFfiError}, types::WalletHandle, }; @@ -20,6 +22,22 @@ pub(crate) struct WalletWrapper { pub core: Mutex, } +#[repr(C)] +pub struct FfiCreateWalletOutput { + pub wallet: *mut WalletHandle, + /// C compatible(null terminated) string. + pub mnemonic: *mut c_char, +} + +impl Default for FfiCreateWalletOutput { + fn default() -> Self { + Self { + wallet: std::ptr::null_mut(), + mnemonic: std::ptr::null_mut(), + } + } +} + /// Helper to get the wallet wrapper from an opaque handle. pub(crate) fn get_wallet( handle: *mut WalletHandle, @@ -71,8 +89,8 @@ fn c_str_to_path(ptr: *const c_char, name: &str) -> Result *mut WalletHandle { +) -> FfiCreateWalletOutput { let Ok(config_path) = c_str_to_path(config_path, "config_path") else { - return ptr::null_mut(); + return FfiCreateWalletOutput::default(); }; let Ok(storage_path) = c_str_to_path(storage_path, "storage_path") else { - return ptr::null_mut(); + return FfiCreateWalletOutput::default(); }; let Ok(password) = c_str_to_string(password, "password") else { - return ptr::null_mut(); + return FfiCreateWalletOutput::default(); }; match WalletCore::new_init_storage(config_path, storage_path, None, &password) { - Ok((core, _mnemonic)) => { + Ok((core, mnemonic)) => { let wrapper = Box::new(WalletWrapper { core: Mutex::new(core), }); - Box::into_raw(wrapper).cast::() + let handle = Box::into_raw(wrapper).cast::(); + + let Ok(c_mnemonic_string) = CString::new(mnemonic.to_string()) else { + return FfiCreateWalletOutput::default(); + }; + + let raw_pointer = CString::into_raw(c_mnemonic_string); + + FfiCreateWalletOutput { + wallet: handle, + mnemonic: raw_pointer, + } } Err(e) => { print_error(format!("Failed to create wallet: {e}")); - ptr::null_mut() + FfiCreateWalletOutput::default() } } } @@ -204,6 +233,81 @@ pub unsafe extern "C" fn wallet_ffi_save(handle: *mut WalletHandle) -> WalletFfi } } +/// Restore wallet data from mnemonic and password. +/// +/// # Parameters +/// - `handle`: Valid wallet handle +/// - `mnemonic`: Valid pointer to instance of `* char`, provided by `wallet_ffi_create_new` +/// - `password`: Valid pointer to C string. +/// - `depth`: Depth of a reconstructed tree +/// +/// # Returns +/// - `Success` on successful restoration +/// - Error code on failure +/// +/// # Safety +/// - `handle` must be a valid wallet handle from `wallet_ffi_create_new` or `wallet_ffi_open` +/// - `mnemonic` must be a valid pointer to instance of `* char`, provided by +/// `wallet_ffi_create_new` +/// - `password` must be a valid pointer to C string. +/// - `depth` parameter induces exponential growth in execution time, be aware of it. +#[no_mangle] +pub unsafe extern "C" fn wallet_ffi_restore_data( + handle: *mut WalletHandle, + mnemonic: *const c_char, + password: *const c_char, + depth: u32, +) -> WalletFfiError { + let wrapper = match get_wallet(handle) { + Ok(w) => w, + Err(e) => return e, + }; + + let mut wallet = match wrapper.core.lock() { + Ok(w) => w, + Err(e) => { + print_error(format!("Failed to lock wallet: {e}")); + return WalletFfiError::InternalError; + } + }; + + let Ok(password) = c_str_to_string(password, "password") else { + return WalletFfiError::NullPointer; + }; + + let Ok(mnemonic) = c_str_to_string(mnemonic, "mnemonic") else { + return WalletFfiError::NullPointer; + }; + + let mnemonic = match Mnemonic::from_str(&mnemonic) { + Ok(mn) => mn, + Err(e) => { + print_error(format!("Failed to parse mnemonic: {e}")); + return WalletFfiError::SerializationError; + } + }; + + let res = match wallet.restore_storage(&mnemonic, &password) { + Ok(()) => WalletFfiError::Success, + Err(e) => { + print_error(format!("Failed to restore wallet data: {e}")); + WalletFfiError::StorageError + } + }; + + if res == WalletFfiError::Success { + match block_on(execute_keys_restoration(&mut wallet, depth)) { + Ok(()) => WalletFfiError::Success, + Err(err) => { + print_error(format!("Failed to restore wallet data: {err}")); + WalletFfiError::StorageError + } + } + } else { + res + } +} + /// Get the sequencer address from the wallet configuration. /// /// # Parameters diff --git a/lez/wallet-ffi/wallet_ffi.h b/lez/wallet-ffi/wallet_ffi.h index 83f30d5d..a6ce6b72 100644 --- a/lez/wallet-ffi/wallet_ffi.h +++ b/lez/wallet-ffi/wallet_ffi.h @@ -299,6 +299,14 @@ typedef struct FfiPublicAccountKey { struct FfiBytes32 public_key; } FfiPublicAccountKey; +typedef struct FfiCreateWalletOutput { + struct WalletHandle *wallet; + /** + * C compatible(null terminated) string. + */ + char *mnemonic; +} FfiCreateWalletOutput; + /** * Create a new public account. * @@ -1452,15 +1460,15 @@ enum WalletFfiError wallet_ffi_vault_claim_private(struct WalletHandle *handle, * - `password`: Password for encrypting the wallet seed * * # Returns - * - Opaque wallet handle on success - * - Null pointer on error (call `wallet_ffi_get_last_error()` for details) + * - Result, which contains opaque wallet handle and mnemonic words on success + * - Result with null pointers on error (call `wallet_ffi_get_last_error()` for details) * * # Safety * All string parameters must be valid null-terminated UTF-8 strings. */ -struct WalletHandle *wallet_ffi_create_new(const char *config_path, - const char *storage_path, - const char *password); +struct FfiCreateWalletOutput wallet_ffi_create_new(const char *config_path, + const char *storage_path, + const char *password); /** * Open an existing wallet from storage. @@ -1510,6 +1518,31 @@ void wallet_ffi_destroy(struct WalletHandle *handle); */ enum WalletFfiError wallet_ffi_save(struct WalletHandle *handle); +/** + * Restore wallet data from mnemonic and password. + * + * # Parameters + * - `handle`: Valid wallet handle + * - `mnemonic`: Valid pointer to instance of `* char`, provided by `wallet_ffi_create_new` + * - `password`: Valid pointer to C string. + * - `depth`: Depth of a reconstructed tree + * + * # Returns + * - `Success` on successful restoration + * - Error code on failure + * + * # Safety + * - `handle` must be a valid wallet handle from `wallet_ffi_create_new` or `wallet_ffi_open` + * - `mnemonic` must be a valid pointer to instance of `* char`, provided by + * `wallet_ffi_create_new` + * - `password` must be a valid pointer to C string. + * - `depth` parameter induces exponential growth in execution time, be aware of it. + */ +enum WalletFfiError wallet_ffi_restore_data(struct WalletHandle *handle, + const char *mnemonic, + const char *password, + uint32_t depth); + /** * Get the sequencer address from the wallet configuration. * diff --git a/lez/wallet/src/lib.rs b/lez/wallet/src/lib.rs index 7dece16a..d8679dc1 100644 --- a/lez/wallet/src/lib.rs +++ b/lez/wallet/src/lib.rs @@ -872,3 +872,26 @@ impl WalletCore { &self.config_overrides } } + +#[cfg(test)] +mod tests { + use std::{ffi::CString, str::FromStr as _}; + + use bip39::Mnemonic; + + #[test] + fn mnemonic_roundtrip() { + let mnemonic = + Mnemonic::from_entropy(&[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]).unwrap(); + + let c_mnemonic_string = CString::new(mnemonic.to_string()).unwrap(); + let c_mnemonic_string_raw = c_mnemonic_string.into_raw(); + // Safety: Will be safe, pointer is created from CString + let c_str = unsafe { CString::from_raw(c_mnemonic_string_raw) }; + let mn_string = c_str.to_str().unwrap(); + + let mn_ret = Mnemonic::from_str(mn_string).unwrap(); + + assert_eq!(mnemonic, mn_ret); + } +} diff --git a/lez/wallet/src/storage.rs b/lez/wallet/src/storage.rs index d1415c2b..a79996f8 100644 --- a/lez/wallet/src/storage.rs +++ b/lez/wallet/src/storage.rs @@ -94,6 +94,7 @@ impl Storage { self.key_chain = UserKeyChain::new_with_accounts(public_tree, private_tree); self.labels = BTreeMap::new(); + self.last_synced_block = 0; Ok(()) }