{"id":26336344,"url":"https://github.com/notrustverify/tipalph","last_synced_at":"2025-07-13T08:40:00.372Z","repository":{"id":223331970,"uuid":"727102277","full_name":"notrustverify/tipALPH","owner":"notrustverify","description":"A tipping bot for the Alephium blockchain. Developed by No Trust Verify","archived":false,"fork":false,"pushed_at":"2025-04-06T07:34:08.000Z","size":14735,"stargazers_count":2,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T08:27:42.099Z","etag":null,"topics":["alephium","bot","telegram-bot","tipping"],"latest_commit_sha":null,"homepage":"https://t.me/tipALPHBot","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/notrustverify.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-12-04T07:29:30.000Z","updated_at":"2025-04-06T07:34:11.000Z","dependencies_parsed_at":"2024-07-25T10:19:06.721Z","dependency_job_id":"32f51bb3-1d51-455a-bad4-4ce988d3f626","html_url":"https://github.com/notrustverify/tipALPH","commit_stats":null,"previous_names":["notrustverify/tipalph"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/notrustverify/tipALPH","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notrustverify%2FtipALPH","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notrustverify%2FtipALPH/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notrustverify%2FtipALPH/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notrustverify%2FtipALPH/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/notrustverify","download_url":"https://codeload.github.com/notrustverify/tipALPH/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notrustverify%2FtipALPH/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265111430,"owners_count":23713031,"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":["alephium","bot","telegram-bot","tipping"],"created_at":"2025-03-16T01:17:57.792Z","updated_at":"2025-07-13T08:40:00.336Z","avatar_url":"https://github.com/notrustverify.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TipAlph\n\nThis repository hosts the code of @TipAlphBot, a bot that allows you to send and receive Alephium with Telegram!   \nThis project was developed as part of the [Alephium Hackathon](https://medium.com/@alephium/alephium-1-hackathon-pioneers-918643251741).\n\nThis project uses Node lts/hydrogen (v18.19.0) and NPM (v10.2.3).\n\n## Dependencies\n\n_To be added soon_.\n\n## How to deploy\n\nThe only supported way to deploy the code actually is using Docker, as the code uses Docker secrets.   \nTo deploy the bot:\n\n1. create a bot by chatting with [Bot Father](https://t.me/botfather) and get your bot token\n2. get Alephium related elements:\n   1. get a fresh mnemonic for the wallet hosting everybody's address. Make sure to not create and new address on this wallet.\n   2. get an address for collecting the operator's fees (if you want some)\n3. clone this repository `git clone https://github.com/notrustverify/tipALPH`\n4. copy the `.env.example` into `.env` file: `cp .env.example .env`\n5. change the variable in the `.env` file according to your setup (fullnode address, …) and insert the bot token and the address for fees in the `.env` file\n6. copy your freshly created mnemonic in a file named `bot_mnemonic.txt` in the `secrets` folder\n7. create a new TipAlph docker image with `npm run package`\n8. run `docker compose --profile tipalph up -d` to run the fresh docker image.\n\nOn the logs (with `docker compose --profile tipalph logs -f`), you should see a successful connection to the database as well as a ready and synced NodeProvider.  \nThe telegram bot should now be available.\n\n## How to develop\n\nTo work on the bot, we suggest to use the devnet. It allows for faster testing and better testing conditions (easier generation of tokens).   \nFollow the same procedure as for deployment, but specify a fullnode on the testnet and \"NETWORK=testnet\" in the .env file. The provided fees collection address and mnemonic for the wallets should also be on the testnet. We would advise you to use a different database as well, if you previously deployed on a database.\n\nThere is multiple way of running the code application:\n\n* using `npm run start`: will transpile the Typescript into Javacript and use node to execute it\n* using `npm run dev`: will directly execute the Typescript code using `tsx`\n* using `npm run watch`: as `npm run dev` but in watch mode (will reload the program if a file changed or ENTER is pressed)\n* as a docker container (see below)\n\nThese are defined in the _package.json_ file.\n\n## How to test\n\nBefore running the test suite, you need to have a fullnode on the devnet accessible to `http://127.0.0.1:22973`.  \nThe easiest way to do it is to start a docker container before running the test suite. This can be simply archived by running: `docker compose --profile test up -d` and waiting some seconds.\n\nTests can be run using `npm run test`.\n\nTo add coverage, edit the `jest.config.cjs` file and set `collectCoverage` to `true`;\n\n### Alephium side\n\nWe wrote some code to test the alephium client that our bot uses, to ensure that we correctly use it.\n\n### Telegram side\n\nIt seems to be really complicated to test Telegram bots (integration tests, by sending Telegram messages). If you know how to do it, please reach out to us or do a PR!\n\n## Building the docker container\n\nWe provide a Dockerfile to build the container. The easiest way to build a new image is by running the `npm run package` commands, which takes care of settings the appropriate tags for you.\n\nTo create a docker container from the freshly built image, we recommend using the provided docker-compose.yml file with the required configuration. Once you provided the required [dependencies](#dependencies), simply do a `docker compose --profile tipalph up` to spin a new container.\n\n## License\n\nThe code in this repository (without the dependencies it relies on), is released under the GNU GENERAL PUBLIC LICENSE v3 or later license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotrustverify%2Ftipalph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotrustverify%2Ftipalph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotrustverify%2Ftipalph/lists"}