Releases: keep-starknet-strange/unruggable.meme
Releases · keep-starknet-strange/unruggable.meme
v0.1.0-alpha.2
What's Changed
- Max percentage buy provided at launch by @0xChqrles in #138
Full Changelog: v0.1.0-alpha.1...v0.1.0-alpha.2
v0.1.0-alpha.1
Unruggable Meme - Technical Specification for MVP Smart Contracts
Introduction
Unruggable Meme is a project designed to enhance the security and transparency of memecoins. This document outlines the technical specifications for the Minimum Viable Product (MVP) of Unruggable Meme smart contracts.
MVP Features
1. Maximum Holders Before Launch Safeguard
- Objective: Limit the number of holders before the official launch to prevent premature distribution.
2. Maximum Team Allocation Percentage Before Launch
- Objective: Restrict the percentage of tokens allocated to the team before launch. limit.
3. Locking of Liquidity Provider (LP) Tokens for 6 Months
- Objective: Lock LP tokens for a fixed period to stabilize liquidity and prevent rug pulls.
- Implementation:
- A
Locker
contract to handle the locking mechanism. - Functions for depositing LP tokens and timestamp tracking.
- A release function to unlock tokens after the 6-month period, with validation to ensure release only occurs post-lock period.
- A
4. Implement Initial Token Distribution in Constructor
- Objective: Define initial token distribution upon contract deployment.
- Implementation:
- Define initial token allocations (for team, marketing, etc.) in the contract constructor.
- Distribute tokens to predefined wallets during contract deployment.
5. Ensure Liquidity is Locked in the Constructor
- Objective: Lock a portion of liquidity immediately upon contract creation.
- Implementation:
- Integrate liquidity locking logic in the constructor.
- Automatically transfer a predefined liquidity amount to the
Locker
contract.
6. Disable Buy Limit Check After Specific Time Passes
- Objective: Lift buy limit after a defined period to allow larger transactions.
- Implementation:
- A variable
buyLimitEndTime
storing the timestamp when the buy limit ends. - Modify buy functions to check against
buyLimitEndTime
before applying limits.
- A variable
7. Time-Based Disabling of Multicall-Prevention
- Objective: Disable multicall prevention mechanisms after a certain period.
- Implementation:
- Implement a timestamp-based check in the multicall prevention logic.
- After a specific time, indicated by a predefined variable, disable the multicall prevention measures.
8. Factory to Deploy Unruggable Meme Tokens
- Objective: Provide a standardized method to deploy Unruggable Meme tokens.
- Implementation:
- A
UnruggableMemeTokenFactory
contract to handle token deployments. - Functions to set parameters for new tokens and deploy them.
- Event emission for each token deployment for easy tracking.
- A
9. Proper Testing for All Features
-
Objective: Ensure all features work as intended and are secure.
-
Implementation:
- Develop a comprehensive suite of automated tests (using Starknet Foundry and / or plain Cairo tests).
- Test cases to cover all functionalities, edge cases, and potential security vulnerabilities.
- Continuous integration setup to run tests automatically.
Additional notes
Supported AMMs
For the MVP we aim to support JediSwap
AMM only. The addresses of the JediSwapFactory
and the JediSwapRouter
will be known by the Unruggable Meme Factory
contract. The Unruggable Meme Factory
will have getter functions accessible for the Unruggable Meme
tokens launched, in order to retrieve those parameters.
What's Changed
- frontend stack setup by @0xChqrles in #1
- add navigation by @0xChqrles in #3
- Add launch form by @0xChqrles in #7
- Setup launch token form by @fracek in #14
- Feat/homepage by @0xChqrles in #19
- refactor: use ERC20 component by @enitrat in #26
- responsive NavBar by @0xChqrles in #29
- fix: weird border on mobile navbar by @0xChqrles in #30
- Simplify background code by @Megumiiiiii in #32
- updating certain frontend elements by @Pjewels in #33
- ref: add responsive to home by @fricoben in #35
- feat: screener front by @rmzlb in #38
- [frontend] Fully responsive by @0xChqrles in #39
- Deploy token and distribute to initial holders by @fracek in #41
- fixed deployment by @0xChqrles in #49
- added unrug risk matrix by @welttowelt in #52
- chore: use starknetkit for wallet connection by @Darlington02 in #53
- 🎨: improve Starknet network handling by @fracek in #48
- [frontend] feat: number input by @akhercha in #55
- Storing contract address in local storage by @Maxservais in #66
- chore: update modal to use injected connectors by @Darlington02 in #65
- combined risk matrix and Unrug features into 1 file by @welttowelt in #63
- [Frontend] added SEO metadata by @retroboydev in #54
- [doc]Update frontend's readme. by @cryptonerdcn in #57
- CI: use tool-versions by @enitrat in #47
- feat: implement maximum holders before launch safeguard by @credence0x in #15
- feat: add maximum buy percentage by @WhoIsNac in #51
- Feat/initial distrib constructor by @0xEniotna in #64
- improve Launch form by @0xChqrles in #70
- fix Launch form amounts validation by @0xChqrles in #71
- pass initial holders in token constructor by @0xChqrles in #74
- Create deployed tokens mgmt page by @0xChqrles in #76
- redesign initial distribution logic by @0xChqrles in #78
- feat: locker contract by @ermvrs in #80
- Memecoin factory + launch_memecoin() method by @dubzn in #13
- add
contract_address_salt
increate_memecoin
factory method by @0xChqrles in #86 - move AMM mgmt from token to factory by @0xChqrles in #87
- [contracts] add
is_memecoin
method on factory by @0xChqrles in #90 - fix deadline by @tevrat-aksoy in #91
- Fix: Change favicon to become compatible with dark, light and custom themes by @mananbordia in #93
- Update FE readme to use Yarn package manager instead of npm by @mananbordia in #92
- Updates features & add MVP details by @welttowelt in #85
- Delay that bypasses transfer limit by @ermvrs in #83
- Feat/lock liquidity in factory by @0xEniotna in #84
- refactor: factory tests by @enitrat in #100
- refactor: internal structure by @enitrat in #103
- refactor: locker by @enitrat in #101
- docs: locker by @enitrat in #104
- Refactor/lock lp in launch_memecoin by @0xEniotna in #102
- test and feature added for multi call buy prevention by @Mohiiit in #81
- refactor: clean memecoin impl by @enitrat in #105
- refactor: clean memecoin tests and impl by @enitrat in #112
- feat: abstract launch platform using components by @enitrat in #114
- FEAT: disable multicall prevention after delay has passed by @TAdev0 in #110
- FEAT: renounce ownership upon laun...