'Ticket_City contract successfully deployed to': '0x123bFf8D754b29772E1EfAD5B075F55600577DcD'
https://blockexplorer.electroneum.com/address/0x123bFf8D754b29772E1EfAD5B075F55600577DcD#code
Ticket_City.sol: Main contract handling event logic and ETN paymentsTicket_NFT.sol: Non-transferable NFT implementation for event ticketsTypes.sol: Data structures and enumsErrors.sol: Custom error definitions
- NonReentrant guard for payment functions
- Event organizer verification
- Minimum attendance rate requirements
- Revenue release conditions
graph TD
A[Organizer] -->|Creates Event| B[Ticket_City Contract]
B -->|Deploys| C[NFT Contract]
B -->|Sets| D[Ticket Types]
D -->|FREE| E[Single Ticket Type]
D -->|PAID| F[Regular/VIP Options]
graph TD
A[Attendee] -->|Sends ETN| B[Ticket_City Contract]
B -->|Validates Payment| C[Payment Validation]
C -->|Success| D[Mint NFT Ticket]
D -->|Updates| E[Event Records]
- Web2-like auth flow during which an embedded evm wallet will be created for the users
- A web3 auth for guest users
- Event creation with flexible ticket types (FREE/PAID)
- Ticket categories: Regular and VIP for paid events
- Revenue management through ETN native token
- Attendance tracking and verification system
- Tickets issued as NFTs for security
- Automated ticket pricing based on demand (Future Implementation)
- Event discovery tools, including referral programs and discount codes (Future Implementation)
- Stablecoins payment (Future Implementation)
- Tickets purchased using ETN
- Organizers pay a small platform service fee (30 ETN) for paid events
- Ticket payments held safely until the event ends
- If an event is canceled, attendees get a refund plus a 2 ETN gas fee compensation from the organiser (Future Implementation)
- ETN payments held in contract
- 60% minimum attendance requirement
- Automated revenue release post-event
- Manual release option for owner
- Attendance tracked through QR codes or wallet authentication
- Attendee-controlled attendance marking
- Bulk verification support by an attendee that registered for others (Future Implementation)
- Attendance rate calculation
- Revenue release conditions
FREE_TICKET_PRICE: 0 ETNMINIMUM_ATTENDANCE_RATE: 60%
- Custom errors for gas optimization
- Comprehensive validation checks
- Secure payment processing
- Node.js (v16 or higher)
- npm or yarn
- Git
- Alchemy API key for Electroneum Testnet access
# Clone repository
git clone https://github.com/CityBlockLab/Ticket_City_Smart_Contract
cd Ticket_City_Smart_Contract
# Install dependencies
yarn
# Copy environment file
check hardhat config file...# Compile contracts
npx hardhat compile
# Clean artifacts
npx hardhat clean
# Run local node
npx hardhat node-
Creating Issues
- Use provided issue templates
- Tag with appropriate labels
- Include detailed description
- Tag repository @devbigeazi
-
Picking Issues
- Comment on the issue you want to work on
- Wait for assignment
- Tag repository @devbigeazi
# Create new feature branch
git checkout -b feature/issue-number-description
# Create new bugfix branch
git checkout -b fix/issue-number-description
# Create new documentation branch
git checkout -b docs/issue-number-description-
Before Submitting
- Run tests:
npx hardhat test - Generate coverage:
npx hardhat coverage - Update documentation if needed
- Ensure clean compilation
- Run tests:
-
Submission Requirements
- Link related issue(s)
- Provide detailed description
- Include test results
- Tag repository owner
-
Review Process
- Address review comments
- Update PR as needed
- Maintain communication
- Follow Solidity style guide
- Use NatSpec comments
- Implement proper error handling
- Maintain test coverage
- Follow gas optimization practices
-
Access Control
- Implement role-based access
- Use OpenZeppelin's Ownable where appropriate
- Validate all inputs
-
Payment Handling
- Use pull over push payments
- Implement reentrancy guards
- Handle edge cases
-
Smart Contract Security
- Follow SCSVS guidelines
- Implement emergency stops
- Document assumptions
- Consider gas limitations
- GitHub Issues: Technical problems and bug reports
- Telegram Community: General discussion and support
- Documentation: Comprehensive guides and references
- Security: Private disclosure process for vulnerabilities
For additional support or questions:
- Check existing documentation
- Search closed issues
- Join Telegram community
- Contact @devbigeazi
