a21a01cf1a
* start node families topic branch * start node families topic branch * initialise node families contract * define contract storage * registering new family in storage * accepting family invitation * add_pending_invitation * revoke_pending_invitation * remove_family_member * reject_pending_invitation * disband_family * added unit tests for the storage methods * added restriction on uniquness of family names * update rustc version for node families contract common * clippy * basic queries by id * query_families_paged * change family membership storage and expose query for all members of a family * queries for pending invitations * queries for past invitations * queries for past data per node * queries for past family members * query_past_members_for_node_paged * queries for family by name and by owner * fixup family name normalisation * fixed incorrect lower bound for queries for past data * implement contract and storage initialisation * stubbing tx messages that are to be exposed by the contract * handler for updating config * removed partial fee return * wip: create family * move mixnet contract interaction traits to shared location * store original family name alongside the normalised variant * prevent family creation if owner has a node in another family * try_disband_family * try_invite_to_family + shared helpers * try_revoke_family_invitation * accept_family_invitation * stub method for node unbonding * try_reject_family_invitation * unit tests for family name normalisation * try_leave_family * try_kick_from_family * fix outdated comments and add paid fee event attribute * feat: NMv3: leave family upon node unbonding * NF contract handling of unbonding * lints * init node families contract when creating performance contract tester * clippy * avoid self-dep in the contract dev deps * introduced client traits for interacting with the node families contract * add node families contract to cache refresher * added query for all node family members (globally) and started scaffolding nym-api caches * docs and cache -> api conversion * calculating average node age based on individual timestamps * wire up node families cache * http stubs * filled in the implementation * route tests + extracting shared code * review fixes * feat: expose family information for all dvpn gateway endpoints within NS API * expose family information for explorer v3 route * clippy * review comments and optimise db family update * feat: Node Families: expose stake information inside DVpnGateway * chore: update lock files after rebase * chore: sort workspace members * explicitly require providing node families contract address for mixnet contract migration * fix missing node families contract address env export * dont swallow cache overwrite failures in fixture * pin network-defaults rustc version due to contracts dep * further version pinning * chore: update mixnet contract schema
69 lines
2.7 KiB
TOML
69 lines
2.7 KiB
TOML
[package]
|
|
name = "nym-crypto"
|
|
description = "Crypto library for the nym mixnet"
|
|
version.workspace = true
|
|
authors = { workspace = true }
|
|
edition = { workspace = true }
|
|
license = { workspace = true }
|
|
repository = { workspace = true }
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
# pinned (not inherited from workspace) because this crate is imported by the ecash contract,
|
|
# and the contracts workspace cannot be built with rustc more recent than 1.86
|
|
rust-version = "1.86.0"
|
|
readme.workspace = true
|
|
publish = true
|
|
|
|
[dependencies]
|
|
aes-gcm-siv = { workspace = true, optional = true }
|
|
aes = { workspace = true, optional = true }
|
|
aead = { workspace = true, optional = true }
|
|
base64.workspace = true
|
|
bs58 = { workspace = true }
|
|
blake3 = { workspace = true, features = ["traits-preview"], optional = true }
|
|
ctr = { workspace = true, optional = true }
|
|
curve25519-dalek = { workspace = true, optional = true }
|
|
digest = { workspace = true, optional = true }
|
|
generic-array = { workspace = true, optional = true }
|
|
hkdf = { workspace = true, optional = true }
|
|
hmac = { workspace = true, optional = true }
|
|
jwt-simple = { workspace = true, optional = true }
|
|
libcrux-psq = { workspace = true, optional = true }
|
|
libcrux-curve25519 = { workspace = true, optional = true }
|
|
cipher = { workspace = true, optional = true }
|
|
x25519-dalek = { workspace = true, features = ["static_secrets"], optional = true }
|
|
ed25519-dalek = { workspace = true, features = ["rand_core"], optional = true }
|
|
rand = { workspace = true, optional = true }
|
|
rand09 = { workspace = true, optional = true }
|
|
serde_bytes = { workspace = true, optional = true }
|
|
serde = { workspace = true, features = ["derive"], optional = true }
|
|
sha2 = { workspace = true, optional = true }
|
|
subtle-encoding = { workspace = true, features = ["bech32-preview"] }
|
|
thiserror = { workspace = true }
|
|
zeroize = { workspace = true, optional = true, features = ["zeroize_derive"] }
|
|
|
|
# internal
|
|
nym-sphinx-types = { workspace = true, optional = true }
|
|
nym-pemstore = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
anyhow = { workspace = true }
|
|
rand_chacha = { workspace = true }
|
|
nym-test-utils = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
|
|
|
|
[features]
|
|
default = []
|
|
aead = ["dep:aead", "aead/std", "aes-gcm-siv", "generic-array"]
|
|
naive_jwt = ["asymmetric", "jwt-simple"]
|
|
libcrux_x25519 = ["libcrux-psq", "libcrux-curve25519"]
|
|
serde = ["dep:serde", "serde_bytes", "ed25519-dalek/serde", "x25519-dalek/serde"]
|
|
asymmetric = ["x25519-dalek", "ed25519-dalek", "curve25519-dalek", "sha2", "zeroize"]
|
|
hashing = ["blake3", "digest", "hkdf", "hmac", "generic-array", "sha2", "zeroize", "rand09"]
|
|
stream_cipher = ["aes", "ctr", "cipher", "generic-array"]
|
|
sphinx = ["nym-sphinx-types", "nym-sphinx-types/sphinx"]
|
|
|
|
[lints]
|
|
workspace = true
|