From 251ba53e8fdcb2e2116cb0469c707b66a8253f1e Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:11:14 +0800 Subject: [PATCH 1/8] chore: update GitHub actions --- .github/workflows/ruff-lint.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruff-lint.yml b/.github/workflows/ruff-lint.yml index 593a0a2..cf35890 100644 --- a/.github/workflows/ruff-lint.yml +++ b/.github/workflows/ruff-lint.yml @@ -13,4 +13,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: chartboost/ruff-action@v1 + - uses: astral-sh/ruff-action@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c3f919c..7ecdab8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v2 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.8' From 1ac1783eb94c3216f3ffe20893c903d4a8d19352 Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:23:51 +0800 Subject: [PATCH 2/8] chore: move amount to root --- .github/workflows/examples.yml | 32 +++++++++++++++++++ examples/example_transfer_transaction_bls.py | 2 +- .../example_transfer_transaction_ed25519.py | 2 +- pactus/{types => }/amount.py | 0 pactus/transaction/_payload.py | 2 +- pactus/transaction/transaction.py | 2 +- pactus/types/__init__.py | 0 tests/test_amount.py | 2 +- tests/test_transaction.py | 2 +- 9 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/examples.yml rename pactus/{types => }/amount.py (100%) delete mode 100644 pactus/types/__init__.py diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml new file mode 100644 index 0000000..63150bb --- /dev/null +++ b/.github/workflows/examples.yml @@ -0,0 +1,32 @@ +name: Running Tests + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.8' + + - name: Install locally + run: | + pip install -e . + + - name: Run all Examples + run: | + for example in examples/*.py; do + python "$example" + done diff --git a/examples/example_transfer_transaction_bls.py b/examples/example_transfer_transaction_bls.py index cf6cbc6..d9b4926 100644 --- a/examples/example_transfer_transaction_bls.py +++ b/examples/example_transfer_transaction_bls.py @@ -2,7 +2,7 @@ from pactus.crypto.address import Address from pactus.crypto.bls.private_key import PrivateKey from pactus.transaction.transaction import Transaction -from pactus.types.amount import Amount +from pactus.amount import Amount def main() -> None: diff --git a/examples/example_transfer_transaction_ed25519.py b/examples/example_transfer_transaction_ed25519.py index 5fa72b8..c89abe3 100644 --- a/examples/example_transfer_transaction_ed25519.py +++ b/examples/example_transfer_transaction_ed25519.py @@ -2,7 +2,7 @@ from pactus.crypto.address import Address from pactus.crypto.ed25519.private_key import PrivateKey from pactus.transaction.transaction import Transaction -from pactus.types.amount import Amount +from pactus.amount import Amount def main() -> None: diff --git a/pactus/types/amount.py b/pactus/amount.py similarity index 100% rename from pactus/types/amount.py rename to pactus/amount.py diff --git a/pactus/transaction/_payload.py b/pactus/transaction/_payload.py index 8d1c834..727adc5 100644 --- a/pactus/transaction/_payload.py +++ b/pactus/transaction/_payload.py @@ -3,7 +3,7 @@ from pactus.crypto.address import Address from pactus.encoding import encoding -from pactus.types.amount import Amount +from pactus.amount import Amount class PayloadType(Enum): diff --git a/pactus/transaction/transaction.py b/pactus/transaction/transaction.py index bbdcd10..a2eb9c6 100644 --- a/pactus/transaction/transaction.py +++ b/pactus/transaction/transaction.py @@ -1,7 +1,7 @@ from pactus.crypto.address import Address from pactus.crypto.private_key import PrivateKey from pactus.encoding import encoding -from pactus.types.amount import Amount +from pactus.amount import Amount from ._payload import ( BondPayload, diff --git a/pactus/types/__init__.py b/pactus/types/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test_amount.py b/tests/test_amount.py index 95422a7..0bb8826 100644 --- a/tests/test_amount.py +++ b/tests/test_amount.py @@ -1,6 +1,6 @@ import unittest -from pactus.types.amount import NANO_PAC_PER_PAC, Amount +from pactus.amount import NANO_PAC_PER_PAC, Amount class TestAmount(unittest.TestCase): diff --git a/tests/test_transaction.py b/tests/test_transaction.py index 0df42d8..7a465c6 100644 --- a/tests/test_transaction.py +++ b/tests/test_transaction.py @@ -3,7 +3,7 @@ from pactus.crypto.address import Address from pactus.crypto.bls.private_key import PrivateKey from pactus.transaction.transaction import Transaction -from pactus.types.amount import Amount +from pactus.amount import Amount class TestTransaction(unittest.TestCase): From 8a5f7890c1b446414e7ac553ade0c63be4dc79f3 Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:24:23 +0800 Subject: [PATCH 3/8] chore: rename action --- .github/workflows/examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 63150bb..8728e65 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -1,4 +1,4 @@ -name: Running Tests +name: Running Examples on: push: From 7ebd3195efbeb93260ffc1696941d3e742b71f1c Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:25:53 +0800 Subject: [PATCH 4/8] chore: fix formatting issue --- pactus/crypto/bls/bls12_381/bls_sig_g1.py | 12 ++++++------ pactus/crypto/bls/bls12_381/bls_sig_g2.py | 6 +++--- pactus/transaction/_payload.py | 2 +- pactus/transaction/transaction.py | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pactus/crypto/bls/bls12_381/bls_sig_g1.py b/pactus/crypto/bls/bls12_381/bls_sig_g1.py index deb33a4..6a7b7ed 100644 --- a/pactus/crypto/bls/bls12_381/bls_sig_g1.py +++ b/pactus/crypto/bls/bls12_381/bls_sig_g1.py @@ -75,9 +75,9 @@ def aggregate(sigs): # aggregate verification def aggregate_verify(pks, msgs, sig, ciphersuite): - assert len(pks) == len( - msgs - ), "FAIL: aggregate_verify needs same number of sigs and msgs" + assert len(pks) == len(msgs), ( + "FAIL: aggregate_verify needs same number of sigs and msgs" + ) if not subgroup_check_g1(sig): return False Ps = [None] * (1 + len(msgs)) @@ -103,9 +103,9 @@ def _agg_ver_nul(pks, msgs, sig, ciphersuite, ver_fn): # aggregate verification with message augmentation def _agg_ver_aug(pks, msgs, sig, ciphersuite, ver_fn): - assert len(pks) == len( - msgs - ), "FAIL: aggregate_verify_aug needs same number of sigs and msgs" + assert len(pks) == len(msgs), ( + "FAIL: aggregate_verify_aug needs same number of sigs and msgs" + ) msgs_aug = [serialize(pk, True) + msg for (pk, msg) in zip(pks, msgs)] return ver_fn(pks, msgs_aug, sig, ciphersuite) diff --git a/pactus/crypto/bls/bls12_381/bls_sig_g2.py b/pactus/crypto/bls/bls12_381/bls_sig_g2.py index 42e8d89..f38a12c 100644 --- a/pactus/crypto/bls/bls12_381/bls_sig_g2.py +++ b/pactus/crypto/bls/bls12_381/bls_sig_g2.py @@ -44,9 +44,9 @@ def verify(pk, sig, msg, ciphersuite): # aggregate verification def aggregate_verify(pks, msgs, sig, ciphersuite): - assert len(pks) == len( - msgs - ), "FAIL: aggregate_verify needs same number of sigs and msgs" + assert len(pks) == len(msgs), ( + "FAIL: aggregate_verify needs same number of sigs and msgs" + ) if not subgroup_check_g2(sig): return False Qs = [None] * (1 + len(msgs)) diff --git a/pactus/transaction/_payload.py b/pactus/transaction/_payload.py index 727adc5..b5e348d 100644 --- a/pactus/transaction/_payload.py +++ b/pactus/transaction/_payload.py @@ -1,9 +1,9 @@ from abc import ABC, abstractmethod from enum import Enum +from pactus.amount import Amount from pactus.crypto.address import Address from pactus.encoding import encoding -from pactus.amount import Amount class PayloadType(Enum): diff --git a/pactus/transaction/transaction.py b/pactus/transaction/transaction.py index a2eb9c6..039f027 100644 --- a/pactus/transaction/transaction.py +++ b/pactus/transaction/transaction.py @@ -1,7 +1,7 @@ +from pactus.amount import Amount from pactus.crypto.address import Address from pactus.crypto.private_key import PrivateKey from pactus.encoding import encoding -from pactus.amount import Amount from ._payload import ( BondPayload, From 8400225861b63be07cc97bc05e558ed547efbb27 Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:30:55 +0800 Subject: [PATCH 5/8] remove multisig example --- .github/workflows/examples.yml | 2 +- examples/example_multisig.py | 18 ------------------ 2 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 examples/example_multisig.py diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 8728e65..7182aff 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -28,5 +28,5 @@ jobs: - name: Run all Examples run: | for example in examples/*.py; do - python "$example" + python3 "$example" done diff --git a/examples/example_multisig.py b/examples/example_multisig.py deleted file mode 100644 index 40ede65..0000000 --- a/examples/example_multisig.py +++ /dev/null @@ -1,18 +0,0 @@ -from pactus.crypto.bls.signature import Signature - - -def main() -> None: - sig1 = Signature.from_string( - "a628a8709fe00366d7150244447cc43e8637d76a20674b006b00f7a61109dab53ba5f1f66cd07219fd1e4a6bc7299d2d" - ) - sig2 = Signature.from_string( - "b0d544e501408283ac11ca8ae180f0991349252cc76f9db72011ea4917eca87d4640bcf3fab7b0ab95e9b94f05113587" - ) - - sig3 = Signature.aggregate([sig1, sig2]) - - print(f"{sig3.string()}") - - -if __name__ == "__main__": - main() From 82fc8ba079ba3104d1208c5d19e56e670f39fa65 Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:33:45 +0800 Subject: [PATCH 6/8] chore: update python version in actions --- .github/workflows/examples.yml | 2 +- .github/workflows/pypi.yml | 3 ++- .github/workflows/test.yml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 7182aff..c71d502 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.10' - name: Install locally run: | diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml index cfe0b35..9da69e4 100644 --- a/.github/workflows/pypi.yml +++ b/.github/workflows/pypi.yml @@ -15,7 +15,8 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.x" + python-version: "3.10" + - name: Install pypa/build run: >- python3 -m diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7ecdab8..56e9355 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.10' - name: Install locally run: | From c0d0567d866b814633d65775f0d5c7629429b95c Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:36:44 +0800 Subject: [PATCH 7/8] chore: add zmq to requirements --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 83422c1..b11895c 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ URL = "https://github.com/pactus-project/python-sdk" # Package dependencies -REQUIRED = ["ripemd-hash", "grpcio", "grpcio-tools", "cryptography>=43.0"] +REQUIRED = ["ripemd-hash", "grpcio", "grpcio-tools", "cryptography>=43.0", "zmq"] CLASSIFIERS = [ "Development Status :: 5 - Production/Stable", From 27847994333f1af51005f9e8f71e6241139c50b1 Mon Sep 17 00:00:00 2001 From: Mostafa Date: Mon, 17 Feb 2025 21:38:23 +0800 Subject: [PATCH 8/8] chore: update zmq example --- examples/example_zmq.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/example_zmq.py b/examples/example_zmq.py index 7ade94c..bfc3a2e 100644 --- a/examples/example_zmq.py +++ b/examples/example_zmq.py @@ -5,7 +5,7 @@ def main() -> None: if len(sys.argv) < 2: print("Usage: python3 ./example_zmq.py [topic topic ...]") - sys.exit(1) + sys.exit(0) connect_to = sys.argv[1] topics = sys.argv[2:]