neo3-boa


Nameneo3-boa JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/CityOfZion/neo3-boa
SummaryA Python compiler for the Neo3 Virtual Machine
upload_time2023-10-16 19:35:42
maintainer
docs_urlNone
author
requires_python>=3.10
licenseApache License 2.0
keywords compiler neo .nef blockchain smartcontract development dapp
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            
============================================
Python compiler for the Neo3 Virtual Machine
============================================

-  `Overview <#overview>`__

   -  `Product Strategy <#product-strategy>`__
-  `Quickstart <#quickstart>`__

   -  `Compiling your Smart Contract <#compiling-your-smart-contract>`__
-  `Docs <#docs>`__
-  `Reference Examples <#reference-examples>`__
-  `License <#license>`__

Overview
--------

Neo3-Boa is a tool for creating Neo Smart Contracts using Python. It compiles `.py` files to `.nef` and `.manifest.json` formats for usage in the `Neo Virtual Machine <https://github.com/neo-project/neo-vm/>`__ which is used to execute contracts on the `Neo Blockchain <https://github.com/neo-project/neo/>`__.

Neo-boa is part of the Neo Python Framework, aimed to allow the full development of dApps using Python alone.

Product Strategy
================

Pure Python
^^^^^^^^^^^
We want Python developers to feel comfortable when trying Neo3-Boa for the first time. It should look and behave like regular Python. For this reason we decided to avoid adding new keywords, but use decorators and helper functions instead.

Neo Python Framework
^^^^^^^^^^^^^^^^^^^^
In the real world, simply coding a smart contract is not enough. Developers need to debug, deploy and invoke it. Therefore, it’s important for this tool to be part of a bigger Python framework. To help the developers and avoid a bad user experience, we need to use logs and inform errors with details.

Testing against Neo VM
^^^^^^^^^^^^^^^^^^^^^^
We need to ensure that the code works as expected, and the only way to do that is to run our tests against the official Neo 3 VM. Neo repository already contains a class called TestEngine that is capable of running tests using C# smart-contracts. It will be adjusted to support compiled smart-contracts.

Maintenance
^^^^^^^^^^^
Create a product that is easy to maintain and upgrade. Use Unit tests, typed and documented code to ensure its maintainability.

Quickstart
----------

Installation requires Python 3.10 or later.

Compiling your Smart Contract
=============================

Using CLI
^^^^^^^^^

::

  $ neo3-boa compile path/to/your/file.py

.. note::  When resolving compilation errors it is recommended to resolve the first reported error and try to compile again. An error can have a cascading effect and throw more errors all caused by the first.

Using Python Script
^^^^^^^^^^^^^^^^^^^

::

  from boa3.boa3 import Boa3

  Boa3.compile_and_save('path/to/your/file.py')

Docs
----
You can `read the docs here <https://docs.coz.io/neo3/boa/index.html>`__. Please check our examples for reference.

Reference Examples
------------------

For an extensive collection of examples:

- `Smart contract examples <https://github.com/CityOfZion/neo3-boa/tree/master/boa3_test/examples>`__
- `Features tests <https://github.com/CityOfZion/neo3-boa/tree/master/boa3_test/test_sc>`__

License
-------

