{"id":25952280,"url":"https://github.com/setprotocol/set-protocol-v2","last_synced_at":"2025-04-05T00:05:53.992Z","repository":{"id":39794338,"uuid":"322492522","full_name":"SetProtocol/set-protocol-v2","owner":"SetProtocol","description":"Set Protocol V2","archived":false,"fork":false,"pushed_at":"2024-07-26T15:14:39.000Z","size":4978,"stargazers_count":124,"open_issues_count":32,"forks_count":95,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-28T23:03:58.209Z","etag":null,"topics":[],"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/SetProtocol.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":"2020-12-18T04:54:27.000Z","updated_at":"2025-03-18T05:27:52.000Z","dependencies_parsed_at":"2024-06-18T16:54:55.678Z","dependency_job_id":"6725abbf-e728-4888-842e-123060e20014","html_url":"https://github.com/SetProtocol/set-protocol-v2","commit_stats":{"total_commits":311,"total_committers":26,"mean_commits":"11.961538461538462","dds":0.8102893890675241,"last_synced_commit":"eb8938c90735144dc00e8c80e1df68e93c5bdbb6"},"previous_names":[],"tags_count":94,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SetProtocol%2Fset-protocol-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SetProtocol%2Fset-protocol-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SetProtocol%2Fset-protocol-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SetProtocol%2Fset-protocol-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SetProtocol","download_url":"https://codeload.github.com/SetProtocol/set-protocol-v2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266562,"owners_count":20910836,"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-03-04T14:50:26.418Z","updated_at":"2025-04-05T00:05:53.970Z","avatar_url":"https://github.com/SetProtocol.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://circleci.com/gh/SetProtocol/set-protocol-v2/tree/master\"\u003e\n    \u003cimg src=\"https://img.shields.io/circleci/project/github/SetProtocol/set-protocol-v2/master.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href='https://coveralls.io/github/SetProtocol/set-protocol-v2?branch=master'\u003e\u003cimg src='https://coveralls.io/repos/github/SetProtocol/set-protocol-v2/badge.svg?branch=master\u0026amp;t=4pzROZ' alt='Coverage Status' /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Set Protocol V2 Contract Repository\n\n## Contracts\n[Set Protocol](https://setprotocol.com/) is a specification for tokenized asset management strategies on the ethereum blockchain written in the Solidity programming language. We use [Hardhat](https://hardhat.org/) as a development environment for compiling, testing, and deploying our contracts.\n\n## Development\n\nTo use console.log during Solidity development, follow the [guides](https://hardhat.org/guides/hardhat-console.html).\n\n## Available Functionality\n\n### Run Hardhat EVM\n\n`yarn chain`\n\n### Build Contracts\n\n`yarn compile`\n\nTo speed up compilation, install solc 0.6.10 natively with the following command.\n```\nbrew install https://raw.githubusercontent.com/ethereum/homebrew-ethereum/06d13a8499801dc3ea4f19b2d24ed2eeb3072ebb/solidity.rb\n```\n\n### Generate TypeChain Typings\n\n`yarn build`\n\n### Run Contract Tests\n\n`yarn test` to run compiled contracts\n\nOR `yarn test:clean` if contracts have been typings need to be updated\n\n### Run Coverage Report for Tests\n\n`yarn coverage`\n\n## Installing from `npm`\n\nWe publish our contracts as well as [hardhat][22] and [typechain][23] compilation artifacts to npm.\n\n```\nnpm install @setprotocol/set-protocol-v2\n```\n\nThe distribution also comes with fixtures for mocking and testing SetProtocol's interactions with\nother protocols including Uniswap, Balancer, Compound (and many more.) To use these you'll need to install the peer dependencies listed in `package.json`.\n\n#### Example Usage\n\n```ts\nimport { PerpV2Fixture } from \"@setprotocol/set-protocol-v2/dist/utils/fixtures/PerpV2Fixture\";\nimport { getPerpV2Fixture } from \"@setprotocol/set-protocol-v2/dist/utils/test\";\n\nlet perpSetup: PerpV2Fixture;\nperpSetup = getPerpV2Fixture(...);\n```\n\n[22]: https://www.npmjs.com/package/hardhat\n[23]: https://www.npmjs.com/package/typechain\n\n## Semantic Release\n\nThis repository uses [semantic-release][10] to automatically publish in CI on merge to master. To trigger\na release, use the following naming convention in your PR description (or in your squash \u0026 merge commit\ndescription):\n\n+ patch release (e.g 1.0.1 -\u003e 1.0.2): `fix(topic): description`\n  + example: `fix(perpV2Viewer): return uint256 instead of int256`\n+ feature release (e.g 1.1.0 -\u003e 1.2.0): `feat(feature_name): description`\n  + example: `feat(PerpV2BasisTrading): Add PerpV2 Basis Trading Module`\n\n\n## Contributing\nWe highly encourage participation from the community to help shape the development of Set. If you are interested in developing on top of Set Protocol or have any questions, please ping us on [Discord](https://discord.gg/ZWY66aR).\n\n## Security\n\n### TODO: Independent Audits\n\n### Code Coverage\n\nAll smart contracts are tested and have 100% line and branch coverage.\n\n### Vulnerability Disclosure Policy\n\nThe disclosure of security vulnerabilities helps us ensure the security of our users.\n\n**How to report a security vulnerability?**\n\nIf you believe you’ve found a security vulnerability in one of our contracts or platforms,\nsend it to us by emailing [security@setprotocol.com](mailto:security@setprotocol.com).\nPlease include the following details with your report:\n\n* A description of the location and potential impact of the vulnerability.\n\n* A detailed description of the steps required to reproduce the vulnerability.\n\n**Scope**\n\nAny vulnerability not previously disclosed by us or our independent auditors in their reports.\n\n**Guidelines**\n\nWe require that all reporters:\n\n* Make every effort to avoid privacy violations, degradation of user experience,\ndisruption to production systems, and destruction of data during security testing.\n\n* Use the identified communication channels to report vulnerability information to us.\n\n* Keep information about any vulnerabilities you’ve discovered confidential between yourself and\nSet until we’ve had 30 days to resolve the issue.\n\nIf you follow these guidelines when reporting an issue to us, we commit to:\n\n* Not pursue or support any legal action related to your findings.\n\n* Work with you to understand and resolve the issue quickly\n(including an initial confirmation of your report within 72 hours of submission).\n\n* Grant a monetary reward based on the OWASP risk assessment methodology.\n\n[10]: https://semantic-release.gitbook.io/semantic-release/v/beta/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsetprotocol%2Fset-protocol-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsetprotocol%2Fset-protocol-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsetprotocol%2Fset-protocol-v2/lists"}