{"id":27946297,"url":"https://github.com/jeffneff/tea","last_synced_at":"2025-05-07T13:53:18.955Z","repository":{"id":241731208,"uuid":"689034602","full_name":"JeffNeff/tea","owner":"JeffNeff","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-08T16:34:37.000Z","size":7857,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-29T22:05:46.871Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JeffNeff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-09-08T16:32:41.000Z","updated_at":"2024-05-29T22:05:51.027Z","dependencies_parsed_at":"2024-05-29T22:25:40.725Z","dependency_job_id":null,"html_url":"https://github.com/JeffNeff/tea","commit_stats":null,"previous_names":["jeffneff/tea"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffNeff%2Ftea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffNeff%2Ftea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffNeff%2Ftea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeffNeff%2Ftea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeffNeff","download_url":"https://codeload.github.com/JeffNeff/tea/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252892505,"owners_count":21820645,"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-05-07T13:53:15.266Z","updated_at":"2025-05-07T13:53:18.947Z","avatar_url":"https://github.com/JeffNeff.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tea\n\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"200\" src=\"/teapartybiglogo.png\" alt=\"Material Bread logo\"\u003e\n\u003cp align=\"center\"\u003e\nThe application interface for `TeaParty` \n\u003c/p\u003e\n\u003c/p\u003e\n## Design / Overview\n\n`TeaParty` consists of two core parts `tea` \u0026 `party`, as illustrated by the diagram below. \n\n* `party` - A suite of services and logic that support the platform. This is where all the magic happens 🪄 ( If this sounds complicated, just think of `party` as the 🧠 \"brains\" 🧠 of the project .) \n\n* `tea` - A suite of services and logic to make it easy for users to interact with `party` \n\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"200\" src=\"/teadiagram.png\" alt=\"Material Bread logo\"\u003e\n\u003cp align=\"center\"\u003e\n\n\n`tea` was elected to be designed as a desktop application over a hosted web service in order to provide users with the most control, safety, privacy, and security, while interacting with the marketplace. (**Note** Although `tea` is packaged as a desktop application, it does not have to run on your local desktop! In fact it is quite happy living on a remote server.)\n\n`tea` works by first checking for a local [NKN](https://nkn.org/) wallet, `wallet`, file and begins listing to this address. If this file does not exist, a new account is created for the user. (**NOTE** This file, `wallet`, is very imporant and should be treated as any other wallet or private key. Do not delete, move, or alter this file while you have open or pending trades as your NKN public address is how `party` talks to your `tea` client.)\n\nAfter starting the NKN connection, `tea` also begins serving the static assets located at `kodata` (our React application) while exposing several API endpoints for the user to interact with `Party` \n\n`tea` is now at your disposal to interact with 🎉`Party`🎉\n\n### Current Supported Assets\n\n`TeaParty` currently supports the trade of the following assets:\n* PartyChain\n* Ethereum\n* EthOne\n* Octa\n* Polygon\n* Celo\n* Solana\n* ANY - ( Users are able to list trades for `ANY` of the supported assets by defining a USD value for the trade) \n\n\n### Asset Support Comming Soon\n\nI am currently in the process of introducing the following assets into `TeaParty`\n\n* NFT's (on all supported chains) \n* Kaspa\n* Radiant\n* Bitcoin\n* Raven\n* Ergo\n* .... Want `TeaParty` to support something not on the roadmap? [submit](https://github.com/TeaPartyCrypto/Tea/issues) an issue and let me know! \n\n\n## Getting Started\n**NOTE** Tea is currently in BETA and the only server avalible is the staging enviorment. In the staging environment there are several **IMPORTANT** differences from the production environment:\n\n1. All of the RPC's are pointing to the following networks \n\n(**DO NOT SEND MAINNET CURRENCY**)\n\n       * Ethereum: Goerli ([faucet](https://www.alchemy.com/overviews/goerli-faucet))\n\n       * Polygon: Mumbai ([faucet](https://faucet.polygon.technology/))\n\n       * Solana: Testnet ([faucet](https://solfaucet.com/))\n\n       * Celo: Alfajores ([faucet](https://celo.org/developers/faucet))\n\n       * GRAMS: Mainnet\n      \n       * OCTA: Mainnet\n\n       * ETHONE: Mainnet\n\n1. The watch timeout has been taken down to 300 secconds from 2 hours ( After 300 secconds any pending transaction will fail) \n\n1. Currently, users still have to pay for the transaction fees ( I will personally reimburse any and all GRAMS costs incurred while playing on testnet untill the faucet is setup. \n\n\n### System Prerequisites for Running `tea`\n\n`tea` is currently distribuited as both a container image and a Linux binary. This path was taken to support a maximum number of runtime environments at launch, however, the packaging will change over time to make it accessable to non Linux/Docker users.\n\nPlease download and configure Docker for your system. (GUI - [download](https://www.docker.com/products/docker-desktop/) CLI - [download](https://docs.docker.com/get-docker/))\n\nIf you need help getting started, feel free to join us in the MineOnlium [Discord!](https://discord.gg/4JFjejV4FN) or PM me directly on Discord @ Filth#5858 (439229993625714688)\n\nYou can also post in the Github [Discussions](https://github.com/TeaPartyCrypto/Tea/discussions)\n\nHere are a few things you can currently do with `tea`:\n\n* Browse the marketplace. \n* Create new orders. \n* View acquired Private Keys.\n* Remove acquired Private Keys from the local filesystem. \n* Interact with the `TeaParty` smart contract to pay for transaction fees, currently set @ 1 GRAMS/ Transaction.\n\n\n## Quickstart `tea` \n\n\nThe quickest way to get going with `tea` is by executing one of the following commands (Only OSX and Linux is supported at the moment and require `git`)\n\n!!NOTE!! the `quickstart` method will point you to a production release of `tea` I.E. Mainnet RPC's are used here, unlike the rest of the methods below that are on testnet. \n\nOSX (amd64):\n```\ngit clone https://github.com/TeaPartyCrypto/teav3.git \u0026\u0026 cd Tea \u0026\u0026 cd release \u0026\u0026 open http://localhost:8081 \u0026\u0026 ./mac \n```\n\nLinux:\n```\ngit clone https://github.com/TeaPartyCrypto/teav3.git \u0026\u0026 cd Tea \u0026\u0026 cd release \u0026\u0026 xdg-open http://localhost:8081 \u0026\u0026 ./linux\n```\n\nWindows:\n```\ngit clone https://github.com/TeaPartyCrypto/teav3.git \u0026\u0026 cd Tea \u0026\u0026 cd release \u0026\u0026 start http://localhost:8081 \u0026\u0026 windows.exe\n```\n\n\n### Start `tea` from a release\nReleases can be downloaded from the releases on the right side of the homepage of this repository on github. Or the most current build is always avalible in the `release` directory. \n\nStart a release by navigating into the `/release` folder (either within this repo. or via download) and executing the proper binary for your system. \n\n### Build an run `tea` from source for LOCAL testing\n\nTo start `tea` pointing to a local instance of `Party`:\n\n```cmd\nmake run\n```\n\nYou can now visit `http://localhost:8081` to view the interface.\n\n### Build an run `tea` from source for STAGING testing\n\nTo start `tea` pointing to the STAGING instance of `Party`:\n\n```cmd\nmake staging\n```\n\nYou can now visit `http://localhost:8081` to view the interface.\n\n### Build an run `tea` from source for PRODUCTION testing\n\nTo start `tea` pointing to the production instance of `Party`:\n\n```cmd\nmake prod\n```\n\nYou can now visit `http://localhost:8081` to view the interface.\n\n### Build and Bundle from Source\n\nExecute the following to build and bundle the application from source:\n\n```cmd\nmake build\n```\n\n**Note** That `make debug` is also avalible, this will build the project and then imediatly start serving a local revision. \n\n\n### Build and deploy to Kubernetes\n\nAs of right now, you need to know the service IP address before building the frontend (this will be fixed in the future). \n\n* Edit the `.env` file located at `packages/react-app/.env` with the IP address the service will be deployed to. \n\n* Build tea:\n\n```cmd\nmake build\n```\n\n* Build and Push the Docker image:\n\n```cmd\ndocker build -t \u003cYourDockerHubUsername\u003e/tea:latest .\ndocker push \u003cYourDockerHubUsername\u003e/tea:latest\n```\n\n* Update the manifest located at `config/0-tea.yaml` with the image you just pushed. \n\n* Deploy the service:\n\n```cmd\nkubectl apply -f config/0-tea.yaml\n```\n\n\n\n# Developer \n\n## Contributing\n\nCurrently `teaparty` is being devloped solo. So I am more than happy to accept any and all contributions/issues/requests/input from the community! \n\nInterested? Try:\n\n* [Submiting](https://github.com/TeaPartyCrypto/Tea/pulls) a PR. \n* [Creating](https://github.com/TeaPartyCrypto/Tea/issues) an issue!\n* Join the TeaParty [Discord](https://discord.gg/4JFjejV4FN).\n* PM me on Discord @ Filth#5858 (439229993625714688).\n\n## Backend Interactions \n### /sell\n\n`/sell` provides an interface for creating new sell requests. It expects an HTTP Post request containing the following JSON schema:\n\n| Key      | Description | \n| ----------- | ----------- |\n| currency      | The asset the seller wishes to post for trade       |\n| amount   | The quantity of `currency` the seller wishes to trade        |\n| tradeAsset   |   The asset the seller wishes to obtain       |\n| price   | The quantity of `tradeAsset` the seller wishes to obtain        |\n| sellerShippingAddress   | An address on the `tradeAsset` network that the seller wishes to recieve payment on   |\n| paymentTransactionID   | The Users Address on the PartyChain that has paid for a `TeaParty` transaction via the smart contract. |\n\nExample curl request:\n```cmd\ncurl -v \"http://0.0.0.0:8081/sell\" \\\n       -X POST \\\n       -H \"Content-Type: application/json\" \\\n       -d '{\"currency\":\"kaspa\",\"amount\": 10000 ,\"tradeAsset\":\"kaspa\",\"price\":10000, \"sellerShippingAddress\": \"kaspa:qqttgqrl38an9r543qnn0g3lywuhsp8cy5e04lfrfsgadnjcdgmsg8zvmjgrj\", \"paymentTransactionID\":\"0x5bbfa5724260Cb175cB39b24802A04c3bfe72eb3\"}'\n```\n\n### /list\n`/listorders` provides an interface for listing the avalible orders. It expects an HTTP GET request. \n\nExample curl request:\n```cmd \ncurl -v \"http://localhost:8081/list\" \n```\n\n### /buy\n`/buy` provides an interface for purchasing an open order. It expects an HTTP Post request containing the following JSON schema:\n\n\n| Key      | Description | \n| ----------- | ----------- |\n| txid      | A Transaction ID for the order in question.     |\n| buyerShippingAddress      | An address on the `tradeAsset` network that the buyer wishes to recieve payment on.    |\n| paymentTransactionID      |  The Users Address on the PartyChain that has paid for a `TeaParty` transaction via the smart contract.   |\n\nExample curl request:\n```cmd\ncurl -v \"http://localhost:8081/buy\" \\\n       -X POST \\\n       -H \"Content-Type: application/json\" \\\n       -d '{\"txid\":\"30e16ef3-8ada-453d-adee-bafd242cb91\", \"buyerShippingAddress\":\"0x5bbfa5724260Cb175cB39b24802A04c3bfe72eb3\",\"paymentTransactionID\":\"0x5bbfa5724260Cb175cB39b24802A04c3bfe72eb3\"}'\n```\n\n### /getPrivateKeys\n`/getPrivateKeys` provides an interface for retreving the locally stored Private keys. It expects an HTTP Get request. \n\nExample curl request:\n```cmd\ncurl -v \"http://localhost:8081/getPrivateKeys\" \\\n```\n\n## /deletePK\n`/deletePK` provides an interface for deleting the locally stored keys. It expects an HTTP Post request containing the following JSON schema:\n\n| Key      | Description | \n| ----------- | ----------- |\n| address      | The public address of the key to delete. |\n\n\nExample curl request:\n```cmd\ncurl -v \"http://localhost:8081/buy\" \\\n       -X POST \\\n       -H \"Content-Type: application/json\" \\\n       -d '{\"address\":\"0x5bbfa5724260Cb175cB39b24802A04c3bfe72eb3\"}'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffneff%2Ftea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffneff%2Ftea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffneff%2Ftea/lists"}