ArguableVotingTournament Distribution#
This contract implements a diamond distribution for the Ethereum Distribution System (EDS). It creates and manages instances of ArguableVotingTournament, enabling decentralized tournament management with voting capabilities.
Notice
This contract follows the Diamond pattern and is designed to be used exclusively by the Distributor contract. It manages facets for tournament operations, voting, and game master functions.
ArguableTournamentAddresses#
This struct helps organize the deployment of the diamond proxy system
Notice
Groups the addresses of all required facets for the tournament
struct ArguableTournamentAddresses {
address loupeFacet;
address inspectorFacet;
address RankifyMainFacet;
address RankifyReqsFacet;
address RankifyGMFacet;
address OwnershipFacet;
}
constructor#
Sets up the diamond proxy system with all required facets and initializes core components
constructor(address initializer, bytes4 initializerSelector, bytes32 _distributionName, struct LibSemver.Version version, struct ArguableVotingTournament.ArguableTournamentAddresses addresses) public
Notice
Constructor for the ArguableVotingTournament contract The initializer function is added as a regular facet to the Diamond Proxy. Since initialization is handled by the distributor contract, it's expected that the distributor will remove this facet after successful initialization.
instantiate#
see Ethereum Distribution System IDistribute for interface specification.
function instantiate(bytes) external returns (address[] instances, bytes32, uint256)
Output | Type | Description |
---|---|---|
instances |
address[] |
Array[8]: [diamond proxy, 8x diamond facets..] |
1 |
bytes32 |
distributionName: bytes32 encoded name to be used in EIP712 signing flow |
2 |
uint256 |
distributionVersion: uint256 encoded distribution version. Can be parsed to eip712 signature with EDS LibSemver |
Notice
// instances: 0 - diamond; 1 - DiamondLoupeFacet; 2 - EIP712InspectorFacet; 3 - RankifyInstanceMainFacet; 4 - RankifyInstanceRequirementsFacet; 5 - RankifyInstanceGameMastersFacet // 6 - OwnershipFacet
contractURI#
function contractURI() public pure virtual returns (string)