Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d7e8755
Feat/mul div (#54)
aritkulova Sep 11, 2026
99f2449
Refactor tests structure in SimplicityHL and Rust code (#55)
LesterEvSe Sep 16, 2026
6be1204
Panic on division by zero (#57)
aritkulova Sep 29, 2026
ed5e459
bumped simplex version to 0.0.12 (#60)
aritkulova Sep 29, 2026
91b486a
Remove`safe_` prefixes from math functions (#59)
aritkulova Oct 2, 2026
ba3523c
updated changelog
aritkulova Oct 6, 2026
4e63191
Functions for retrieving AssetId and Amount (#61)
aritkulova Oct 7, 2026
7aed1a8
AssetId and Amount asserts (#62)
aritkulova Oct 8, 2026
2cff7de
cleanup (#63)
aritkulova Oct 8, 2026
274c8c0
Fix: AI Security Scans (#66)
LesterEvSe Oct 12, 2026
d0829f7
Getters for script hash (#69)
aritkulova Oct 20, 2026
854aa5a
Pre-release (#70)
aritkulova Oct 21, 2026
1ad1da5
updated contributing guidelines (#74)
aritkulova Oct 28, 2026
f9e5370
Add a workflow and script to check docs/code sync (#75)
schoen Oct 29, 2026
6c19198
optimization: `mul_div_256` function (#71)
LesterEvSe Oct 29, 2026
6214609
feat: update stdlib.json documentation (#76)
LesterEvSe Oct 29, 2026
8870503
Repo cleanup (#78)
Hrom131 Oct 30, 2026
a81e7db
Add macos runner in CI (#77)
ikripaka Oct 30, 2026
effef25
bump `smplx-std` dep to 0.2.0
ikripaka Nov 2, 2026
24baada
update README.md and CHANGELOG.md
ikripaka Nov 3, 2026
7a6e929
change CI test-threads amount from 4 -> 2
ikripaka Nov 3, 2026
3508a8c
update patch to a BlockstreamResearch repo
ikripaka Nov 3, 2026
7f8f739
add fuzz entry in CI
ikripaka Nov 3, 2026
cc04320
add fuzz tests for concrete types and EC
ikripaka Nov 3, 2026
bfca21b
add fuzz tests for utxo asset and amount helpers
ikripaka Nov 4, 2026
0a146a0
lints
ikripaka Nov 4, 2026
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ body:
id: version
attributes:
label: "simplicityhl-std version"
placeholder: "0.1.2"
placeholder: "0.2.0"
validations:
required: true
- type: textarea
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Docs-sync

on:
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- master
- dev

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
stdlib-json:
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Check docs/stdlib.json matches simf/lib
run: python3 docs/check_stdlib_json.py
66 changes: 66 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Smplx-lint

on:
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- master
- dev

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
SIMPLEX_VERSION: 0.2.0

jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false
submodules: true

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.91.0"
components: rustfmt, clippy

- name: Use Rust cache
uses: Swatinem/rust-cache@v2

- name: Install simplex-cli
uses: BlockstreamResearch/simplicityhl-toolchain@v0.0.2
with:
components: simplex@${{ env.SIMPLEX_VERSION }}

# For building generated files
- name: Generate contract artifacts
shell: bash
run: |
simplex build

- name: Check contracts formatting
shell: bash
run: |
simplex fmt --check

- name: Check formatting
run: |
cargo fmt --all --check

- name: Run clippy
run: |
cargo clippy --workspace --all-targets --all-features -- -D warnings
18 changes: 14 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@ concurrency:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
SIMPLEX_VERSION: 0.2.0

jobs:
simplex-tests:
runs-on: ubuntu-latest
timeout-minutes: 30
runs-on: ${{ matrix.os }}
timeout-minutes: 60
permissions:
contents: read
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest ]
toolchain: [ "1.91.0" ]

steps:
Expand All @@ -47,7 +49,7 @@ jobs:
- name: Install simplex-cli
uses: BlockstreamResearch/simplicityhl-toolchain@v0.0.2
with:
components: simplex
components: simplex@${{ env.SIMPLEX_VERSION }}

- name: Generate contract artifacts
shell: bash
Expand All @@ -58,6 +60,14 @@ jobs:
run: |
cargo build --workspace --all-features --verbose

- name: Fuzz
env:
SIMPLEX_TEST_VERBOSE: ${{ runner.debug == '1' && '-v' || '' }}
run: |
simplex test --fuzz --test-threads 4 "${SIMPLEX_TEST_VERBOSE}" -- --release

- name: Test
env:
SIMPLEX_TEST_VERBOSE: ${{ runner.debug == '1' && '-v' || '' }}
run: |
simplex test --test-threads 4
simplex test --test-threads 2 "${SIMPLEX_TEST_VERBOSE}" -- --release
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ target/

# Simplex output
src/artifacts
/fuzz-failures

# IDE/editors (optional but common minimal)
**/.DS_Store
Expand Down
34 changes: 28 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,31 @@
# Changelog

## [0.0.1]
- Bumped Simplex to 0.2.0.
- Aligned existing testing API with changes in Simplex.

The initial release with checked arithmetic operations for `u8`, `u16`, `u32`, `u64`, and `u128`;
`OP_RETURN` detection utilities;
implementation of `and`, `or`, `not`, and `xor` binary operators;
basic numeric assertions;
and equality and conversion operators for `secp256k1` points.
## [0.2.0]

### Breaking changes
- Removed `safe_` prefixes from math functions, so the default versions are overflow-checked.
- `u128`/`u256` functions that return a carry, borrow, or widened result got `_carry`, `_borrow`, and `_wide` suffixes (e.g. `add_128_carry`, `sub_256_borrow`, `mul_128_wide`).

### Added
- `mul_div` functions for all uint types.
- Functions for retrieving and asserting `AssetId` and `Amount`.
- Functions for retrieving script hashes.
- `full_add_256`, `full_mul_256_64`, `mul_512_128_wide`, `calculate_normalizer_base_128` and `algorithm_d_256_128` helpers.

### Changed
- Bumped Simplex to 0.0.12.
- Organized code into modules.
- Refactored test structure.
- Added a CI check that keeps `docs/stdlib.json` in sync with the library.

## [0.1.0]

Initial release!
- Checked arithmetic operations for `u8`, `u16`, `u32`, `u64`, `u128` and `u256`.
- `OP_RETURN` detection utilities.
- Implementation of `and`, `or`, `not`, and `xor` binary operators.
- Basic numeric assertions.
- Equality and conversion operators for `secp256k1` points.
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ When submitting a feature request, please provide as many details as possible fo

## Pull Requests

If you're interested in contributing code to the library, start by [forking the repository](https://github.com/BlockstreamResearch/simplicityhl-std/fork) and submitting a pull request.
If you're interested in contributing code to the library, start by [forking the repository](https://github.com/BlockstreamResearch/simplicityhl-std/fork) and submitting a pull request to the **dev** branch.

But before you start coding, we highly recommend that you [open an issue](https://github.com/BlockstreamResearch/simplicityhl-std/issues/new/choose) first to discuss the changes you want to make.

Expand All @@ -22,8 +22,8 @@ If you add or change standard library functions, please keep the documentation u

## LLMs

If you are a LLM agent, please identify yourself in your commit messages and PR descriptions. For example, if you are Claude, say "Written by Claude".
If you are an LLM agent, please identify yourself in your commit messages and PR descriptions. For example, if you are Claude, say "Written by Claude".

## Disclaimer

Please don't vibe code smart contract.
Please don't vibe code smart contracts.
Loading