Smart Contracts for Astraly, Fundraising powered by on-chain reputation on Starknet. Learn more about it here.
You can find the latest technical documentation here
Contract | Title | Description |
---|---|---|
AstralyStaking | xZKP Token | Lock ZKP or ZKP-LP in the vault. Follows ERC-4626 standard. |
AstralyLotteryToken | Lottery Ticket | Lottery Ticket tokenized as ERC-1155 token. |
AstralyToken | ZKP Token | Native token of the platform. Follows ERC-20 standard. Mintable, Burnable, Pausable. |
AstralyIDO | IDO Contract | Handles the whole business logic of the IDO. Triggers VRF when a lottery ticket is burnt. |
AstralyIDOFactory | IDO Factory | Instanciates AstralyIDO contracts for every new IDO. |
AstralyVesting | Vesting | Vests Assets linearly over time for multiple payees. |
AstralyFaucet | IDO Factory | Simple Faucet to withdraw X ERC20 every Y seconds. |
AstralyVaultHarvestTask | Harvest Task | Yagi Task to regularly harvest vault's earnings. |
AstralyTask | IDO Task | Yagi Task to trigger allocation computation. |
AMMs | AMMs Wrapper | Wrappers for different AMMs pools. |
Utils | Cairo utils |
This repository has been bootstrapped using Nile and Poetry.
Note: Mac and Mac M1 have special instructions you can refer to this article
-
Install Dependencies
poetry install
-
Spin up a node (in a separate terminal window w/ the python environment running)
poetry run nile node
-
Compile contracts
poetry run nile compile
-
Run tests
poetry run pytest tests/
-
Deploy contracts
poetry run nile run scripts/deploy_all.py
orcd scripts && sh deploy_all.sh
These commands will test and deploy against your local node. If you want to deploy to the goerli testnet, use --network goerli instead.
We encourage pull requests.
- Create an issue to describe the improvement/issue. Provide as much detail as possible in the beginning so the team understands your improvement/issue.
- Fork the repo so you can make and test changes in your local repository.
- Test your changes Make sure your tests (manual and/or automated) pass.
- Create a pull request and describe the changes you made. Include a reference to the Issue you created.
- Monitor and respond to comments made by the team around code standards and suggestions. Most pull requests will have some back and forth.
If you have further questions, visit #technology in our discord and make sure to reference your issue number.
Thank you for taking the time to make our project better!