{"id":13795188,"url":"https://github.com/makerdao/spells-mainnet","last_synced_at":"2025-04-04T07:05:33.007Z","repository":{"id":37080195,"uuid":"221610774","full_name":"makerdao/spells-mainnet","owner":"makerdao","description":"Staging repo for MakerDAO weekly executive spells","archived":false,"fork":false,"pushed_at":"2025-03-24T09:06:47.000Z","size":1925,"stargazers_count":138,"open_issues_count":17,"forks_count":54,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-28T06:05:17.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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":"2019-11-14T04:22:46.000Z","updated_at":"2025-03-25T19:36:23.000Z","dependencies_parsed_at":"2023-09-28T02:30:19.135Z","dependency_job_id":"ae93a037-581f-42ce-9d69-5b419b1f25fe","html_url":"https://github.com/makerdao/spells-mainnet","commit_stats":{"total_commits":397,"total_committers":36,"mean_commits":"11.027777777777779","dds":0.8589420654911839,"last_synced_commit":"20e9f5ca61c62dbc2229068fb09f81f7431e2d92"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fspells-mainnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fspells-mainnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fspells-mainnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerdao%2Fspells-mainnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makerdao","download_url":"https://codeload.github.com/makerdao/spells-mainnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247135142,"owners_count":20889420,"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-08-03T23:00:53.084Z","updated_at":"2025-04-04T07:05:32.978Z","avatar_url":"https://github.com/makerdao.png","language":"Solidity","funding_links":[],"categories":["Projects","Projects Using Dapp"],"sub_categories":["DappTools"],"readme":"# spells-mainnet\n![Build Status](https://github.com/makerdao/spells-mainnet/actions/workflows/.github/workflows/tests.yaml/badge.svg?branch=master)\n\nStaging repo for MakerDAO executive spells.\n\n## Instructions\n\n### Getting Started\n\n```bash\n$ git clone git@github.com:makerdao/spells-mainnet.git\n$ dapp update\n```\n\n### Build\n\n```bash\n$ make\n```\n\n### Test (DappTools without Optimizations)\n\nSet `ETH_RPC_URL` to a Mainnet node.\n\n```bash\n$ export ETH_RPC_URL=\u003cMainnet URL\u003e\n$ make test\n```\n\n### Test (Forge without Optimizations)\n\n#### Prerequisites\n1. [Install](https://www.rust-lang.org/tools/install) Rust.\n2. [Install](https://github.com/gakonst/foundry#forge) Forge.\n\n#### Operation\nSet `ETH_RPC_URL` to a Mainnet node.\n\n```bash\n$ export ETH_RPC_URL=\u003cMainnet URL\u003e\n$ make test-forge\n```\n\n### Deploy\n\nSet `ETH_RPC_URL` to a Mainnet node and ensure `ETH_GAS_LIMIT` is set to a high enough number to deploy the contract.\n\n```bash\n$ export ETH_RPC_URL=\u003cMainnet URL\u003e\n$ export ETH_GAS_LIMIT=5000000\n$ export ETH_GAS_PRICE=$(seth --to-wei 100 \"gwei\")\n$ make deploy\n```\n\nA few helpful tips to estimate gas.  You can use the following to get a\ngas estimate for the deploy.\n\n```bash\nmake all\nmake estimate\n```\n\nOnce you have that, add another million gas as a buffer against\nout-of-gas errors.  Set ETH_GAS_LIMIT to this value.\n\n```bash\nexport ETH_GAS_LIMIT=\"$((\u003cvalue from previous step\u003e + 0))\"\nexport ETH_GAS_LIMIT=$(bc \u003c\u003c\u003c \"$ETH_GAS_LIMIT + 1000000\")\n```\n\nYou should also check current gas prices on your favorite site\n(e.g. https://ethgasstation.info/) and put that gwei value in the\nETH_GAS_PRICE line.\n\n```bash\nexport ETH_GAS_PRICE=$(seth --to-wei 420 \"gwei\")\n```\n\n### Cast to tenderly\n\n1. Create Tenderly account (no trial period needed atm) https://dashboard.tenderly.co/register\n    - Note down `TENDERLY_USER` and `TENDERLY_PROJECT` values\n2. Create Tenderly access token (on the account level!) https://dashboard.tenderly.co/account/authorization\n    - Note down `TENDERLY_ACCESS_KEY` values\n3. Export required env vars via `export` or create `scripts/cast-on-tenderly/.env` file with them:\n    ```env\n    ETH_RPC_URL=\"\"\n    TENDERLY_USER=\"\"\n    TENDERLY_PROJECT=\"\"\n    TENDERLY_ACCESS_KEY=\"\"\n    ```\n4. Execute `make cast-on-tenderly spell=0x...`, with the address of the spell that hasn't been casted yet\n    - The execution should finish with `successfully casted`\n5. Open the `public explorer url` printed into the console (it should require no credentials)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerdao%2Fspells-mainnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakerdao%2Fspells-mainnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerdao%2Fspells-mainnet/lists"}