{"id":23561864,"url":"https://github.com/wraith-works/wraith-works-contracts","last_synced_at":"2026-01-24T14:04:23.516Z","repository":{"id":164153269,"uuid":"629247570","full_name":"Wraith-Works/wraith-works-contracts","owner":"Wraith-Works","description":"A set of Solidity smart contracts to help streamline the development process for commonly used patterns, as well as providing other innovative ideas that can be adopted by the community.","archived":false,"fork":false,"pushed_at":"2024-04-17T13:39:21.000Z","size":995,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-22T00:37:19.471Z","etag":null,"topics":["ethereum","smart-contracts","solidity"],"latest_commit_sha":null,"homepage":"https://docs.wraithworks.xyz/","language":"Solidity","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/Wraith-Works.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-04-17T23:52:07.000Z","updated_at":"2023-10-09T14:13:56.000Z","dependencies_parsed_at":"2024-10-29T21:57:21.765Z","dependency_job_id":null,"html_url":"https://github.com/Wraith-Works/wraith-works-contracts","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wraith-Works%2Fwraith-works-contracts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wraith-Works%2Fwraith-works-contracts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wraith-Works%2Fwraith-works-contracts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wraith-Works%2Fwraith-works-contracts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wraith-Works","download_url":"https://codeload.github.com/Wraith-Works/wraith-works-contracts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231377966,"owners_count":18367485,"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":["ethereum","smart-contracts","solidity"],"created_at":"2024-12-26T16:13:30.067Z","updated_at":"2026-01-24T14:04:23.510Z","avatar_url":"https://github.com/Wraith-Works.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting Started\n\n![Banner](assets/banner.png)\n\nWraith Works contracts are a set of Solidity smart contracts to help streamline the development process for commonly used patterns, as well as providing other innovative ideas that can be adopted by the community.\n\n## Installation\n\nOur contracts are deployed to npmjs, and the following commands can be used to install in your project.\n\n!!! npm\n    ```bash\n    npm i @wraith-works/contracts\n    ```\n\n!!! yarn\n    ```bash\n    yarn add @wraith-works/contracts\n    ```\n\n## Usage\n\nUtilizing the contracts in your project is simple:\n\n```solidity\nimport \"@wraith-works/contracts/tokens/ERC721/BaseERC721.sol\";\n```\n\n### Example Contract\n\n```solidity\npragma solidity ^0.8.19;\n\nimport \"@wraith-works/contracts/tokens/ERC721/AirdropERC721.sol\";\nimport \"@wraith-works/contracts/tokens/ERC721/RevealableERC721.sol\";\n\ncontract MyNFT is AirdropERC721, RevealableERC721 {\n    constructor()\n        BaseERC721(\n            \"MyNFT\",\n            \"NFT\",\n            \"https://example.com/\",\n            \".json\",\n            3333,\n            0x14c84F8aBaD55F074Ef18BEb46A7cbede6a17B10,\n            750\n        )\n        AutoIncrementERC721(1)\n        RevealableERC721(\"https://example.com/prereveal.json\")\n    {}\n\n    function tokenURI(uint256 _tokenId) public view override(BaseERC721, RevealableERC721) returns (string memory) {\n        return RevealableERC721.tokenURI(_tokenId);\n    }\n}\n```\n\n## Testing\n\nEach contract has an associated test case in `test/`. Follow these steps to run the tests:\n\n1. Install dependencies with `yarn install`.\n2. Run the tests with `yarn test`.\n\n### Example Output\n\n```bash\nBaseERC721 airdrop contract test\n  ✓ BaseERC721 airdrop security checks\n  ✓ Can airdrop total supply\n\nBaseERC721 contract test\n  ✓ Deployment should succeed\n  ✓ Deployment with max supply should succeed\n  ✓ BaseERC721 security checks\n  ✓ Can pause and unpause contract\n  ✓ Mint fails when paused\n  ✓ Unlimited mint more than one\n  ✓ Max supply mint more than one\n  ✓ Max supply mint total supply\n  ✓ Correct tokenURI\n\nBaseERC721 revealable contract test\n  ✓ Deployment should succeed\n  ✓ BaseERC721 revealable security checks\n  ✓ tokenURI returns prereveal URI\n  ✓ tokenURI returns URI for token when revealed\n\n·--------------------------------------------|---------------------------|-------------|-----------------------------·\n|            Solc version: 0.8.19            ·  Optimizer enabled: true  ·  Runs: 200  ·  Block limit: 10000000 gas  │\n·············································|···························|·············|······························\n|  Methods                                   ·              175 gwei/gas               ·       0.84 usd/matic        │\n·························|···················|·············|·············|·············|···············|··············\n|  Contract              ·  Method           ·  Min        ·  Max        ·  Avg        ·  # calls      ·  usd (avg)  │\n·························|···················|·············|·············|·············|···············|··············\n|  AirdropERC721Mock     ·  airdrop          ·    3840483  ·    3846083  ·    3846028  ·          101  ·       0.57  │\n·························|···················|·············|·············|·············|···············|··············\n|  AirdropERC721Mock     ·  unpause          ·          -  ·          -  ·      27773  ·            2  ·       0.00  │\n·························|···················|·············|·············|·············|···············|··············\n|  ERC721Mock            ·  mint             ·     608674  ·    3841655  ·    3748345  ·          104  ·       0.55  │\n·························|···················|·············|·············|·············|···············|··············\n|  ERC721Mock            ·  pause            ·          -  ·          -  ·      27757  ·            1  ·       0.00  │\n·························|···················|·············|·············|·············|···············|··············\n|  ERC721Mock            ·  setBaseURI       ·          -  ·          -  ·      31226  ·            1  ·       0.00  │\n·························|···················|·············|·············|·············|···············|··············\n|  ERC721Mock            ·  unpause          ·          -  ·          -  ·      27773  ·            5  ·       0.00  │\n·························|···················|·············|·············|·············|···············|··············\n|  RevealableERC721Mock  ·  mint             ·          -  ·          -  ·     147925  ·            1  ·       0.02  │\n·························|···················|·············|·············|·············|···············|··············\n|  RevealableERC721Mock  ·  setPrerevealURI  ·          -  ·          -  ·      40758  ·            1  ·       0.01  │\n·························|···················|·············|·············|·············|···············|··············\n|  RevealableERC721Mock  ·  toggleReveal     ·          -  ·          -  ·      45643  ·            1  ·       0.01  │\n·························|···················|·············|·············|·············|···············|··············\n|  RevealableERC721Mock  ·  unpause          ·          -  ·          -  ·      27773  ·            1  ·       0.00  │\n·························|···················|·············|·············|·············|···············|··············\n|  Deployments                               ·                                         ·  % of limit   ·             │\n·············································|·············|·············|·············|···············|··············\n|  AirdropERC721Mock                         ·          -  ·          -  ·    2254114  ·       22.5 %  ·       0.33  │\n·············································|·············|·············|·············|···············|··············\n|  ERC721Mock                                ·    2192295  ·    2192319  ·    2192317  ·       21.9 %  ·       0.32  │\n·············································|·············|·············|·············|···············|··············\n|  RevealableERC721Mock                      ·          -  ·          -  ·    2350328  ·       23.5 %  ·       0.35  │\n·--------------------------------------------|-------------|-------------|-------------|---------------|-------------·\n\n15 passing (2m)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwraith-works%2Fwraith-works-contracts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwraith-works%2Fwraith-works-contracts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwraith-works%2Fwraith-works-contracts/lists"}