{"id":18775763,"url":"https://github.com/tom2drum/dividends_dapp","last_synced_at":"2026-03-03T20:02:22.939Z","repository":{"id":40546274,"uuid":"470973216","full_name":"tom2drum/dividends_dapp","owner":"tom2drum","description":"👻 Dividends distribution smart-contract","archived":false,"fork":false,"pushed_at":"2022-05-03T11:26:36.000Z","size":2240,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-02T07:53:45.576Z","etag":null,"topics":["hardhat","solidity","solidity-dapps"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/tom2drum.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}},"created_at":"2022-03-17T11:52:17.000Z","updated_at":"2025-12-31T16:45:04.000Z","dependencies_parsed_at":"2022-08-09T22:50:32.627Z","dependency_job_id":null,"html_url":"https://github.com/tom2drum/dividends_dapp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tom2drum/dividends_dapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom2drum%2Fdividends_dapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom2drum%2Fdividends_dapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom2drum%2Fdividends_dapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom2drum%2Fdividends_dapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tom2drum","download_url":"https://codeload.github.com/tom2drum/dividends_dapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom2drum%2Fdividends_dapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30057615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["hardhat","solidity","solidity-dapps"],"created_at":"2024-11-07T19:43:51.006Z","updated_at":"2026-03-03T20:02:22.909Z","avatar_url":"https://github.com/tom2drum.png","language":"TypeScript","readme":"[![Test contracts](https://github.com/1n1t/shares/actions/workflows/contract-tests.yml/badge.svg?branch=master)](https://github.com/1n1t/shares/actions/workflows/contract-tests.yml)\n\n# Dividends distribution contract\n\n## Description\n\nThis contract allows to distribute a company's earnings among registered stakeholders. \n\nThe owner which is also being the source of the income deploys the contract with appropriate amount of shares to sell. Once done, he can register stakeholders and transfer money directly to the contract address for later\nusage as dividends. \n\nThe dividends can be claimed by stakeholders upon request basis (pull payment model). This means that all payments will be not automatically forwarded to all eligible parties when new dividends are issued. Instead the actual transfer of the money should be manually triggered for every stakeholder account by calling the `claim` method.\n\nDuring the lifetime of the contract the owner is able to change the shares allocation between stakeholders or add a new one even when some dividends were deposited and partly claimed. \n\nThe contract also accumulate the part of the dividends that was not distributed among parties due to incomplete shares allocation. The owner can withdraw this amount of money at any given point.\n\n## Local development\n\nCompile the contract: `npm run contract:compile`  \nRun the local network: `npm run network:up`  \nDeploy contract to the network: `npm run contract:deploy:local`  \nBuild UI and run local dev server: `npm run ui:start` and navigate to `http://localhost:3000/`\n\nMake sure that you have Metamask extension installed in your browser. Import several accounts to the extension from the local blockchain network (see the log output when the local node was started). Note that by default the contract is deployed with the `Account #0`, so use it as the owner of the contract when interacting with the app page.\n\n## Unit tests\n\nRun contracts tests: `npm run contract:test`  \nRun contracts tests in watch mode: `npm run contract:test:watch`  \nGet code coverage report: `npm run contract:code-coverage`  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom2drum%2Fdividends_dapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftom2drum%2Fdividends_dapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom2drum%2Fdividends_dapp/lists"}