Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,24 @@ insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
max_line_length = 80

[*.{d,h,hpp,c,cpp,cxx,cs,hs,java,kt,py,rs,sol}]
indent_size = 4

[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
[{Makefile,go.mod,go.sum,*.go,.gitmodules,dub.selections.json}]
indent_style = tab
indent_size = 4
[*.md]
indent_style = space
# Prettier handles formatting for markdown files
# and `indent_size` is not enforcable because ordered and unordered lists use
# different indentation:
indent_size = unset
[**/Cargo.lock]
indent_style = space
indent_size = unset
[*.wit]
indent_style = space
indent_size = 2
[*.rs]
indent_size = unset
21 changes: 10 additions & 11 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
version: 2
updates:

- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
time: '00:00'
timezone: UTC
open-pull-requests-limit: 10
commit-message:
prefix: "chore"
include: "scope"
- package-ecosystem: github-actions
directory: '/'
schedule:
interval: daily
time: '00:00'
timezone: UTC
open-pull-requests-limit: 10
commit-message:
prefix: 'chore'
include: 'scope'
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
- main

jobs:
lint:
uses: metacraft-labs/nixos-modules/.github/workflows/reusable-lint.yml@main
secrets:
NIX_GITHUB_TOKEN: ${{ secrets.NIX_GITHUB_TOKEN }}
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
ci:
uses: metacraft-labs/nixos-modules/.github/workflows/reusable-flake-checks-ci-matrix.yml@main
secrets:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/update-flake-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
schedule:
- cron: 0 0 * * 0


jobs:
update-flake-lock:
uses: metacraft-labs/nixos-modules/.github/workflows/reusable-update-flake-lock.yml@main
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update-flake-packages.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: "Update Flake Packages ❄️"
name: 'Update Flake Packages ❄️'
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *" # https://crontab.guru/#0_0_*_*_*
- cron: '0 0 * * *' # https://crontab.guru/#0_0_*_*_*

jobs:
update-flake-packages:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ matrix.json
matrix-pre.json
matrix-post.json
comment.md

# Pre Commit
.pre-commit-config.yaml
8 changes: 8 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.direnv
node_modules
.yarn
.pnp.cjs
.pnp.loader.mjs
*.json
flake.lock
*.mdx
8 changes: 8 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"semi": true,
"arrowParens": "avoid",
"trailingComma": "all"
}
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,15 @@ A Nix flake offering blockchain development tools
This repo is provided as a Nix Flake. The packages defined here can be consumed
via one of the flake output categories:

* `overlays.default` (which you can e.g. apply on top of Nixpkgs)
* All packages are placed inside the `metacraft-labs` namespace
* For example: `metacraft-labs.solana`
* `packages.${arch}.${pkg}` - suitable for use with `nix shell`

- `overlays.default` (which you can e.g. apply on top of Nixpkgs)
- All packages are placed inside the `metacraft-labs` namespace
- For example: `metacraft-labs.solana`
- `packages.${arch}.${pkg}` - suitable for use with `nix shell`

1. Blockchain Node Software

| package name | description | supported platforms |
|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| [avalanche-cli]([avalanche-url]) | Helps developers develop and test subnets | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [bnb-beacon-node]([bnb-beacon-node-url]) | Blockchain with a flexible set of native assets and pluggable modules | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [cardano]([cardano-url]) | HTTP server & command-line for managing UTxOs and HD wallets in Cardano | x86_64-linux, x86_64-darwin |
Expand All @@ -34,7 +33,7 @@ via one of the flake output categories:
2. ZK Circuit-related Software

| package name | description | supported platforms |
|----------------------------------------|----------------------------------------------------------------------------|---------------------------------------------|
| -------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------- |
| [circom]([circom-url]) | zkSnark circuit compiler | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [circom_runtime]([circom_runtime-url]) | The code needed to calculate the witness by a circuit compiled with circom | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [ffiasm]([ffiasm-url]) | A script that generates a Finite field Library in Intel64 and ARM Assembly | x86_64-linux, x86_64-darwin |
Expand All @@ -46,22 +45,23 @@ via one of the flake output categories:
3. General Dev Tools

| package name | description | supported platforms |
|------------------------------|---------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| [emscripten][emscripten-url] | An LLVM-to-WebAssembly Compiler | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [kurtosis]([kurtosis-url]) | A platform for packaging and launching ephemeral backend stacks with a focus on approachability for the average developer | x86_64-linux |

4. Libraries
* Cryptography-related

| package name | description | supported platforms |
|----------------------------|--------------------------------------------------------------------------------|---------------------------------------------|
| [blst]([blst-url]) | Multilingual BLS12-381 signature library | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [py-ecc]([py-ecc-url]) | Python implementation of ECC pairing and bn_128 and bls12_381 curve operations | x86_64-linux |
- Cryptography-related

| package name | description | supported platforms |
| ---------------------- | ------------------------------------------------------------------------------ | ------------------------------------------- |
| [blst]([blst-url]) | Multilingual BLS12-381 signature library | x86_64-linux, x86_64-darwin, aarch64-darwin |
| [py-ecc]([py-ecc-url]) | Python implementation of ECC pairing and bn_128 and bls12_381 curve operations | x86_64-linux |

* General-purpose
- General-purpose

| package name | description | supported platforms |
|----------------------------|------------------------------------------------|---------------------|
| -------------------------- | ---------------------------------------------- | ------------------- |
| [pistache]([pistache-url]) | A high-performance REST toolkit written in C++ | x86_64-linux |

[cosmos-url]: https://github.com/hyphacoop/testnets/blob/master/local/previous-local-testnets/v7-theta/priv_validator_key.json
Expand Down Expand Up @@ -98,7 +98,7 @@ nix shell github:metacraft-labs/nix-blockchain-development#solana

### Declarative with Nix Flakes dev shell

* `flake.nix`:
- `flake.nix`:

```nix
{
Expand Down Expand Up @@ -144,7 +144,7 @@ nix shell github:metacraft-labs/nix-blockchain-development#solana
}
```

* `shell.nix`:
- `shell.nix`:

```nix
{pkgs}:
Expand Down
12 changes: 6 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 29 additions & 14 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,35 @@
};
};

outputs = inputs @ {flake-parts, ...}:
flake-parts.lib.mkFlake {inherit inputs;} {
systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
imports = [./packages];
perSystem = {
final,
self',
...
}: {
devShells.default = import ./shells/all.nix {
pkgs = final;
inherit self';
outputs =
inputs@{ flake-parts, nixos-modules, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
imports = [
nixos-modules.modules.flake.git-hooks
./packages
];
perSystem =
{
final,
self',
config,
...
}:
{
devShells.default = import ./shells/all.nix {
pkgs = final;
inherit self';
};
devShells.ci = import ./shells/ci.nix {
pkgs = final;
inherit config;
};
};
devShells.ci = import ./shells/ci.nix {pkgs = final;};
};
};
}
Loading