curve-dao


Namecurve-dao JSON
Version 1.0.11 PyPI version JSON
download
home_pageNone
SummaryDAO governance tools for CurveDAO.
upload_time2024-09-27 08:15:45
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseAGPL-3.0-only License
keywords ethereum smart-contracts evm vyper curve-finance dao defi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Example

```python
import boa
import curve_dao

contract = boa.load("contracts/contract.vy",
    curve_dao.get_address("ownership"), curve_dao.get_address("param"), curve_dao.get_address("emergency"),  # Set admins
)
ACTIONS = [
    ("0xcontract", "set_something", ("values",), 70, "set"),  # 0xcontract.set_something(("values",), 70, "set)
    (contract, "enact"),  # contract.enact()
]
DESCRIPTION = "Enact something"
vote_id = curve_dao.create_vote("ownership", ACTIONS, DESCRIPTION,
                                etherscan_api_key=os.environ["ETHERSCAN_API_KEY"], pinata_token=os.environ["PINATA_TOKEN"])
if is_simulation:  # forked environment
    curve_dao.simulate(vote_id, "ownership", etherscan_api_key=os.environ["ETHERSCAN_API_KEY"])
```

# What is this?

Simple python package to simulate on-chain CurveDAO proposals and publish proposals for DAO voting on-chain.

# Who needs this?

veCRV holders looking to create on-chain proposals such as

- Creating or killing Curve DAO gauges that reward CRV inflation to addresses (liquidity pools or otherwise).
- Creating a smartwallet whitelist to lock veCRV (veCRV restricts smart contracts to lock CRV, subject to a DAO whitelist vote)
- Changing liquidity pool parameters
- Adding gauge types ...
- ... etc.

Curve DAO stakeholders have the ability to change the protocol in many ways. This repository is an attempt to consolidate all on-chain DAO operations into a single tool.

# How does one install it?

`pip install curve-dao`

# How does one contribute?

1. Fork + Pull Requests.
2. Create issues.
3. ...

# How does one test?

`python -m pytest .`

# How does one build and publish?

1. Update codebase
2. Up version in pyproject.toml
3. `python -m build; python -m twine upload --repository pypi dist/* --verbose`

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "curve-dao",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "FiddyResearch <fiddyresearch@gmail.com>",
    "keywords": "ethereum, smart-contracts, evm, vyper, curve-finance, dao, defi",
    "author": null,
    "author_email": "FiddyResearch <fiddyresearch@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/d5/b9/977a038b28140d85af6a13c5877e6ae7acb4f24ebe972884c9aaf4ca142f/curve_dao-1.0.11.tar.gz",
    "platform": null,
    "description": "# Example\n\n```python\nimport boa\nimport curve_dao\n\ncontract = boa.load(\"contracts/contract.vy\",\n    curve_dao.get_address(\"ownership\"), curve_dao.get_address(\"param\"), curve_dao.get_address(\"emergency\"),  # Set admins\n)\nACTIONS = [\n    (\"0xcontract\", \"set_something\", (\"values\",), 70, \"set\"),  # 0xcontract.set_something((\"values\",), 70, \"set)\n    (contract, \"enact\"),  # contract.enact()\n]\nDESCRIPTION = \"Enact something\"\nvote_id = curve_dao.create_vote(\"ownership\", ACTIONS, DESCRIPTION,\n                                etherscan_api_key=os.environ[\"ETHERSCAN_API_KEY\"], pinata_token=os.environ[\"PINATA_TOKEN\"])\nif is_simulation:  # forked environment\n    curve_dao.simulate(vote_id, \"ownership\", etherscan_api_key=os.environ[\"ETHERSCAN_API_KEY\"])\n```\n\n# What is this?\n\nSimple python package to simulate on-chain CurveDAO proposals and publish proposals for DAO voting on-chain.\n\n# Who needs this?\n\nveCRV holders looking to create on-chain proposals such as\n\n- Creating or killing Curve DAO gauges that reward CRV inflation to addresses (liquidity pools or otherwise).\n- Creating a smartwallet whitelist to lock veCRV (veCRV restricts smart contracts to lock CRV, subject to a DAO whitelist vote)\n- Changing liquidity pool parameters\n- Adding gauge types ...\n- ... etc.\n\nCurve DAO stakeholders have the ability to change the protocol in many ways. This repository is an attempt to consolidate all on-chain DAO operations into a single tool.\n\n# How does one install it?\n\n`pip install curve-dao`\n\n# How does one contribute?\n\n1. Fork + Pull Requests.\n2. Create issues.\n3. ...\n\n# How does one test?\n\n`python -m pytest .`\n\n# How does one build and publish?\n\n1. Update codebase\n2. Up version in pyproject.toml\n3. `python -m build; python -m twine upload --repository pypi dist/* --verbose`\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0-only License",
    "summary": "DAO governance tools for CurveDAO.",
    "version": "1.0.11",
    "project_urls": {
        "Changelog": "https://github.com/bout3fiddy/curve-dao/blob/main/CHANGELOG.md",
        "GitHub": "https://github.com/bout3fiddy/curve-dao",
        "Homepage": "https://pypi.org/project/curve-dao/",
        "Issues": "https://github.com/bout3fiddy/curve-dao/issues"
    },
    "split_keywords": [
        "ethereum",
        " smart-contracts",
        " evm",
        " vyper",
        " curve-finance",
        " dao",
        " defi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c3f8886c95d38ef9a037e8ed635bc849a78c39cf0737de19f9fd3bffca7fe3d",
                "md5": "a67db1459c87aa85ac9665d21b34bceb",
                "sha256": "cb296f623bd94d21a269cc8c903ec1c45040492edc1badbb9223624b6d9951ac"
            },
            "downloads": -1,
            "filename": "curve_dao-1.0.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a67db1459c87aa85ac9665d21b34bceb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 7486,
            "upload_time": "2024-09-27T08:15:44",
            "upload_time_iso_8601": "2024-09-27T08:15:44.130094Z",
            "url": "https://files.pythonhosted.org/packages/9c/3f/8886c95d38ef9a037e8ed635bc849a78c39cf0737de19f9fd3bffca7fe3d/curve_dao-1.0.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5b9977a038b28140d85af6a13c5877e6ae7acb4f24ebe972884c9aaf4ca142f",
                "md5": "f12e972fd07a6b43d0f4ff8aa4ee0143",
                "sha256": "3ef2a7ab79ea1c92dcaf77bad0353dd8d4deebf89cc1bfdc2ab2e6a78b1d54f1"
            },
            "downloads": -1,
            "filename": "curve_dao-1.0.11.tar.gz",
            "has_sig": false,
            "md5_digest": "f12e972fd07a6b43d0f4ff8aa4ee0143",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 7237,
            "upload_time": "2024-09-27T08:15:45",
            "upload_time_iso_8601": "2024-09-27T08:15:45.591890Z",
            "url": "https://files.pythonhosted.org/packages/d5/b9/977a038b28140d85af6a13c5877e6ae7acb4f24ebe972884c9aaf4ca142f/curve_dao-1.0.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-27 08:15:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bout3fiddy",
    "github_project": "curve-dao",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "curve-dao"
}
        
Elapsed time: 0.31680s