{"id":27117758,"url":"https://github.com/raykitajima/ticketagencycontracts","last_synced_at":"2025-04-07T06:36:24.319Z","repository":{"id":285258716,"uuid":"548219109","full_name":"RayKitajima/TicketAgencyContracts","owner":"RayKitajima","description":"solidity smart contracts for ticketing service","archived":false,"fork":false,"pushed_at":"2022-10-21T01:45:28.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T17:02:51.456Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RayKitajima.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-09T05:55:42.000Z","updated_at":"2023-11-12T10:44:54.000Z","dependencies_parsed_at":"2025-03-30T17:02:55.338Z","dependency_job_id":"1ca5f3a7-b25e-4f29-afa7-8aa67439acbc","html_url":"https://github.com/RayKitajima/TicketAgencyContracts","commit_stats":null,"previous_names":["raykitajima/ticketagencycontracts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayKitajima%2FTicketAgencyContracts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayKitajima%2FTicketAgencyContracts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayKitajima%2FTicketAgencyContracts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RayKitajima%2FTicketAgencyContracts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RayKitajima","download_url":"https://codeload.github.com/RayKitajima/TicketAgencyContracts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608135,"owners_count":20965950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-07T06:36:23.701Z","updated_at":"2025-04-07T06:36:24.246Z","avatar_url":"https://github.com/RayKitajima.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# TicketAgencyContracts\n\nTicketAgencyContracts is a smart contract that allows you to create ticketing service for your shows, concerts or any other kind of event. \n\nEvent organizers create an agency contract for their series of shows, and then create show contracts for each show in the series. Each show contract has a set of seat types, and each seat type has a set of seats. Prices for each seat type are set by the event organizer, and then the event organizer sells tickets to the show through the show contract.\n\nMain features are presented as a set of test by Forge. See the tests in [`test/`](test/) for more details.\n\n# Goals\n\nSupport for nearly all ticket sales formats.\n\n# Notes\n\n## Check-in \n\nCheck-in function is called by the admission staff or gatekeeper application to check-in a ticket.\n\nIn this application, check-in is simply to make sure that the person trying to enter has the correct ticket. (In other words, the person sure has the ticket holder's private key.) Thus, the same ticket can be checked in multiple times until the show is over.\n\nFor example, the admission staff can verify that the user has the correct ticket by validating a QR code with the user's private key signature value of the number posted near the entrance. This can be done without invoking a smart contract if the user's wallet works offline and the admission staff has previously downloaded the list of ticket holder's public address locally.\n\nAfter the ticket is checked-in, the ticket is no longer tradable. (status is changed to \"CheckedIn\")\n\n## Ticket resale\n\nTicket holders can offer their tickets for resale through the show contract by calling `Show#offerTicket` function. Anyone can buy the ticket by calling `Show#buyOfferedTicket` function with original ticket's ID and the price.\n\n## Ticket cancellation and refund\n\nTicket holders cannot cancel their tickets. However, the event organizer can cancel the show by calling `Show#cancel` function. This will cancel all the tickets and refund the ticket holders.\n\n# Prerequisites\n\n- [Foundry](https://github.com/foundry-rs/foundry) \n\n\n# Installation and Test\n\n```bash\n$ git clone --recurse-submodules https://github.com/OpenTicketAgency/TicketAgencyContracts.git\n$ cd TicketAgencyContracts\n$ forge test -vvvv\n```\n\n# How to use\n\nCurrrently, you have to change `CREATE_FEE` in `AgencyFactory.sol` to `0`, or modify to ignore the fee. \nThis is because the factory fee management is not implemented yet. \n\n# Contributing\n\nFeel free to open an issue or a pull request!\n\n\n# License\n\nTicketAgencyContracts is licensed under the MIT license. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraykitajima%2Fticketagencycontracts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraykitajima%2Fticketagencycontracts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraykitajima%2Fticketagencycontracts/lists"}