Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
5d731ea
add workflow
ex10ded Mar 30, 2024
65b89fd
trim build workflow
ex10ded Mar 30, 2024
346d8b7
upgrade to maturin maintained action
ex10ded Mar 30, 2024
8f2a10f
add publish step
ex10ded Mar 31, 2024
c8d6766
add arm build
ex10ded Mar 31, 2024
c6a89c5
add support for creating signable messages for transfers and limit or…
ex10ded Sep 30, 2024
ea03d6d
Add support for starknet orders
ex10ded Apr 14, 2025
58d69d1
add tests
ex10ded Apr 14, 2025
7fcccbe
fix arm glibc build
ex10ded Apr 14, 2025
b8544de
try updating many linux for aarch64 builds
ex10ded Apr 14, 2025
3210f20
upgrade manylinux some more
ex10ded Apr 14, 2025
bb7128e
more ci fixes
ex10ded Apr 14, 2025
3b62cc4
add key generation
ex10ded Apr 14, 2025
c0c4b11
add release step to pipeline
ex10ded Apr 14, 2025
872a651
add starknet classifier
ex10ded Apr 14, 2025
24403ca
set version
ex10ded Apr 14, 2025
e41f994
use correct SemVer naming
ex10ded Apr 14, 2025
9468400
use pep440 compatible version
ex10ded Apr 14, 2025
1353ba0
add PR build
ex10ded Apr 14, 2025
8075518
reduce interpreters build during PR
ex10ded Apr 14, 2025
622de64
add auto cancel on new push
ex10ded Apr 14, 2025
aecf7da
depend on global lib
ex10ded Apr 15, 2025
6f725af
add trusted publish
ex10ded Apr 16, 2025
df88c7e
rename pipelines
ex10ded Apr 16, 2025
5cdc4a8
add transfer message hashing
ex10ded Apr 16, 2025
77ff2d7
force local install in CI
ex10ded Apr 16, 2025
40c7efe
add dist folder to download artifact step
ex10ded Apr 16, 2025
6bf2945
try manually copying to dist folder
ex10ded Apr 16, 2025
70f86a7
add no-index to PR pipeline
ex10ded Apr 16, 2025
2ae6759
do not specify an interpreter for PR build
ex10ded Apr 16, 2025
3c70c12
fix bug when reading salt as hex for transfer payload
ex10ded Apr 17, 2025
4ae3979
update to latest version of base rust lib
ex10ded May 6, 2025
41987ff
fix publishing pipeline
ex10ded May 6, 2025
7acdbd8
expose k-less sign method directly
ex10ded May 7, 2025
c233032
add withdrawal message
ex10ded Jul 30, 2025
d0f14ac
fix PR build
ex10ded Jul 30, 2025
5b10e6d
fix PR build python version quoting
ex10ded Jul 30, 2025
88e72d8
add withdrawal test
ex10ded Jul 30, 2025
1ac7995
fix CI tests
ex10ded Jul 30, 2025
e2fd190
bump version
ex10ded Jul 30, 2025
4100fbe
Bump base lib version
alexex10 Oct 1, 2025
c2a4367
Bump base lib version
alexex10 Oct 1, 2025
0418ddb
Bump base lib version
alexex10 Oct 1, 2025
f978a60
Bump base lib version
alexex10 Oct 1, 2025
eaa32dd
Merge pull request #3 from x10xchange/bump-base-lib-version
alexex10 Oct 1, 2025
77391d2
Bump PyO3 lib to support Python 3.13
alexex10 Oct 1, 2025
94ec7af
Merge pull request #4 from x10xchange/bump-pyo3-lib-py3.13
alexex10 Oct 1, 2025
aedc479
Exclude PyPy from musl linux build
alexex10 Oct 1, 2025
7220924
Exclude PyPy from musl linux build
alexex10 Oct 1, 2025
ee92c82
Exclude PyPy from musl linux build
alexex10 Oct 2, 2025
6135931
Merge pull request #5 from x10xchange/exclude-pypy-from-musllinux
alexex10 Oct 2, 2025
c7981d2
Use explicit Python versions for MacOS
alexex10 Oct 4, 2025
3c3ff35
Use explicit Python versions for MacOS
alexex10 Oct 4, 2025
69599ef
Use explicit Python versions for MacOS
alexex10 Oct 4, 2025
8fff0ea
Merge pull request #6 from x10xchange/explicit-python-versions-macos
ex10ded Oct 4, 2025
066e4c1
Update lib version
alexex10 Nov 11, 2025
ed3abcd
Merge pull request #7 from x10xchange/task/update-lib-version
alexex10 Nov 11, 2025
8c30f4c
debug dist
alexex10 Nov 11, 2025
9b48c42
debug dist
alexex10 Nov 11, 2025
6e7287f
debug dist
alexex10 Nov 11, 2025
47ec415
debug dist
alexex10 Nov 11, 2025
3045707
debug dist
alexex10 Nov 11, 2025
d4a90eb
debug dist
alexex10 Nov 11, 2025
81c1947
debug dist
alexex10 Nov 11, 2025
6ea59b8
debug dist
alexex10 Nov 11, 2025
19b614e
debug dist
alexex10 Nov 11, 2025
561e4b5
debug dist
alexex10 Nov 11, 2025
d428104
debug dist
alexex10 Nov 11, 2025
863e6c1
debug dist
alexex10 Nov 11, 2025
9a12b06
debug dist
alexex10 Nov 11, 2025
bcd713b
debug dist
alexex10 Nov 11, 2025
a88241d
debug dist
alexex10 Nov 11, 2025
dfd733f
debug dist
alexex10 Nov 11, 2025
d9be789
Merge pull request #8 from x10xchange/fix-pytest-step
alexex10 Nov 11, 2025
4a9a682
add support for limit orders
ex10ded Nov 19, 2025
6a46934
bump version
ex10ded Nov 19, 2025
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
238 changes: 238 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
name: Build, Test, and Release