- Open-source `Apache 2.0 <https://github.com/CityOfZion/neo3-boa/blob/master/LICENSE>`__.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/CityOfZion/neo3-boa",
    "name": "neo3-boa",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "compiler NEO .nef blockchain smartcontract development dApp",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/18/da/413dd67d82fc7b7837317bf3ac72072d7e5ff46580735c0c6fe779727221/neo3-boa-1.1.0.tar.gz",
    "platform": null,
    "description": "\n============================================\nPython compiler for the Neo3 Virtual Machine\n============================================\n\n-  `Overview <#overview>`__\n\n   -  `Product Strategy <#product-strategy>`__\n-  `Quickstart <#quickstart>`__\n\n   -  `Compiling your Smart Contract <#compiling-your-smart-contract>`__\n-  `Docs <#docs>`__\n-  `Reference Examples <#reference-examples>`__\n-  `License <#license>`__\n\nOverview\n--------\n\nNeo3-Boa is a tool for creating Neo Smart Contracts using Python. It compiles `.py` files to `.nef` and `.manifest.json` formats for usage in the `Neo Virtual Machine <https://github.com/neo-project/neo-vm/>`__ which is used to execute contracts on the `Neo Blockchain <https://github.com/neo-project/neo/>`__.\n\nNeo-boa is part of the Neo Python Framework, aimed to allow the full development of dApps using Python alone.\n\nProduct Strategy\n================\n\nPure Python\n^^^^^^^^^^^\nWe want Python developers to feel comfortable when trying Neo3-Boa for the first time. It should look and behave like regular Python. For this reason we decided to avoid adding new keywords, but use decorators and helper functions instead.\n\nNeo Python Framework\n^^^^^^^^^^^^^^^^^^^^\nIn the real world, simply coding a smart contract is not enough. Developers need to debug, deploy and invoke it. Therefore, it\u2019s important for this tool to be part of a bigger Python framework. To help the developers and avoid a bad user experience, we need to use logs and inform errors with details.\n\nTesting against Neo VM\n^^^^^^^^^^^^^^^^^^^^^^\nWe need to ensure that the code works as expected, and the only way to do that is to run our tests against the official Neo 3 VM. Neo repository already contains a class called TestEngine that is capable of running tests using C# smart-contracts. It will be adjusted to support compiled smart-contracts.\n\nMaintenance\n^^^^^^^^^^^\nCreate a product that is easy to maintain and upgrade. Use Unit tests, typed and documented code to ensure its maintainability.\n\nQuickstart\n----------\n\nInstallation requires Python 3.10 or later.\n\nCompiling your Smart Contract\n=============================\n\nUsing CLI\n^^^^^^^^^\n\n::\n\n  $ neo3-boa compile path/to/your/file.py\n\n.. note::  When resolving compilation errors it is recommended to resolve the first reported error and try to compile again. An error can have a cascading effect and throw more errors all caused by the first.\n\nUsing Python Script\n^^^^^^^^^^^^^^^^^^^\n\n::\n\n  from boa3.boa3 import Boa3\n\n  Boa3.compile_and_save('path/to/your/file.py')\n\nDocs\n----\nYou can `read the docs here <https://docs.coz.io/neo3/boa/index.html>`__. Please check our examples for reference.\n\nReference Examples\n------------------\n\nFor an extensive collection of examples:\n\n- `Smart contract examples <https://github.com/CityOfZion/neo3-boa/tree/master/boa3_test/examples>`__\n- `Features tests <https://github.com/CityOfZion/neo3-boa/tree/master/boa3_test/test_sc>`__\n\nLicense\n-------\n\n- Open-source `Apache 2.0 <https://github.com/CityOfZion/neo3-boa/blob/master/LICENSE>`__.\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "A Python compiler for the Neo3 Virtual Machine",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://github.com/CityOfZion/neo3-boa"
    },
    "split_keywords": [
        "compiler",
        "neo",
        ".nef",
        "blockchain",
        "smartcontract",
        "development",
        "dapp"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c38016aa7af000966626fdbe4930a3ae39455ca19a270c7056ec65e74a7d9d17",
                "md5": "bb1183a9b4495b889467f960fc9663b5",
                "sha256": "04f4bd21eb694d76889ee3ee9e89be271b19c197a754dc381765851aceaa532f"
            },
            "downloads": -1,
            "filename": "neo3_boa-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bb1183a9b4495b889467f960fc9663b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 630123,
            "upload_time": "2023-10-16T19:35:40",
            "upload_time_iso_8601": "2023-10-16T19:35:40.810707Z",
            "url": "https://files.pythonhosted.org/packages/c3/80/16aa7af000966626fdbe4930a3ae39455ca19a270c7056ec65e74a7d9d17/neo3_boa-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "18da413dd67d82fc7b7837317bf3ac72072d7e5ff46580735c0c6fe779727221",
                "md5": "4490b28490be73aac951d166ac0d5007",
                "sha256": "f4832ac19309e68ece6a9e8e318596d610a7df17875c00d0c38c0f76483cacbc"
            },
            "downloads": -1,
            "filename": "neo3-boa-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4490b28490be73aac951d166ac0d5007",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 326000,
            "upload_time": "2023-10-16T19:35:42",
            "upload_time_iso_8601": "2023-10-16T19:35:42.582478Z",
            "url": "https://files.pythonhosted.org/packages/18/da/413dd67d82fc7b7837317bf3ac72072d7e5ff46580735c0c6fe779727221/neo3-boa-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-16 19:35:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CityOfZion",
    "github_project": "neo3-boa",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": false,
    "circle": true,
    "requirements": [],
    "lcname": "neo3-boa"
}
        
Elapsed time: 0.13546s