Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cyfrin/moccasin
Titanoboa-based vyper smart contract development framework
https://github.com/cyfrin/moccasin
ethereum python vyper
Last synced: 7 days ago
JSON representation
Titanoboa-based vyper smart contract development framework
- Host: GitHub
- URL: https://github.com/cyfrin/moccasin
- Owner: Cyfrin
- License: apache-2.0
- Created: 2024-07-17T16:17:16.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-22T22:02:36.000Z (25 days ago)
- Last Synced: 2024-10-23T13:46:16.525Z (24 days ago)
- Topics: ethereum, python, vyper
- Language: Python
- Homepage: https://cyfrin.github.io/moccasin
- Size: 1.3 MB
- Stars: 55
- Watchers: 2
- Forks: 8
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
> This tool is in beta, use at your own risk
# Moccasin
A fast, pythonic, Vyper smart contract testing and development framework.
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
[![moccasin](https://img.shields.io/pypi/v/moccasin.svg)](https://pypi.org/project/moccasin/)
[![license](https://img.shields.io/pypi/l/moccasin.svg)](https://pypi.python.org/pypi/moccasin)
[![python-versions](https://img.shields.io/pypi/pyversions/moccasin.svg)](https://pypi.python.org/pypi/moccasin)> The smaller bar is better, it means it's faster
_You can see how we conducted these tests from the [benchmarking repo](https://github.com/PatrickAlphaC/benchmarking-frameworks)._
Fast to install, test, and run python commands on your smart contracts.
# Highlights
- ๐ Pythonic start to finish, built on top of Vyper's [titanoboa](https://titanoboa.readthedocs.io/en/latest/)
- ๐ ZKsync built-in support
- ๐ Named Contracts allow you to define smart contract addresses without scaffolding anything yourself
- ๐งช Custom staging pytest markers so you can run tests anywhere, anyhow
- ๐ฆ Support for encrypting wallets, no private keys in `.env` files!
- ๐งณ GitHub and Python smart contract dependency installation# Quickstart
Head over to [the moccasin installation documentation](https://cyfrin.github.io/moccasin/installing_moccasin.html) to for other install methodologies and getting stated.
## This README Quickstart
To install the moccasin `mox` command, we recommend the [uv](https://docs.astral.sh/uv/) tool.
```bash
uv tool install moccasin
```Then, see a list of commands with:
```bash
mox --help
```# Documentation
You can view the documentation [here](https://cyfrin.github.io/moccasin/).
# Contributing
If you're interested in helping build moccasin, please see the [contributing guide](./CONTRIBUTING.md).
# Help output
```bash
mox --help
usage: Moccasin CLI [-h] [-d] [-q]
{init,compile,build,test,run,script,deploy,wallet,console,install,purge,config,explorer,inspect,deployments,utils,u,util}
...๐ Pythonic Smart Contract Development Framework
positional arguments:
{init,compile,build,test,run,script,deploy,wallet,console,install,purge,config,explorer,inspect,deployments,utils,u,util}
init Initialize a new project.
compile (build) Compiles the project.
test Runs all tests in the project.
run (script) Runs a script with the project's context.
deploy Deploys a contract named in the config with a deploy script.
wallet Wallet management utilities.
console BETA, USE AT YOUR OWN RISK: Interact with the network in a python shell.
install Installs the project's dependencies.
purge Purge a given dependency
config View the Moccasin configuration.
explorer Work with block explorers to get data.
inspect Inspect compiler data of a contract.
deployments View deployments of the project from your DB.
utils (u, util) Helpful utilities - right now it's just the one.options:
-h, --help show this help message and exit
-d, --debug Run in debug mode
-q, --quiet Suppress all output except errors
```# Acknowledgements
- [brownie](https://github.com/eth-brownie/brownie)
- [vyper](https://github.com/vyperlang/vyper)
- [boa](https://github.com/vyperlang/titanoboa)## Background
> Agkistrodon piscivorus is a species of venomous snake, a pit viper in the subfamily Crotalinae of the family Viperidae. The generic name is derived from the Greek words แผฮณฮบฮนฯฯฯฮฟฮฝ agkistron "fish-hook, hook" and แฝฮดฯฮฝ odon "tooth", and the specific name comes from the Latin piscis 'fish' and voro '(I) eat greedily, devour'; thus, the scientific name translates to "hook-toothed fish-eater". Common names include cottonmouth, northern cottonmouth, water moccasin, swamp moccasin, black moccasin, and simply viper.
# More Stats
# License
moccasin is licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in moccasin by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.