├── .codespell-whitelist ├── .gitattributes ├── .github └── workflows │ ├── auto-merge-bot.yml │ ├── auto-stagnate-bot.yml │ ├── greetings.yml │ ├── manual-bot-rerun.yml │ ├── rerun-bot-pull-request-review.yml │ ├── rerun-bot-workflow-run.yml │ └── stale.yml ├── .gitignore ├── .travis-ci.sh ├── .travis.yml ├── 404.html ├── CNAME ├── EIPS ├── eip-1.md ├── eip-100.md ├── eip-101.md ├── eip-1010.md ├── eip-1011.md ├── eip-1013.md ├── eip-1014.md ├── eip-1015.md ├── eip-1046.md ├── eip-1051.md ├── eip-1052.md ├── eip-1056.md ├── eip-1057.md ├── eip-1062.md ├── eip-1066.md ├── eip-107.md ├── eip-1077.md ├── eip-1078.md ├── eip-1080.md ├── eip-1081.md ├── eip-1087.md ├── eip-1102.md ├── eip-1108.md ├── eip-1109.md ├── eip-1123.md ├── eip-1129.md ├── eip-1132.md ├── eip-1153.md ├── eip-1154.md ├── eip-1155.md ├── eip-1167.md ├── eip-1175.md ├── eip-1178.md ├── eip-1185.md ├── eip-1186.md ├── eip-1191.md ├── eip-1193.md ├── eip-1202.md ├── eip-1203.md ├── eip-1207.md ├── eip-1227.md ├── eip-1234.md ├── eip-1240.md ├── eip-1261.md ├── eip-1271.md ├── eip-1276.md ├── eip-1283.md ├── eip-1285.md ├── eip-1295.md ├── eip-1319.md ├── eip-1328.md ├── eip-1337.md ├── eip-1344.md ├── eip-1352.md ├── eip-1355.md ├── eip-1363.md ├── eip-137.md ├── eip-1380.md ├── eip-1386.md ├── eip-1387.md ├── eip-1388.md ├── eip-140.md ├── eip-141.md ├── eip-1417.md ├── eip-1418.md ├── eip-1438.md ├── eip-1444.md ├── eip-145.md ├── eip-1450.md ├── eip-1459.md ├── eip-1462.md ├── eip-1470.md ├── eip-1474.md ├── eip-1482.md ├── eip-1484.md ├── eip-1485.md ├── eip-1491.md ├── eip-150.md ├── eip-1504.md ├── eip-152.md ├── eip-1523.md ├── eip-1538.md ├── eip-155.md ├── eip-1559.md ├── eip-1571.md ├── eip-1577.md ├── eip-158.md ├── eip-1581.md ├── eip-1588.md ├── eip-1592.md ├── eip-160.md ├── eip-161.md ├── eip-1613.md ├── eip-1616.md ├── eip-162.md ├── eip-1620.md ├── eip-1633.md ├── eip-165.md ├── eip-1679.md ├── eip-1681.md ├── eip-1682.md ├── eip-170.md ├── eip-1702.md ├── eip-1706.md ├── eip-1710.md ├── eip-1716.md ├── eip-173.md ├── eip-1753.md ├── eip-1761.md ├── eip-1767.md ├── eip-1775.md ├── eip-1803.md ├── eip-181.md ├── eip-1812.md ├── eip-1820.md ├── eip-1822.md ├── eip-1829.md ├── eip-1844.md ├── eip-1872.md ├── eip-1884.md ├── eip-1890.md ├── eip-1895.md ├── eip-1898.md ├── eip-190.md ├── eip-1900.md ├── eip-1901.md ├── eip-191.md ├── eip-1921.md ├── eip-1922.md ├── eip-1923.md ├── eip-1930.md ├── eip-1948.md ├── eip-1959.md ├── eip-196.md ├── eip-1962.md ├── eip-1965.md ├── eip-1967.md ├── eip-197.md ├── eip-1973.md ├── eip-198.md ├── eip-1985.md ├── eip-1996.md ├── eip-2.md ├── eip-20-token-standard.md ├── eip-20.md ├── eip-2003.md ├── eip-2009.md ├── eip-2014.md ├── eip-2015.md ├── eip-2018.md ├── eip-2019.md ├── eip-2020.md ├── eip-2021.md ├── eip-2025.md ├── eip-2026.md ├── eip-2027.md ├── eip-2028.md ├── eip-2029.md ├── eip-2031.md ├── eip-2035.md ├── eip-2045.md ├── eip-2046.md ├── eip-205.md ├── eip-2069.md ├── eip-2070.md ├── eip-2098.md ├── eip-210.md ├── eip-211.md ├── eip-2124.md ├── eip-2135.md ├── eip-214.md ├── eip-2157.md ├── eip-2159.md ├── eip-2193.md ├── eip-2200.md ├── eip-2228.md ├── eip-2242.md ├── eip-225.md ├── eip-2255.md ├── eip-2256.md ├── eip-2266.md ├── eip-2304.md ├── eip-2309.md ├── eip-2315.md ├── eip-2327.md ├── eip-233.md ├── eip-2330.md ├── eip-2333.md ├── eip-2334.md ├── eip-2335.md ├── eip-234.md ├── eip-2364.md ├── eip-2378.md ├── eip-2384.md ├── eip-2386.md ├── eip-2387.md ├── eip-2390.md ├── eip-2400.md ├── eip-2458.md ├── eip-2464.md ├── eip-2470.md ├── eip-2474.md ├── eip-2477.md ├── eip-2481.md ├── eip-2488.md ├── eip-2494.md ├── eip-2515.md ├── eip-2520.md ├── eip-2525.md ├── eip-2535.md ├── eip-2537.md ├── eip-2539.md ├── eip-2542.md ├── eip-2544.md ├── eip-2565.md ├── eip-2566.md ├── eip-2569.md ├── eip-2583.md ├── eip-2584.md ├── eip-2593.md ├── eip-2612.md ├── eip-2615.md ├── eip-2645.md ├── eip-2657.md ├── eip-2666.md ├── eip-2677.md ├── eip-2678.md ├── eip-2680.md ├── eip-2681.md ├── eip-2696.md ├── eip-2700.md ├── eip-2711.md ├── eip-2718.md ├── eip-2733.md ├── eip-2746.md ├── eip-2767.md ├── eip-2770.md ├── eip-2771.md ├── eip-2780.md ├── eip-2786.md ├── eip-2803.md ├── eip-2831.md ├── eip-2844.md ├── eip-2848.md ├── eip-2876.md ├── eip-2917.md ├── eip-2926.md ├── eip-2929.md ├── eip-2930.md ├── eip-2935.md ├── eip-2936.md ├── eip-2937.md ├── eip-2938.md ├── eip-2942.md ├── eip-2970.md ├── eip-2972.md ├── eip-2976.md ├── eip-2980.md ├── eip-2981.md ├── eip-2982.md ├── eip-2997.md ├── eip-3.md ├── eip-3000.md ├── eip-3005.md ├── eip-3009.md ├── eip-3014.md ├── eip-3026.md ├── eip-3030.md ├── eip-3041.md ├── eip-3044.md ├── eip-3045.md ├── eip-3046.md ├── eip-3068.md ├── eip-3074.md ├── eip-3076.md ├── eip-3085.md ├── eip-3091.md ├── eip-3102.md ├── eip-3135.md ├── eip-3143.md ├── eip-3155.md ├── eip-3156.md ├── eip-3198.md ├── eip-3220.md ├── eip-3224.md ├── eip-3234.md ├── eip-3238.md ├── eip-3267.md ├── eip-3298.md ├── eip-3300.md ├── eip-3322.md ├── eip-3326.md ├── eip-3332.md ├── eip-3336.md ├── eip-3337.md ├── eip-3338.md ├── eip-3368.md ├── eip-3372.md ├── eip-3374.md ├── eip-3382.md ├── eip-3386.md ├── eip-3403.md ├── eip-3416.md ├── eip-3436.md ├── eip-3440.md ├── eip-3448.md ├── eip-3450.md ├── eip-3475.md ├── eip-3508.md ├── eip-3520.md ├── eip-3521.md ├── eip-3525.md ├── eip-3529.md ├── eip-3534.md ├── eip-3540.md ├── eip-3541.md ├── eip-3554.md ├── eip-3561.md ├── eip-3569.md ├── eip-3584.md ├── eip-3589.md ├── eip-3607.md ├── eip-3643.md ├── eip-3651.md ├── eip-3668.md ├── eip-3670.md ├── eip-3675.md ├── eip-3690.md ├── eip-3709.md ├── eip-3722.md ├── eip-3754.md ├── eip-3756.md ├── eip-3770.md ├── eip-3772.md ├── eip-3779.md ├── eip-3788.md ├── eip-3855.md ├── eip-3860.md ├── eip-3978.md ├── eip-4.md ├── eip-4200.md ├── eip-4337.md ├── eip-4341.md ├── eip-4345.md ├── eip-4361.md ├── eip-4393.md ├── eip-4396.md ├── eip-4399.md ├── eip-4400.md ├── eip-4444.md ├── eip-4488.md ├── eip-4494.md ├── eip-4520.md ├── eip-4521.md ├── eip-4524.md ├── eip-4546.md ├── eip-4573.md ├── eip-4626.md ├── eip-5.md ├── eip-55.md ├── eip-6.md ├── eip-600.md ├── eip-601.md ├── eip-606.md ├── eip-607.md ├── eip-608.md ├── eip-609.md ├── eip-615.md ├── eip-616.md ├── eip-627.md ├── eip-634.md ├── eip-649.md ├── eip-658.md ├── eip-663.md ├── eip-665.md ├── eip-681.md ├── eip-689.md ├── eip-695.md ├── eip-698.md ├── eip-7.md ├── eip-706.md ├── eip-712.md ├── eip-721.md ├── eip-725.md ├── eip-747.md ├── eip-758.md ├── eip-777.md ├── eip-778.md ├── eip-779.md ├── eip-8.md ├── eip-801.md ├── eip-820.md ├── eip-823.md ├── eip-831.md ├── eip-858.md ├── eip-86.md ├── eip-867.md ├── eip-868.md ├── eip-875.md ├── eip-884.md ├── eip-897.md ├── eip-900.md ├── eip-902.md ├── eip-908.md ├── eip-918.md ├── eip-926.md ├── eip-927.md ├── eip-969.md ├── eip-998.md └── eip-999.md ├── Gemfile ├── Gemfile.lock ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── _config.yml ├── _data └── statuses.yaml ├── _includes ├── anchor_headings.html ├── authorlist.html ├── eipnums.html ├── eiptable.html ├── head.html ├── social.html └── toc.html ├── _layouts └── eip.html ├── all.html ├── assets ├── css │ └── style.scss ├── eip-1 │ ├── EIP-process-update.jpg │ ├── EIP-process.png │ └── process.png ├── eip-1057 │ ├── test-vectors-0.9.2.json │ ├── test-vectors-0.9.3.json │ └── test-vectors.md ├── eip-107 │ ├── authorization-locked.png │ ├── authorization-password.png │ └── authorization.png ├── eip-1175 │ ├── wallet.png │ └── workflow.png ├── eip-1207 │ └── rationale.png ├── eip-1283 │ └── state.png ├── eip-1438 │ ├── avatar.png │ ├── intro.png │ └── wallet.png ├── eip-1613 │ └── sequence.png ├── eip-1822 │ └── proxy-diagram.png ├── eip-1884 │ ├── BALANCE-run3.png │ ├── SLOAD-run3.png │ ├── geth_processing.png │ ├── run3.total-bars-5.png │ └── run3.total-bars-6.png ├── eip-1901 │ ├── OpenRPC_structure.png │ ├── eth-generated-client-openrpc.gif │ ├── eth-playground-openrpc.gif │ ├── inspector-mock-server-openrpc.png │ └── multi-geth-use-case.png ├── eip-2025 │ ├── block_rewards_distribution.png │ └── loan_state.png ├── eip-2255 │ ├── facebook_permissions.png │ ├── log_in_with_apple.jpeg │ ├── permissions.png │ └── permissions_adventure.gif ├── eip-2266 │ └── Example.sol ├── eip-2535 │ ├── DiamondDiagram.png │ ├── diamond.svg │ ├── diamondstorage1.png │ └── facetreuse.png ├── eip-2537 │ ├── bench_vectors.md │ └── field_to_curve.md ├── eip-2565 │ ├── Complexity_Regression.png │ └── GQuad_Change.png ├── eip-2615 │ ├── concept.png │ ├── mortgage-sequential.jpg │ └── rental-sequential.jpg ├── eip-2678 │ └── package.spec.json ├── eip-2680 │ └── sha256-384-512.pdf ├── eip-2771 │ └── example-flow.png ├── eip-2848 │ └── presentation.pdf ├── eip-2917 │ └── erc-reward-formula.png ├── eip-2980 │ ├── Finma-ICO-Guidelines.pdf │ ├── Swiss-Confederation-AMLA.pdf │ ├── Swiss-Confederation-BA.pdf │ ├── Swiss-Confederation-CISA.pdf │ ├── Swiss-Confederation-FINIA.pdf │ ├── Swiss-Confederation-FINSA.pdf │ ├── Swiss-Confederation-FMIA.pdf │ └── Swiss-Confederation-SESTA.pdf ├── eip-3005 │ └── meta-txs-directly-to-token-smart-contract.png ├── eip-3068 │ ├── 2012-685_Square_Root_Even_Ext.pdf │ ├── 2015-1027_exTNFS.pdf │ ├── 2016-1102_Assessing_NFS_Advances.pdf │ ├── 2017-334.pdf │ ├── 2019-403_BLS12_H2C.pdf │ ├── latincrypt12.pdf │ ├── madnet.pdf │ └── weilsigs.pdf ├── eip-3074 │ ├── auth-msg-multi-call.png │ └── auth-msg.png ├── eip-3102 │ └── sibling.svg ├── eip-3267 │ ├── contracts │ │ ├── BaseBidOnAddresses.sol │ │ ├── BaseLock.sol │ │ ├── BaseRestorableSalary.sol │ │ ├── BaseSalary.sol │ │ ├── BidOnAddresses.sol │ │ ├── DAOInterface.sol │ │ ├── DefaultDAOInterface.sol │ │ ├── ERC1155 │ │ │ ├── ERC1155.sol │ │ │ ├── ERC1155TokenReceiver.sol │ │ │ ├── ERC1155WithTotals.sol │ │ │ ├── IERC1155.sol │ │ │ ├── IERC1155TokenReceiver.sol │ │ │ └── README.md │ │ ├── README.md │ │ ├── Salary.sol │ │ └── SalaryWithDAO.sol │ └── science-salaries.pdf ├── eip-3448 │ ├── MetaProxyFactory.sol │ └── MetaProxyTest.sol ├── eip-3450 │ ├── lagrange.gif │ └── wordlist.txt ├── eip-3607 │ └── geth.diff ├── eip-3770 │ └── EIP-3770-examples.png ├── eip-4337 │ ├── image1.png │ └── image2.png ├── eip-4396 │ ├── degradation.png │ ├── degradation_buffers.png │ ├── degradation_elasticity.png │ ├── new_formula.png │ └── old_formula.png ├── eip-4488 │ └── gas_and_calldata_sample.csv ├── eip-712 │ ├── Example.js │ ├── Example.sol │ ├── eth_sign.png │ └── eth_signTypedData.png ├── eip-747 │ ├── add-token-prompt.gif │ └── add-token-prompt2.gif ├── eip-777 │ └── logo │ │ ├── png │ │ ├── ERC-777-logo-beige-1024px.png │ │ ├── ERC-777-logo-beige-192px.png │ │ ├── ERC-777-logo-beige-2048px.png │ │ ├── ERC-777-logo-beige-48px.png │ │ ├── ERC-777-logo-beige-600px.png │ │ ├── ERC-777-logo-black-1024px.png │ │ ├── ERC-777-logo-black-192px.png │ │ ├── ERC-777-logo-black-2048px.png │ │ ├── ERC-777-logo-black-48px.png │ │ ├── ERC-777-logo-black-600px.png │ │ ├── ERC-777-logo-dark_grey-1024px.png │ │ ├── ERC-777-logo-dark_grey-192px.png │ │ ├── ERC-777-logo-dark_grey-2048px.png │ │ ├── ERC-777-logo-dark_grey-48px.png │ │ ├── ERC-777-logo-dark_grey-600px.png │ │ ├── ERC-777-logo-light_grey-1024px.png │ │ ├── ERC-777-logo-light_grey-192px.png │ │ ├── ERC-777-logo-light_grey-2048px.png │ │ ├── ERC-777-logo-light_grey-48px.png │ │ ├── ERC-777-logo-light_grey-600px.png │ │ ├── ERC-777-logo-white-1024px.png │ │ ├── ERC-777-logo-white-192px.png │ │ ├── ERC-777-logo-white-2048px.png │ │ ├── ERC-777-logo-white-48px.png │ │ └── ERC-777-logo-white-600px.png │ │ └── svg │ │ ├── ERC-777-logo-beige.svg │ │ ├── ERC-777-logo-black.svg │ │ ├── ERC-777-logo-dark_grey.svg │ │ ├── ERC-777-logo-light_grey.svg │ │ └── ERC-777-logo-white.svg ├── eip-823 │ ├── eip-823-token-exchange-standard-visual-representation-1.png │ └── eip-823-token-exchange-standard-visual-representation-2.png └── eip-858 │ └── calculations.md ├── core.html ├── eip-template.md ├── erc.html ├── index.html ├── informational.html ├── interface.html ├── last-call.xml ├── meta.html └── networking.html /.codespell-whitelist: -------------------------------------------------------------------------------- 1 | uint 2 | ith 3 | nd 4 | mitre 5 | readded 6 | crate 7 | developper 8 | ist 9 | iam 10 | espace 11 | acn 12 | ende 13 | sting 14 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # GitHub highlighting for Solidity files 2 | # See https://github.com/github/linguist/pull/3973#issuecomment-357507741 3 | *.sol linguist-language=Solidity 4 | -------------------------------------------------------------------------------- /.github/workflows/auto-merge-bot.yml: -------------------------------------------------------------------------------- 1 | on: [pull_request_target] 2 | name: Auto-Merge Bot 3 | jobs: 4 | auto_merge_bot: 5 | runs-on: ubuntu-latest 6 | name: EIP Auto-Merge Bot 7 | if: github.event.pull_request.draft == false && github.repository == 'ethereum/eips' 8 | steps: 9 | - name: Checkout 10 | uses: actions/checkout@v2 11 | - name: Setup Node.js Environment 12 | uses: actions/setup-node@v2 13 | with: 14 | node-version: '14' 15 | - name: auto-merge-bot 16 | uses: ethereum/EIP-Bot@de16cffd4324ee1596aaf9623b00c50ecaa84076 # master 17 | id: auto-merge-bot 18 | with: 19 | GITHUB-TOKEN: ${{ secrets.TOKEN }} 20 | MERGE_ENABLED: false 21 | CORE_EDITORS: "@MicahZoltu,@lightclient,@axic,@gcolvin" 22 | ERC_EDITORS: "@lightclient,@axic" 23 | NETWORKING_EDITORS: "@MicahZoltu,@lightclient,@axic" 24 | INTERFACE_EDITORS: "@lightclient,@axic" 25 | META_EDITORS: "@lightclient,@axic,@gcolvin" 26 | INFORMATIONAL_EDITORS: "@lightclient,@axic,@gcolvin" 27 | enable-auto-merge: 28 | if: github.repository == 'ethereum/eips' 29 | runs-on: ubuntu-latest 30 | needs: ["auto_merge_bot"] 31 | steps: 32 | - uses: alexwilson/enable-github-automerge-action@1.0.0 33 | with: 34 | github-token: ${{ secrets.TOKEN }} 35 | -------------------------------------------------------------------------------- /.github/workflows/auto-stagnate-bot.yml: -------------------------------------------------------------------------------- 1 | on: 2 | schedule: 3 | # A job that runs every sunday at 00:00 4 | - cron: '0 0 * * 0' 5 | 6 | name: Auto Stagnant Bot 7 | jobs: 8 | auto_merge_bot: 9 | if: github.repository == 'ethereum/eips' 10 | runs-on: ubuntu-latest 11 | name: Auto Stagnant Bot 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v2 15 | - name: Setup Node.js Environment 16 | uses: actions/setup-node@v2 17 | with: 18 | node-version: '14' 19 | - name: auto-stagnant-bot 20 | uses: ethereum/EIP-Bot@b3ac0ba3600aea27157fc68d1e36c08cc5a6db77 # mark-eips-stale 21 | id: auto-stagnant-bot 22 | with: 23 | GITHUB-TOKEN: ${{ secrets.TOKEN }} 24 | -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- 1 | name: Greetings 2 | 3 | on: [pull_request, issues] 4 | 5 | jobs: 6 | greeting: 7 | if: github.repository == 'ethereum/eips' 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/first-interaction@v1 11 | with: 12 | repo-token: ${{ secrets.GITHUB_TOKEN }} 13 | issue-message: | 14 | Since this is your first issue, we kindly remind you to check out [EIP-1](https://eips.ethereum.org/EIPS/eip-1) for guidance. 15 | 16 | If this issue was created as a “discussions-to” for an EIP or to discuss an idea for an EIP, please close it and create a thread at [Fellowship of Ethereum Magicians](https://ethereum-magicians.org/). 17 | pr-message: | 18 | Since this is your first pull request, we kindly remind you to check out [EIP-1](https://eips.ethereum.org/EIPS/eip-1) for guidance. 19 | 20 | If this issue was created as a “discussions-to” for an EIP or to discuss an idea for an EIP, please close it and create a thread at [Fellowship of Ethereum Magicians](https://ethereum-magicians.org/). 21 | -------------------------------------------------------------------------------- /.github/workflows/manual-bot-rerun.yml: -------------------------------------------------------------------------------- 1 | name: Manual Bot Rerun 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | pullRequestNumber: 6 | description: "PR number (with the run you'd like to re-run)" 7 | required: true 8 | eventType: 9 | description: "event type (of the run you want to re-run)" 10 | required: true 11 | default: "pull_request_target" 12 | idOfBotWorkflow: 13 | description: "id of the bot workflow (just leave as default if you don't know)" 14 | required: true 15 | default: "6519716" 16 | 17 | jobs: 18 | rerun-bot: 19 | if: github.repository == 'ethereum/eips' 20 | runs-on: ubuntu-latest 21 | name: Manual Bot Rerun 22 | steps: 23 | - name: Checkout 24 | uses: actions/checkout@v2 25 | - name: Setup Node.js Environment 26 | uses: actions/setup-node@v2 27 | with: 28 | node-version: '14' 29 | - name: rerun-workflow 30 | uses: ethereum/EIP-Bot@90d0591e71314dc1430c6cde91bb787e185e0b4b # manual-bot-rerun 31 | id: rerun-workflow 32 | with: 33 | GITHUB-TOKEN: ${{ secrets.TOKEN }} 34 | PULL-NUMBER: ${{github.event.inputs.pullRequestNumber }} 35 | ID-TO-RERUN: ${{ github.event.inputs.idOfBotWorkflow }} 36 | EVENT-TYPE: ${{ github.event.inputs.eventType }} 37 | -------------------------------------------------------------------------------- /.github/workflows/rerun-bot-pull-request-review.yml: -------------------------------------------------------------------------------- 1 | on: 2 | pull_request_review: 3 | types: [submitted] 4 | name: Rerun Bot 5 | jobs: 6 | rerun_bot_on_review: 7 | if: github.repository == 'ethereum/eips' 8 | runs-on: ubuntu-latest 9 | name: Trigger Bot Rerun workflow_run 10 | steps: 11 | - name: Explanation 12 | run: echo "this bot is used to trigger another workflow using the workflow_run github event; this is necessary because without it forked PRs do not have access to repo secret; normally this is circumvented using the pull_request_target event but because github actions.. a hack is required to allow the same behavior on pull_request_review; this work-around will no longer be necessary if github ever implements a pull_request_review_target or something similar" -------------------------------------------------------------------------------- /.github/workflows/rerun-bot-workflow-run.yml: -------------------------------------------------------------------------------- 1 | name: Workflow run re-run auto-merge-bot on review 2 | on: 3 | workflow_run: 4 | workflows: 5 | - Rerun Bot 6 | types: 7 | - requested 8 | 9 | jobs: 10 | rerun-bot: 11 | if: github.repository == 'ethereum/eips' 12 | runs-on: ubuntu-latest 13 | name: Rerun Bot (workflow_run) 14 | steps: 15 | - name: Checkout 16 | uses: actions/checkout@v2 17 | - name: Setup Node.js Environment 18 | uses: actions/setup-node@v2 19 | with: 20 | node-version: '14' 21 | - name: auto-merge-bot 22 | uses: ethereum/EIP-Bot@1f05ace5691062379bd910aa27402eecb8f295ac # rerun-pull-request-target-on-review 23 | id: rerun-auto-merge-bot 24 | with: 25 | GITHUB-TOKEN: ${{ secrets.TOKEN }} 26 | WORKFLOW-ID: ${{github.event.workflow_run.id}} 27 | ID-TO-RERUN: "6519716" 28 | RUN-EVENT-TYPE: "pull_request_target" 29 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: "Mark stale PRs & Issues" 2 | 3 | on: 4 | schedule: 5 | # Run this every hour, so we are not spammed with changes at once. Later we could consider changing this to once a day. 6 | - cron: "0 * * * *" 7 | 8 | jobs: 9 | stale-pr: 10 | if: github.repository == 'ethereum/eips' 11 | runs-on: ubuntu-latest 12 | name: "Mark stale PRs" 13 | steps: 14 | - uses: actions/stale@v3 15 | with: 16 | repo-token: ${{ secrets.GITHUB_TOKEN }} 17 | days-before-stale: 60 18 | days-before-close: 7 19 | stale-pr-label: 'stale' 20 | stale-pr-message: 'There has been no activity on this pull request for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.' 21 | close-pr-message: 'This pull request was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.' 22 | stale-issue: 23 | if: github.repository == 'ethereum/eips' 24 | runs-on: ubuntu-latest 25 | name: "Mark stale issues" 26 | steps: 27 | - uses: actions/stale@v3 28 | with: 29 | repo-token: ${{ secrets.GITHUB_TOKEN }} 30 | days-before-stale: 180 31 | days-before-close: 14 32 | exempt-issue-labels: 'discussions-to' 33 | stale-issue-label: 'stale' 34 | stale-issue-message: 'There has been no activity on this issue for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.' 35 | close-issue-message: 'This issue was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.' 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-metadata 4 | vendor 5 | -------------------------------------------------------------------------------- /.travis-ci.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e # halt script on error 3 | 4 | HTMLPROOFER_OPTIONS="./_site --internal-domains=eips.ethereum.org --check-html --check-opengraph --report-missing-names --log-level=:debug --assume-extension --empty-alt-ignore --timeframe=6w --url-ignore=/EIPS/eip-1,EIPS/eip-1,/EIPS/eip-107,/EIPS/eip-858" 5 | 6 | if [[ $TASK = 'htmlproofer' ]]; then 7 | bundle exec jekyll doctor 8 | bundle exec jekyll build 9 | bundle exec htmlproofer $HTMLPROOFER_OPTIONS --disable-external 10 | 11 | # Validate GH Pages DNS setup 12 | bundle exec github-pages health-check 13 | elif [[ $TASK = 'htmlproofer-external' ]]; then 14 | bundle exec jekyll doctor 15 | bundle exec jekyll build 16 | bundle exec htmlproofer $HTMLPROOFER_OPTIONS --external_only 17 | elif [[ $TASK = 'eip-validator' ]]; then 18 | if [[ $(find . -maxdepth 1 -name 'eip-*' | wc -l) -ne 1 ]]; then 19 | echo "only 'eip-template.md' should be in the root" 20 | exit 1 21 | fi 22 | eipv EIPS/ --ignore=title_max_length,missing_discussions_to --skip=eip-20-token-standard.md 23 | elif [[ $TASK = 'codespell' ]]; then 24 | codespell -q4 -I .codespell-whitelist -S ".git,Gemfile.lock,**/*.png,**/*.gif,**/*.jpg,**/*.svg,.codespell-whitelist,vendor,_site,_config.yml,style.css" 25 | fi 26 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: ruby 4 | 5 | before_install: 6 | - gem install bundler -v '< 2' 7 | 8 | cache: 9 | # Cache Ruby bundles 10 | - bundler 11 | - directories: 12 | - $TRAVIS_BUILD_DIR/tmp/.htmlproofer #https://github.com/gjtorikian/html-proofer/issues/381 13 | - /usr/local/lib/python3.3/dist-packages/pip/ 14 | 15 | # Assume bundler is being used, therefore 16 | # the `install` step will run `bundle install` by default. 17 | script: "bash -ex .travis-ci.sh" 18 | 19 | env: 20 | global: 21 | - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer 22 | 23 | matrix: 24 | fast_finish: true 25 | include: 26 | - rvm: 2.6.0 27 | env: TASK='htmlproofer' 28 | - rvm: 2.6.0 29 | env: TASK='htmlproofer-external' 30 | - language: rust 31 | cache: cargo 32 | before_script: 33 | - cargo install eipv --version=0.4.0 34 | env: TASK='eip-validator' 35 | - python: 3.3 36 | env: TASK='codespell' 37 | before_script: "sudo pip install urllib3[secure] && sudo pip install codespell" 38 | allow_failures: 39 | - rvm: 2.6.0 40 | env: TASK='htmlproofer-external' 41 | 42 | addons: 43 | apt: 44 | packages: 45 | "libcurl4-openssl-dev" # https://github.com/gjtorikian/html-proofer/issues/376#issuecomment-332767999 46 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | 18 | 19 |
Page not found :(
23 |The requested page could not be found.
24 |24 | m / purpose' / subpurpose' / EIP' 25 |26 | 27 | Apostrophe in the path indicates that BIP32 hardened derivation is used. 28 | 29 | Each level has a special meaning, described in the chapters below. 30 | 31 | ### Purpose 32 | 33 | Purpose is set to 43, as documented in [this proposed change to BIP43](https://github.com/bitcoin/bips/pull/523). 34 | 35 | The purpose field indicates that this path is for a non-bitcoin cryptocurrency. 36 | 37 | Hardened derivation is used at this level. 38 | 39 | ### Subpurpose 40 | Subpurpose is set to 60, the SLIP-44 code for Ethereum. 41 | 42 | Hardened derivation is used at this level. 43 | 44 | ### EIP 45 | EIP is set to the EIP number specifying the remainder of the BIP32 derivation path. This permits new Ethereum-focused applications of deterministic wallets without needing to interface with the BIP process. 46 | 47 | Hardened derivation is used at this level. 48 | 49 | ## Rationale 50 | The existing convention is to use the 'Ethereum' coin type, leading to paths starting with `m/44'/60'/*`. Because this still assumes a UTXO-based coin, we contend that this is a poor fit, resulting in standardisation, usability, and security compromises. As a result, we are making the above proposal to define an entirely new hierarchy for Ethereum-based chains. 51 | 52 | ## Backwards Compatibility 53 | The introduction of another derivation path requires existing software to add support for this scheme in addition to any existing schemes. Given the already confused nature of wallet derivation paths in Ethereum, we anticipate this will cause relatively little additional disruption, and has the potential to improve matters significantly in the long run. 54 | 55 | ## Test Cases 56 | TBD 57 | 58 | ## Implementation 59 | None yet. 60 | 61 | ## References 62 | [This discussion on derivation paths](https://github.com/ethereum/EIPs/issues/84) 63 | 64 | ## Copyright 65 | Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). 66 | -------------------------------------------------------------------------------- /EIPS/eip-606.md: -------------------------------------------------------------------------------- 1 | --- 2 | eip: 606 3 | title: "Hardfork Meta: Homestead" 4 | author: Alex Beregszaszi (@axic) 5 | type: Meta 6 | status: Final 7 | created: 2017-04-23 8 | requires: 2, 7, 8 9 | --- 10 | 11 | ## Abstract 12 | 13 | This specifies the changes included in the hard fork named Homestead. 14 | 15 | ## Specification 16 | 17 | - Codename: Homestead 18 | - Activation: 19 | - Block >= 1,150,000 on Mainnet 20 | - Block >= 494,000 on Morden 21 | - Block >= 0 on future testnets 22 | - Included EIPs: 23 | - [EIP-2](./eip-2.md) (Homestead Hard-fork Changes) 24 | - [EIP-7](./eip-7.md) (DELEGATECALL) 25 | - [EIP-8](./eip-8.md) (Networking layer: devp2p Forward Compatibility Requirements for Homestead) 26 | 27 | ## References 28 | 29 | 1. https://blog.ethereum.org/2016/02/29/homestead-release/ 30 | 31 | ## Copyright 32 | 33 | Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). 34 | -------------------------------------------------------------------------------- /EIPS/eip-607.md: -------------------------------------------------------------------------------- 1 | --- 2 | eip: 607 3 | title: "Hardfork Meta: Spurious Dragon" 4 | author: Alex Beregszaszi (@axic) 5 | type: Meta 6 | status: Final 7 | created: 2017-04-23 8 | requires: 155, 160, 161, 170, 608 9 | --- 10 | 11 | ## Abstract 12 | 13 | This specifies the changes included in the hard fork named Spurious Dragon. 14 | 15 | ## Specification 16 | 17 | - Codename: Spurious Dragon 18 | - Aliases: State-clearing 19 | - Activation: 20 | - Block >= 2,675,000 on Mainnet 21 | - Block >= 1,885,000 on Morden 22 | - Included EIPs: 23 | - [EIP-155](./eip-155.md) (Simple replay attack protection) 24 | - [EIP-160](./eip-160.md) (EXP cost increase) 25 | - [EIP-161](./eip-161.md) (State trie clearing) 26 | - [EIP-170](./eip-170.md) (Contract code size limit) 27 | 28 | ## References 29 | 30 | 1. https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/ 31 | 32 | ## Copyright 33 | 34 | Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). 35 | -------------------------------------------------------------------------------- /EIPS/eip-608.md: -------------------------------------------------------------------------------- 1 | --- 2 | eip: 608 3 | title: "Hardfork Meta: Tangerine Whistle" 4 | author: Alex Beregszaszi (@axic) 5 | type: Meta 6 | status: Final 7 | created: 2017-04-23 8 | requires: 150, 779 9 | --- 10 | 11 | ## Abstract 12 | 13 | This specifies the changes included in the hard fork named Tangerine Whistle (EIP 150). 14 | 15 | ## Specification 16 | 17 | - Codename: Tangerine Whistle 18 | - Aliases: EIP 150, Anti-DoS 19 | - Activation: 20 | - Block >= 2,463,000 on Mainnet 21 | - Included EIPs: 22 | - [EIP-150](./eip-150.md) (Gas cost changes for IO-heavy operations) 23 | 24 | ## References 25 | 26 | 1. https://blog.ethereum.org/2016/10/13/announcement-imminent-hard-fork-eip150-gas-cost-changes/ 27 | 2. https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/ 28 | 29 | ## Copyright 30 | 31 | Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). 32 | -------------------------------------------------------------------------------- /EIPS/eip-609.md: -------------------------------------------------------------------------------- 1 | --- 2 | eip: 609 3 | title: "Hardfork Meta: Byzantium" 4 | author: Alex Beregszaszi (@axic) 5 | type: Meta 6 | status: Final 7 | created: 2017-04-23 8 | requires: 100, 140, 196, 197, 198, 211, 214, 607, 649, 658 9 | --- 10 | 11 | ## Abstract 12 | 13 | This specifies the changes included in the hard fork named Byzantium. 14 | 15 | ## Specification 16 | 17 | - Codename: Byzantium 18 | - Aliases: Metropolis/Byzantium, Metropolis part 1 19 | - Activation: 20 | - Block >= 4,370,000 on Mainnet 21 | - Block >= 1,700,000 on Ropsten testnet 22 | - Included EIPs: 23 | - [EIP-100](./eip-100.md) (Change difficulty adjustment to target mean block time including uncles) 24 | - [EIP-140](./eip-140.md) (REVERT instruction in the Ethereum Virtual Machine) 25 | - [EIP-196](./eip-196.md) (Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128) 26 | - [EIP-197](./eip-197.md) (Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128) 27 | - [EIP-198](./eip-198.md) (Precompiled contract for bigint modular exponentiation) 28 | - [EIP-211](./eip-211.md) (New opcodes: RETURNDATASIZE and RETURNDATACOPY) 29 | - [EIP-214](./eip-214.md) (New opcode STATICCALL) 30 | - [EIP-649](./eip-649.md) (Difficulty Bomb Delay and Block Reward Reduction) 31 | - [EIP-658](./eip-658.md) (Embedding transaction status code in receipts) 32 | 33 | ## References 34 | 35 | 1. https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/ 36 | 37 | ## Copyright 38 | 39 | Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). 40 | -------------------------------------------------------------------------------- /EIPS/eip-658.md: -------------------------------------------------------------------------------- 1 | --- 2 | eip: 658 3 | title: Embedding transaction status code in receipts 4 | author: Nick Johnson
| Number | Review ends | Title | Author |
|---|---|---|---|
| Number | Title | Author | |
| {{page.eip|xml_escape}} | 27 | {% if status == "Last Call" and page.last-call-deadline != undefined %} 28 |{{ page.last-call-deadline | xml_escape }} | 29 | {% endif %} 30 |{{page.title|xml_escape}} | 31 |{% include authorlist.html authors=page.author %} | 32 |
EIP #{{ eip.eip }} - {{eip.title }} is in Last Call status. It is authored by {{ eip.author }} and was originally created {{ eip.created }}. It is in the {{ eip.category }} category of type {{ eip.type }}. Please review and note any changes that should block acceptance.
17 | {% if eip.discussions-to %} 18 |The author has requested that discussions happen at the following URL: {{ eip.discussions-to }}
19 | {% else %} 20 |Please visit the [ethereum/EIPs issues to comment](https://github.com/ethereum/EIPs/issues/{{eip.eip}}).
21 | {% endif %} 22 |