autonity


Nameautonity JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryPython library for interacting with Autonity
upload_time2024-03-05 12:52:27
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords autonity client library rpc web3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # autonity.py

[Autonity](https://autonity.org) is a protocol that provides smart contract and
settlement infrastructure specialized for developing new risk markets. It is a
fork of the [Ethereum protocol](https://ethereum.org/). See the
[Autonity documentation](https://docs.autonity.org) for further information.

This package provides typed wrappers around the Autonity-specific extensions of
Ethereum, using the [Web3.py](https://github.com/ethereum/web3.py) framework,
for convenient and statically checked interactions with the Autonity network.

## Installation

```console
pip install autonity
```

## Usage

The primary utility of this library is the typed wrappers around the Autonity
protocol contract, which provides access to Autonity-specific functionality.

```python
from autonity.utils.web3 import create_web3_for_endpoint
from autonity import Autonity, Validator

w3 = create_web3_for_endpoint("<RPC_ENDPOINT>")

# Create the typed wrapper around the Autonity contract.
autonity = Autonity(w3)

# Get total supply of Newton
ntn_supply = autonity.total_supply()

# Get the current validator list
validator_ids = autonity.get_validators()

# Get descriptor for the 0-th validator.  Print LNTN contract address.
validator_desc_0 = autonity.get_validator(validator_ids[0])
print(f"LNTN contract addr: {validator_desc_0.liquid_contract}")

# Typed validator Liquid Newton contract.  Query unclaimed fees for <ADDRESS>.
validator_0 = Validator(w3, validator_desc_0)
unclaimed_rewards = validator_0.unclaimed_rewards("<ADDRESS>")
print(f"unclaimed rewards: {unclaimed_rewards}")
```

Where`<RPC_ENDPOINT>` is the name of the Autonity network being connected to.
See <https://docs.autonity.org/networks/> for information about specific
networks.

## Development

The project uses [hatch](https://hatch.pypa.io/latest/install/#pipx) as the
build tool. To launch the tests, run:

```console
hatch run test:all
```

For linting use the command:

```console
hatch run lint:check
```

### Updating the Contract ABIs

The script `script/update_abi.sh [AUTONITY_COMMIT]` builds the contract ABIs
using AGC at the specified Git commit ID or tag. Keys are ordered via the `jq`
tool, in order to produce deterministic output, and the results written to the
`autonity/abi` directory. Further, it normalizes the commit ID that was used.

After executing the script against a new version of the code, the diffs can be
reviewed to determine which methods have been modified, removed or added.

## Reporting a Vulnerability

**Please do not file a public ticket** mentioning the vulnerability.

Instead, please send an email to <security@autonity.org> to report a security
issue.

The following PGP key may be used to communicate sensitive information to
developers:

Fingerprint: `6006 CCC3 DD11 7885 1A23 4290 7486 F832 6320 219E`

```
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
VtiVUMzKBEpmz4LdeSy73Qfr
=12PL
-----END PGP PUBLIC KEY BLOCK-----
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "autonity",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "autonity,client,library,rpc,web3",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/3c/43/c2a37663b4d5590cd43fc277af83cce901b55664a128b5b0e727771c388e/autonity-3.0.0.tar.gz",
    "platform": null,
    "description": "# autonity.py\n\n[Autonity](https://autonity.org) is a protocol that provides smart contract and\nsettlement infrastructure specialized for developing new risk markets. It is a\nfork of the [Ethereum protocol](https://ethereum.org/). See the\n[Autonity documentation](https://docs.autonity.org) for further information.\n\nThis package provides typed wrappers around the Autonity-specific extensions of\nEthereum, using the [Web3.py](https://github.com/ethereum/web3.py) framework,\nfor convenient and statically checked interactions with the Autonity network.\n\n## Installation\n\n```console\npip install autonity\n```\n\n## Usage\n\nThe primary utility of this library is the typed wrappers around the Autonity\nprotocol contract, which provides access to Autonity-specific functionality.\n\n```python\nfrom autonity.utils.web3 import create_web3_for_endpoint\nfrom autonity import Autonity, Validator\n\nw3 = create_web3_for_endpoint(\"<RPC_ENDPOINT>\")\n\n# Create the typed wrapper around the Autonity contract.\nautonity = Autonity(w3)\n\n# Get total supply of Newton\nntn_supply = autonity.total_supply()\n\n# Get the current validator list\nvalidator_ids = autonity.get_validators()\n\n# Get descriptor for the 0-th validator.  Print LNTN contract address.\nvalidator_desc_0 = autonity.get_validator(validator_ids[0])\nprint(f\"LNTN contract addr: {validator_desc_0.liquid_contract}\")\n\n# Typed validator Liquid Newton contract.  Query unclaimed fees for <ADDRESS>.\nvalidator_0 = Validator(w3, validator_desc_0)\nunclaimed_rewards = validator_0.unclaimed_rewards(\"<ADDRESS>\")\nprint(f\"unclaimed rewards: {unclaimed_rewards}\")\n```\n\nWhere`<RPC_ENDPOINT>` is the name of the Autonity network being connected to.\nSee <https://docs.autonity.org/networks/> for information about specific\nnetworks.\n\n## Development\n\nThe project uses [hatch](https://hatch.pypa.io/latest/install/#pipx) as the\nbuild tool. To launch the tests, run:\n\n```console\nhatch run test:all\n```\n\nFor linting use the command:\n\n```console\nhatch run lint:check\n```\n\n### Updating the Contract ABIs\n\nThe script `script/update_abi.sh [AUTONITY_COMMIT]` builds the contract ABIs\nusing AGC at the specified Git commit ID or tag. Keys are ordered via the `jq`\ntool, in order to produce deterministic output, and the results written to the\n`autonity/abi` directory. Further, it normalizes the commit ID that was used.\n\nAfter executing the script against a new version of the code, the diffs can be\nreviewed to determine which methods have been modified, removed or added.\n\n## Reporting a Vulnerability\n\n**Please do not file a public ticket** mentioning the vulnerability.\n\nInstead, please send an email to <security@autonity.org> to report a security\nissue.\n\nThe following PGP key may be used to communicate sensitive information to\ndevelopers:\n\nFingerprint: `6006 CCC3 DD11 7885 1A23 4290 7486 F832 6320 219E`\n\n```\n-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n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\nVtiVUMzKBEpmz4LdeSy73Qfr\n=12PL\n-----END PGP PUBLIC KEY BLOCK-----\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python library for interacting with Autonity",
    "version": "3.0.0",
    "project_urls": {
        "Changes": "https://github.com/autonity/autonity.py/blob/master/CHANGELOG.md",
        "Homepage": "https://github.com/autonity/autonity.py",
        "Issues": "https://github.com/autonity/autonity.py/issues",
        "Source": "https://github.com/autonity/autonity.py"
    },
    "split_keywords": [
        "autonity",
        "client",
        "library",
        "rpc",
        "web3"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e0a348021f8056609f833ae749a921f481ed6b1fafa936d6793503acd7652a68",
                "md5": "717ab484e4e767459c4afd5bd271b832",
                "sha256": "d1dc37f02e7af800b4b9722a61f01dde8e2ef50b2a43538440214f074874eb23"
            },
            "downloads": -1,
            "filename": "autonity-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "717ab484e4e767459c4afd5bd271b832",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 44320,
            "upload_time": "2024-03-05T12:52:26",
            "upload_time_iso_8601": "2024-03-05T12:52:26.265447Z",
            "url": "https://files.pythonhosted.org/packages/e0/a3/48021f8056609f833ae749a921f481ed6b1fafa936d6793503acd7652a68/autonity-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c43c2a37663b4d5590cd43fc277af83cce901b55664a128b5b0e727771c388e",
                "md5": "c3a4392ef66b874f408359fdeb163970",
                "sha256": "38d9df8e9d9e79c6d35228da42c82971e09b890574f9bb6c43a3fcaf2a1d7853"
            },
            "downloads": -1,
            "filename": "autonity-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c3a4392ef66b874f408359fdeb163970",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 29144,
            "upload_time": "2024-03-05T12:52:27",
            "upload_time_iso_8601": "2024-03-05T12:52:27.987504Z",
            "url": "https://files.pythonhosted.org/packages/3c/43/c2a37663b4d5590cd43fc277af83cce901b55664a128b5b0e727771c388e/autonity-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-05 12:52:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "autonity",
    "github_project": "autonity.py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "autonity"
}
        
Elapsed time: 0.22003s