{"id":19096878,"url":"https://github.com/makerdao/dss-darkspell","last_synced_at":"2025-04-18T16:31:33.820Z","repository":{"id":150487157,"uuid":"239582525","full_name":"makerdao/dss-darkspell","owner":"makerdao","description":"spell to conceal bug fix source and bytecode during pause delay","archived":true,"fork":false,"pushed_at":"2020-04-14T03:25:55.000Z","size":25,"stargazers_count":10,"open_issues_count":2,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-11T20:37:44.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makerdao.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":"2020-02-10T18:26:41.000Z","updated_at":"2024-02-06T18:28:26.000Z","dependencies_parsed_at":"2023-05-02T07:11:41.786Z","dependency_job_id":null,"html_url":"https://github.com/makerdao/dss-darkspell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fdss-darkspell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fdss-darkspell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fdss-darkspell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fdss-darkspell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makerdao","download_url":"https://codeload.github.com/makerdao/dss-darkspell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249517937,"owners_count":21284861,"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":"2024-11-09T03:38:04.807Z","updated_at":"2025-04-18T16:31:33.804Z","avatar_url":"https://github.com/makerdao.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DSS Darkspell\n\nUsing the `CREATE2` opcode, we can predetermine the deploy address of a contract if we have the following three items:\n\n- (`bytes`) init bytecode of the contract (currently undeployed)\n- (`address`) address of contract that will deploy the contract\n- (`bytes32`) salt (also referred to as the nonce)\n\nThe most simple option to fix a bug is to use a `CREATE2` generated address as the 'action' address in a spell, deploy, lift to the hat, and schedule the spell. Then, once beyond the non-zero GSM delay, deploy the pre-authorized spell action contract, and then cast the plotted spell. \n\nTypically, spells make use of a separate 'SpellAction' proxy contract to execute system changes. 'SpellAction' contracts consists of a handful of constant state variables and an `execute()` function with no parameters. Within the execute function are the privileged calls to the DSS system, where the bug fix would occur. This architecture requires no changes to the current spell infrastructure.\n\n# Requirements\n\n- https://dapp.tools\n\n# Getting Started\n\nClone the repository:\n\n```\ngit clone https://github.com/makerdao/dss-darkspell.git\n```\n\nThen, in the `env-kovan` file in this repo, with `ETH_FROM`, `ETH_KEYSTORE`, and `ETH_PASSWORD` environment variables set:\n\n```\n./test.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerdao%2Fdss-darkspell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakerdao%2Fdss-darkspell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerdao%2Fdss-darkspell/lists"}