on:
workflow_dispatch:

permissions:
contents: read

jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
manylinux: auto
- runner: ubuntu-22.04
target: aarch64
manylinux: "2_24"
steps:
- name: Checkout from GitHub
uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-python@v5
with:
python-version: '>=3.9 <3.14'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: ${{ matrix.platform.manylinux }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
- name: pytest
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
shell: bash
run: |
set -e
python3 -m venv .venv
source .venv/bin/activate
pip install fast-stark-crypto --no-index --find-links dist --force-reinstall
pip install pytest
pytest
- name: pytest
if: ${{ startsWith(matrix.platform.target, 'aarch64') }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.platform.target }}
distro: ubuntu22.04
githubToken: ${{ github.token }}
install: |
apt-get update
apt-get install -y --no-install-recommends python3 python3-pip
pip3 install -U pip pytest
run: |
set -e
pip3 install fast-stark-crypto --no-index --find-links dist --force-reinstall
pytest

musllinux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
- runner: ubuntu-22.04
target: aarch64
steps:
- name: Checkout from GitHub
uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-python@v5
with:
python-version: '>=3.9 <3.14'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: musllinux_1_2
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-musllinux-${{ matrix.platform.target }}
path: dist
- name: pytest
if: ${{ startsWith(matrix.platform.target, 'x86_64') }}
uses: addnab/docker-run-action@v3
with:
image: alpine:latest
options: -v ${{ github.workspace }}:/io -w /io
run: |
set -e
apk add py3-pip py3-virtualenv
python3 -m virtualenv .venv
source .venv/bin/activate
pip install fast-stark-crypto --no-index --no-index --find-links dist --force-reinstall
pip install pytest
pytest
- name: pytest
if: ${{ startsWith(matrix.platform.target, 'aarch64') }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.platform.target }}
distro: alpine_latest
githubToken: ${{ github.token }}
install: |
apk add py3-virtualenv
run: |
set -e
python3 -m virtualenv .venv
source .venv/bin/activate
pip install pytest
pip install fast-stark-crypto --no-index --find-links dist --force-reinstall
pytest

windows:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
steps:
- name: Checkout from GitHub
uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-python@v5
with:
python-version: '>=3.9 <3.14'
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist
- name: pytest
shell: bash
run: |
set -e
python3 -m venv .venv
source .venv/Scripts/activate
pip install fast-stark-crypto --no-index --find-links dist --force-reinstall
pip install pytest
pytest

macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-14
target: aarch64
steps:
- name: Checkout from GitHub
uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-python@v5
with:
python-version: '>=3.9 <3.14'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i 3.9 3.10 3.11 3.12 3.13
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
- name: pytest
run: |
set -e
python3 -m venv .venv
source .venv/bin/activate
pip install fast-stark-crypto --no-index --find-links dist --force-reinstall
pip install pytest
pytest

sdist:
runs-on: ubuntu-latest
steps:
- name: Checkout from GitHub
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist

release:
name: Release
runs-on: ubuntu-latest
needs: [linux, musllinux, windows, macos, sdist]
permissions:
id-token: write
contents: write
attestations: write
steps:
- uses: actions/download-artifact@v4
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
with:
subject-path: 'wheels-*/*'
- run: |
set -e
mkdir dist
cp wheels-*/* dist/
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true
2 changes: 2 additions & 0 deletions .github/workflows/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default owners
* @ex10ded
45 changes: 45 additions & 0 deletions .github/workflows/PR.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: PR (checks)

on:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
manylinux: auto

steps:
- name: Checkout from GitHub
uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release -i python3.10 --out dist
manylinux: ${{ matrix.platform.manylinux }}
- name: pytest
shell: bash
run: |
set -e
python3 -m venv .venv
source .venv/bin/activate
pip install fast-stark-crypto --find-links dist --no-index --force-reinstall
pip install pytest
pytest
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
target
*.so
*.pyc
*.pyc
*.whl
*.tar.*

venv
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "rust-crypto-lib-base"]
path = rust-crypto-lib-base
url = git@github.com:x10xchange/rust-crypto-lib-base.git
7 changes: 7 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"python.testing.pytestArgs": [
"tests"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
}
Loading