# 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"
}