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
354 changes: 83 additions & 271 deletions Cargo.lock

Large diffs are not rendered by default.

18 changes: 11 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,12 @@ members = [
resolver = "2"

[workspace.dependencies]
base58ck = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
bitcoin-consensus-encoding = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
bitcoin-internals = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
bitcoin-p2p-messages = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
bitcoin-primitives = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
bitcoin-units = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
bitcoin_hashes = { git = "https://github.com/rust-bitcoin/rust-bitcoin", tag = "bitcoin-crypto-0.2.0", default-features = false }
base58ck = { version = "0.4.0", default-features = false }
bitcoin-consensus-encoding = { version = "1.2.0", default-features = false }
bitcoin-internals = { version = "0.6.0", default-features = false }
bitcoin-primitives = { version = "0.103.0", default-features = false }
bitcoin-units = { version = "0.5.0", default-features = false }
bitcoin_hashes = { version = "1.2.0", default-features = false }

[workspace.lints.clippy]
expect_used = "deny"
Expand All @@ -40,6 +39,11 @@ unsafe_code = "deny"
unused_must_use = "deny"

[workspace.package]
authors = ["Kittywhiskers Van Gogh <kittywhiskers@dash.org>"]
edition = "2021"
homepage = "https://dashpay.github.io/base-sdk"
license = "MIT"
repository = "https://github.com/dashpay/base-sdk"
rust-version = "1.85.0"

[profile.release]
Expand Down
8 changes: 6 additions & 2 deletions contrib/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ source .venv/bin/activate
[`pyproject.toml`](../pyproject.toml) supplies most but not all dependencies needed to run the lint suite, the following
packages need to be additionally sourced.

* [cargo-deny](https://github.com/EmbarkStudios/cargo-deny)
* [Git](https://git-scm.com/install/)
* [CodeQL 2.24 or higher](https://github.com/github/codeql-cli-binaries/releases) (Rust support was added in 2.23.3,
[source](https://github.blog/changelog/2025-10-23-codeql-2-23-3-adds-a-new-rust-query-rust-support-and-easier-c-c-scanning/))
Expand All @@ -46,7 +47,7 @@ packages need to be additionally sourced.
> ([source](https://docs.brew.sh/FAQ#what-does-keg-only-mean)).

```bash
brew install codeql git node@24
brew install cargo-deny codeql git node@24
```

### Linux/WSL
Expand Down Expand Up @@ -79,12 +80,15 @@ cargo install taplo-cli
# Required because Debian trixie ships Node 20.x, deprecated in April 2026
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install git nodejs -y

# `cargo-deny` is currently unavailable on Debian (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=951368)
cargo install --locked cargo-deny
```

#### Fedora

```bash
sudo dnf install -y git nodejs24
sudo dnf install -y cargo-deny git nodejs24
```

<!-- [end:setup] -->
Expand Down
1 change: 1 addition & 0 deletions contrib/nix/mods/nixpkgs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ let
in
{
packages = [
pkgs.cargo-deny
pkgs.cargo-llvm-cov
pkgs.git
pkgs.nixfmt
Expand Down
5 changes: 5 additions & 0 deletions deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[graph]
all-features = true

[advisories]
yanked = "deny"
53 changes: 49 additions & 4 deletions docs/dev/about_docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ edits and the pages that could be affected by your edits to ensure it remains pl

To splice in a whole document, or a spliced segment of it (like `setup`), the syntax is as below.

```markdown
```text
<!-- [include:contrib/README.md] -->
<!-- [include:contrib/README.md:setup] -->
```
Expand All @@ -106,14 +106,59 @@ To splice in a whole document, or a spliced segment of it (like `setup`), the sy

To create a spliceable segment, wrap the desired text in `start` and `end` markers carrying its label (like `setup`).

```markdown
```text
<!-- [start:setup] -->
Carried into the splice.
<!-- [end:setup] -->
```

Links in spliced material are resolved against the file that defines them, not the page splicing it in (see
[link processing](#link-processing)). Splices may nest, and a directive inside a code fence is inert.
[link processing](#link-processing)). Splices may nest.

#### Inlining

> [!TIP]
> To write directives as literal text without parsing it, wrap the text segment in a code block with
> formatting type text (i.e. &#96;&#96;&#96;text). This will instruct the preprocessor to *not* interpret the
> captured segment as directives, quoting or otherwise.

Example code has a recurring problem of staleness, where (especially in early incubation), code segments may undergo
radical changes in shape, scope and location. This can result in examples that at best, don't compile at all and at
worst, enact behaviors that do not match the text description or mislead the reader.

This is avoided by using segments from the live codebase, as shown below for inlining a complete file.

````text
```toml
<!-- [include:maint/unconv.toml] -->
```
````

> [!WARNING]
> Splicing non-Markdown files outside code blocks is prohibited as Markdown files undergo additional processing steps
> and such files have a high tendency of disturbing the final page render.

And for partial inlining, the syntax is similar to regular splicing.

````text
# In Markdown

```rust
<!-- [include:pkgs/types/src/codec.rs:vec-codec] -->
```
````

With its counterpart in a source file appearing like so.

```rust
// In Rust

// [start:vec-codec]
impl<T: BaseCodec> Encoder for VecEncoder<T> {
// ...
}
// [end:vec-codec]
```

### Omitting

Expand All @@ -124,7 +169,7 @@ situations where most of the file is included _except_ for a small portion. Omis
To omit a segment, use the following syntax. Unlike other labels, `omit` can be used repeatedly but typos of `omit` will
be treated as ordinary spliceable segments.

```markdown
```text
<!-- [start:omit] -->
Rendered on GitHub, absent from the site.
<!-- [end:omit] -->
Expand Down
Loading