- #98
9507326d20c5ce870cbef96650ebcae60fc5ce5a
Thanks @peersky! - updated readme with latest release information
- #96
c582421d2e4672f15e768d1a8293d42e72c5e0f9
Thanks @peersky! - improved create game playbooks
-
#82
c53987d3423287f11af3e41e5f83fe1a13fa9f48
Thanks @peersky! - # Changeset for branch 64-principal-game-cost-time-parametersThis branch introduces significant changes to game cost and time parameters, payment handling, and rank token mechanics, along with several code improvements and bug fixes.
LibRankify.sol
:- Introduced principal game cost calculation based on game time
- Added minimum game time validation and constraints
- Implemented 90/10 payment split: 90% burned, 10% to DAO
- Removed payment refunds and game cancellation payments
- Simplified rank token rewards to only top player
- Added validation for turn count and game time parameters
LibTBG.sol
:- Added
startedAt
timestamp for minimum game time tracking - Renamed
getGameSettings()
togetSettings(uint256 gameId)
for better clarity - Updated storage access patterns for overtime functionality
- Simplified tie detection logic to only consider top 2 players
- Fixed storage slot access patterns
- Added
DistributableGovernanceERC20.sol
:- Updated Solidity version from 0.8.20 to 0.8.28
RankToken.sol
:- Updated Solidity version from ^0.8.20 to =0.8.28
- Added IERC165 import
- Implemented burn function with ERC7746C middleware
- Renamed
DiamondCloneable.sol
toDiamondClonable.sol
:- Fixed typo in error name from 'fucntionDoesNotExist' to 'functionDoesNotExist'
DiamondLoupeFacet.sol
:- Updated Solidity version to ^0.8.28
LibDiamond.sol
:- Added DuplicateSignature error definition
- Deleted
test/DNSFacet.ts
- Removed multipass sources:
src/facets/DNSFacet.sol
src/initializers/MultipassInit.sol
src/libraries/LibMultipass.sol
src/interfaces/IMultipass.sol
RankifyInstanceEventMock.sol
:- Fixed typo in parameter name from 'proposerIndicies' to 'proposerIndices'
- Storage layout changes in LibTBG require careful migration
- Payment handling completely reworked:
- Removed refunds functionality
- Implemented burn mechanism for 90% of payments
- Added DAO benefit for 10% of payments
- Rank token rewards simplified to only top player
- Solidity version updates may require dependency updates
- Renamed Diamond contract file requires build script updates
- Removed all multipass functionality
- Update build scripts to reference new DiamondClonable filename
- Verify storage layout compatibility after LibTBG changes
- Update dependencies to support Solidity 0.8.28
- Remove any references to multipass functionality
- Update payment handling code to work with new burn mechanism
- Adjust rank token distribution logic for single winner
- Ensure game time parameters meet new constraints
-
#57
5360ba4fbc5029dc572b78fb330a69a6df903826
Thanks @peersky! - eslint major verison change -
#50
80e2198289cf6fafae910d5a4f1d3442afabbbfb
Thanks @peersky! - Migration to v5 -
#48
d449bb2174c3959447d717bb0d0d64f617467a45
Thanks @peersky! - changed documentation generation system to be more readable and per file separated -
#86
5a4493123798682b7cbd3eeddf277dc11cd023da
Thanks @peersky! - added playbooks for adding distribution and creating subject, removed old multipass playbook -
#61
db186f717e1babebf6c1653afb7862d2120e545e
Thanks @peersky! - Updated readme -
#53
999e9339e318723137ddc2f9d640c54f157e67b9
Thanks @peersky! - added playbook functionality to execute state emulation -
#66
40e4f88c1b27d2d1e3c4f915337779f8cfb0ed35
Thanks @peersky! - moved eds as dependency -
#50
80e2198289cf6fafae910d5a4f1d3442afabbbfb
Thanks @peersky! - Migrated to oz contracts v5 -
#55
73ea44f3e83cd3eab3d8f9db1a605606cfcfed21
Thanks @peersky! - generic diamond factory implementation via Ethereum Distribution System -
#62
0c4f23cca04fa78564877cbb971ade0a96603314
Thanks @peersky! - ## Addition of Ethereum Distribution System (EDS)- Feature: Integrated the Ethereum Distribution System (EDS) for distributing Rankify contracts.
- Description: Rankify contracts are now distributed via the Ethereum Distribution System, enhancing the efficiency and security of the distribution process.
- Feature: Redesigned contracts to work seamlessly as part of the Ethereum Distribution System.
- Description: The contracts have been restructured and optimized to ensure compatibility and smooth operation within the EDS framework. This redesign includes:
- Improved contract architecture for better integration with EDS.
- Enhanced security measures to protect against potential vulnerabilities.
- Optimized performance to handle the distribution process more efficiently.
- Users:
- Can create new subjects that are called Meritocratic Autonomous Organizations (MAOs).
- Will benefit from a more secure and efficient distribution process.
- Developers: Developers will need to familiarize themselves with the new contract architecture and EDS integration.
- Operations: The distribution process will be streamlined, reducing the potential for errors and improving overall system reliability.
- Documentation: Update the documentation to include details on the new EDS integration and contract redesign.
- Testing: Conduct thorough testing to ensure the new system operates as expected.
- Deployment: Plan and execute the deployment of the updated contracts and distribution system.
-
#84
26bcabd15ced84405dc20009b89edd572bbf0128
Thanks @peersky! - # Changeset SummaryAdded ability to end turns if there are inactive players without waiting for their move.
- Increased the size of
RankifyInstanceMainFacetSelectors
from 27 to 28. - Added a new function selector
RankifyInstanceMainFacet.isActive.selector
.
- Added a new function
isActive
which takes agameId
and aplayer
address and returns a boolean indicating if the game is active for the player.
- Changed the parameter name from
voterVoted
toisActive
in thecomputeScoresByVPIndex
function. - Moved the initialization of
notVotedGivesEveryone
to useq.maxQuadraticPoints
. - Updated the condition to check
!isActive[vi]
instead of!voterVoted[vi]
.
- Added a new
isActive
mapping to track active players. - Introduced
numActivePlayers
to count the number of active players. - Updated the
resetGame
function to initializeisActive
tofalse
for all players and resetnumActivePlayers
. - Modified
addPlayer
to initializeisActive
tofalse
for new participants. - Enhanced
canEndTurnEarly
to check if all active players have made their move before allowing an early turn end. - Removed out the
_clearCurrentMoves
function - Updated the
startGame
function to set all players as active initially. - Modified
recordMove
to mark a player as active when they make a move and incrementnumActivePlayers
.
- Functionality Enhancements: Added a new
isActive
function inRankifyInstanceMainFacet.sol
to check the active status of a game for a specific player. - Refactoring: Renamed parameters and adjusted logic in
LibQuadraticVoting.sol
to align with the new active status checking mechanism. - Code Organization: Updated selectors in
ArguableVotingTournament.sol
to accommodate the new functionality. - Game Management Enhancements: Introduced active player tracking and management in
LibTurnBasedGame.sol
, enhancing game state management and turn-based logic.
These changes introduce new functionality to check the active status of a game, which likely impacts how games are managed and interacted with in your application.
- Increased the size of
-
#81
3cfd71fc9c15c11d6a357aa7ec42607d4cde8387
Thanks @peersky! - renamed distributor contract to DAO distributor and used TokenizedDistributor instead of casual one -
#60
55fc1a6ed9f1b7fc4520c3ec6fab5c7f7ae7a3b5
Thanks @theKosmoss! - Created new playbook scenario 'gameCreated' and some general playbooks refactors -
#31
3da696b43f43af8b3130bf7aa2d93575b656d66f
Thanks @peersky! - Introduced installer interfaces -
#87
27e1c1af2d139479a5e4d1db26ad076ffdb237db
Thanks @peersky! - fixed createGame playbook -
#91
df675d896269218e2d5a6742eb6ed3423f8789b4
Thanks @peersky! - - added deployment artifacts for 0.10.0 release- added getGameState getter to rankify main facet
- added helper functions in scripts
- implemented named distributions from newest EDS release
- added more documentation strings
-
#54
569fb0f7cc0cd7a99065fae3873296378b8ffd1a
Thanks @peersky! - corrected interface file names -
#67
da9978ee38b136e5e7cf8a1f68fcb101ede9eae2
Thanks @peersky! - improved documentation generation for mkdocs compatible markdown outputs -
#49
ae43df3f35fdcd49d33d76eaf9b452dbe453e202
Thanks @peersky! - Fixed linter errors on docs templates directory -
#85
9246d9faac56d6897912934259212558ca0ad975
Thanks @peersky! - # Documentation updated- All source code signatures now are exported during release to docs/selectors.md
- fixed typos
- Removed obsolete documentation
-
a719bf84721521f733227f703d4787ec779d74e7
Thanks @peersky! - added deployment to anvil artifacts; ensured deploy scripts do not fail if deployment artifacts already registred on index -
#93
be671ff81117bcc3ccb6af3408c1198532c31317
Thanks @peersky! - added viem compatible abi exports as typescript -
#89
f5aa8c956528ed1db83a1872ae5dfa8a29b4f3c6
Thanks @peersky! - ensured rank token gets env from setup results & minor improvements -
a719bf84721521f733227f703d4787ec779d74e7
Thanks @peersky! - removed rankify instance from deployment artifacts in favor of MAODistribution -
#69
be9d58a44f4d8f97aeae83e904d2d72a485ae169
Thanks @peersky! - doc generation template improvements -
#44
55c3a8531a053905a94fc4626c0dd9c897ff46fe
Thanks @peersky! - moved to using newer pnpm version in ci and lockfile