{"id":15653722,"url":"https://github.com/aniket-engg/sol-profiler","last_synced_at":"2025-04-30T17:41:40.359Z","repository":{"id":33274875,"uuid":"157360313","full_name":"Aniket-Engg/sol-profiler","owner":"Aniket-Engg","description":"CLI Tool to List \u0026 Store Solidity Smart Contract Methods Attributes","archived":false,"fork":false,"pushed_at":"2022-02-12T16:02:44.000Z","size":151,"stargazers_count":28,"open_issues_count":5,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-08T07:39:37.827Z","etag":null,"topics":["parser","profile","profiler","smart-contract","smart-contracts","sol","sol-profiler","solidity"],"latest_commit_sha":null,"homepage":"","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/Aniket-Engg.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}},"created_at":"2018-11-13T10:13:41.000Z","updated_at":"2024-06-23T03:45:23.000Z","dependencies_parsed_at":"2022-08-07T20:17:34.567Z","dependency_job_id":null,"html_url":"https://github.com/Aniket-Engg/sol-profiler","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aniket-Engg%2Fsol-profiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aniket-Engg%2Fsol-profiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aniket-Engg%2Fsol-profiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aniket-Engg%2Fsol-profiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aniket-Engg","download_url":"https://codeload.github.com/Aniket-Engg/sol-profiler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223783200,"owners_count":17201914,"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":["parser","profile","profiler","smart-contract","smart-contracts","sol","sol-profiler","solidity"],"created_at":"2024-10-03T12:46:44.861Z","updated_at":"2024-11-09T04:07:07.676Z","avatar_url":"https://github.com/Aniket-Engg.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sol-profiler\n[![npm version](https://badge.fury.io/js/sol-profiler.svg)](https://www.npmjs.com/package/sol-profiler)\n[![Build status](https://travis-ci.com/Aniket-Engg/sol-profiler.svg?branch=master)](https://travis-ci.com/Aniket-Engg/sol-profiler)\n[![dependencies Status](https://david-dm.org/aniket-engg/sol-profiler/status.svg)](https://david-dm.org/aniket-engg/sol-profiler)\n[![devDependencies Status](https://david-dm.org/aniket-engg/sol-profiler/dev-status.svg)](https://david-dm.org/aniket-engg/sol-profiler?type=dev)\n[![npm](https://img.shields.io/npm/dw/sol-profiler.svg)](https://www.npmjs.com/package/sol-profiler)\n[![npm](https://img.shields.io/npm/dt/sol-profiler.svg?label=Total%20Downloads)](https://www.npmjs.com/package/sol-profiler)\n[![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/Aniket-Engg/sol-profiler)\n[![LoC](https://tokei.rs/b1/github/Aniket-Engg/sol-profiler?category=lines)](https://github.com/Aniket-Engg/sol-profiler)\n[![Package Quality](https://npm.packagequality.com/shield/sol-profiler.svg)](https://packagequality.com/#?package=sol-profiler)\n\nsol-profiler lists down the properties of all the contract methods which helps to visualize and review the definition of various contract methods involved at one glance. This is easy to use and user-friendly.\n\n\u003cb\u003eNote: \u003c/b\u003esol-profiler does not ensure/guarantee any kind of security or correctness of any smart-contract.\n\n## Features\n* Lists down attributes of contract methods \n* Works with file \u0026 directory both\n* Displays user friendly colourful profile on console for single file\n* Also stores generated profile in a folder names `profiles` in a `.txt` file named with suffix `_Profile`\n* Generates \u0026 stores profile for each available Solidity file if directory path is passed\n* Supports file import relatively and from `node_modules`\n* Explicitly marks `abstract` and `fallback` functions\n* Explicitly marks `library` and `interface` contracts\n* Since Solidity release 0.5.0, Explicit data location for all variables of struct, array or mapping types is now mandatory, so profile also include the data location of parameters defined explicitly.\n\n## Install\n```\nnpm install --global sol-profiler\n```\nor\n```\nnpm install --save-dev sol-profiler\n```\n\n## Application\nFor DApp, one can provide its contract directory path and profile will be stored for each contract which can be referred in future to get the knowledge of the methods defined in various contract.\n```\nsol-profiler \u003cdapp/contracts/or/any/directory/path\u003e\n```\n\nIt can be used for individual file as:\n```\nsol-profiler \u003csolidity/contract/file/path\u003e\n```\nIt can also be added in the `package.json` as:\n```\n{\n  \"scripts\": {\n    \"generateProfile\": \"sol-profiler ./contracts/\"\n  },\n}\n```\n## Example\nWe have attached an extensive example i.e. [sample.sol](https://github.com/Aniket-Engg/sol-profiler/blob/master/example/sample.sol). For this, profiler result will be same as in below image : \n\n![solp2](https://user-images.githubusercontent.com/30843294/55281218-4bc56a80-5357-11e9-852f-520dde666b9d.png)\n\nGenerated profile which get stored in `.txt` file can be seen [here](https://github.com/Aniket-Engg/sol-profiler/blob/master/profiles/sample_Profile.txt).\n\n## VSCode Extension\nsol-profiler is also available as [Visual Studio Code Extension](https://marketplace.visualstudio.com/items?itemName=Aniket-Engg.sol-profiler-vscode)\n\n## Contribution/Suggestions\nAny kind of suggestion/feedback/contribution is most welcome!\n\n## License\n[MIT](https://github.com/Aniket-Engg/sol-profiler/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faniket-engg%2Fsol-profiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faniket-engg%2Fsol-profiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faniket-engg%2Fsol-profiler/lists"}