Skip to content

Commit 1d919d4

Browse files
authored
Merge pull request #138 from ethereum/update-7.24.1
Update to v7.24.1
2 parents 931cd20 + 7728a96 commit 1d919d4

File tree

361 files changed

+69427
-31471
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

361 files changed

+69427
-31471
lines changed

.all-contributorsrc

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10767,6 +10767,69 @@
1076710767
"contributions": [
1076810768
"content"
1076910769
]
10770+
},
10771+
{
10772+
"login": "pseudomata",
10773+
"name": "Pseudomata",
10774+
"avatar_url": "https://avatars.githubusercontent.com/u/132238190?v=4",
10775+
"profile": "https://pseudomata.com",
10776+
"contributions": [
10777+
"code"
10778+
]
10779+
},
10780+
{
10781+
"login": "CodeDragonVN",
10782+
"name": "CodeDragonVN",
10783+
"avatar_url": "https://avatars.githubusercontent.com/u/150457827?v=4",
10784+
"profile": "https://github.com/CodeDragonVN",
10785+
"contributions": [
10786+
"content"
10787+
]
10788+
},
10789+
{
10790+
"login": "SamiAlHassan",
10791+
"name": "SamiAlHassan",
10792+
"avatar_url": "https://avatars.githubusercontent.com/u/150172180?v=4",
10793+
"profile": "https://github.com/SamiAlHassan",
10794+
"contributions": [
10795+
"content"
10796+
]
10797+
},
10798+
{
10799+
"login": "NaijaCoderGirl",
10800+
"name": "NaijaCoderGirl",
10801+
"avatar_url": "https://avatars.githubusercontent.com/u/150683513?v=4",
10802+
"profile": "https://github.com/NaijaCoderGirl",
10803+
"contributions": [
10804+
"content"
10805+
]
10806+
},
10807+
{
10808+
"login": "konstantinzolotarev",
10809+
"name": "Konstantin Zolotarev",
10810+
"avatar_url": "https://avatars.githubusercontent.com/u/286431?v=4",
10811+
"profile": "https://github.com/konstantinzolotarev",
10812+
"contributions": [
10813+
"content"
10814+
]
10815+
},
10816+
{
10817+
"login": "vuittont60",
10818+
"name": "vuittont60",
10819+
"avatar_url": "https://avatars.githubusercontent.com/u/81072379?v=4",
10820+
"profile": "https://github.com/vuittont60",
10821+
"contributions": [
10822+
"content"
10823+
]
10824+
},
10825+
{
10826+
"login": "goldnite",
10827+
"name": "Golden Ite",
10828+
"avatar_url": "https://avatars.githubusercontent.com/u/114434414?v=4",
10829+
"profile": "http://goldnite.github.io",
10830+
"contributions": [
10831+
"content"
10832+
]
1077010833
}
1077110834
],
1077210835
"contributorsPerLine": 7,

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,6 +1683,15 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
16831683
<td align="center" valign="top" width="14.28%"><a href="https://www.darigovresearch.com/"><img src="https://avatars.githubusercontent.com/u/30328618?v=4?s=100" width="100px;" alt="Darigov Research"/><br /><sub><b>Darigov Research</b></sub></a><br /><a href="#content-darigovresearch" title="Content">🖋</a></td>
16841684
<td align="center" valign="top" width="14.28%"><a href="https://github.com/shubhusion"><img src="https://avatars.githubusercontent.com/u/96301987?v=4?s=100" width="100px;" alt="SHUBHAM SHARMA "/><br /><sub><b>SHUBHAM SHARMA </b></sub></a><br /><a href="#ideas-shubhusion" title="Ideas, Planning, & Feedback">🤔</a></td>
16851685
<td align="center" valign="top" width="14.28%"><a href="https://github.com/paulallensuxs"><img src="https://avatars.githubusercontent.com/u/114240091?v=4?s=100" width="100px;" alt="paulallensuxs"/><br /><sub><b>paulallensuxs</b></sub></a><br /><a href="#content-paulallensuxs" title="Content">🖋</a></td>
1686+
<td align="center" valign="top" width="14.28%"><a href="https://pseudomata.com"><img src="https://avatars.githubusercontent.com/u/132238190?v=4?s=100" width="100px;" alt="Pseudomata"/><br /><sub><b>Pseudomata</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=pseudomata" title="Code">💻</a></td>
1687+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CodeDragonVN"><img src="https://avatars.githubusercontent.com/u/150457827?v=4?s=100" width="100px;" alt="CodeDragonVN"/><br /><sub><b>CodeDragonVN</b></sub></a><br /><a href="#content-CodeDragonVN" title="Content">🖋</a></td>
1688+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SamiAlHassan"><img src="https://avatars.githubusercontent.com/u/150172180?v=4?s=100" width="100px;" alt="SamiAlHassan"/><br /><sub><b>SamiAlHassan</b></sub></a><br /><a href="#content-SamiAlHassan" title="Content">🖋</a></td>
1689+
</tr>
1690+
<tr>
1691+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NaijaCoderGirl"><img src="https://avatars.githubusercontent.com/u/150683513?v=4?s=100" width="100px;" alt="NaijaCoderGirl"/><br /><sub><b>NaijaCoderGirl</b></sub></a><br /><a href="#content-NaijaCoderGirl" title="Content">🖋</a></td>
1692+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/konstantinzolotarev"><img src="https://avatars.githubusercontent.com/u/286431?v=4?s=100" width="100px;" alt="Konstantin Zolotarev"/><br /><sub><b>Konstantin Zolotarev</b></sub></a><br /><a href="#content-konstantinzolotarev" title="Content">🖋</a></td>
1693+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vuittont60"><img src="https://avatars.githubusercontent.com/u/81072379?v=4?s=100" width="100px;" alt="vuittont60"/><br /><sub><b>vuittont60</b></sub></a><br /><a href="#content-vuittont60" title="Content">🖋</a></td>
1694+
<td align="center" valign="top" width="14.28%"><a href="http://goldnite.github.io"><img src="https://avatars.githubusercontent.com/u/114434414?v=4?s=100" width="100px;" alt="Golden Ite"/><br /><sub><b>Golden Ite</b></sub></a><br /><a href="#content-goldnite" title="Content">🖋</a></td>
16861695
</tr>
16871696
</tbody>
16881697
</table>

public/content/developers/docs/apis/backend/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ These libraries abstract away much of the complexity of interacting directly wit
149149
- [Documentation](https://docs.chainbase.com/)
150150
- [Discord](https://discord.gg/Wx6qpqz4AF)
151151

152-
**GetBlock-** **_Blockchain-as-a-service for Web3 developement_**
152+
**GetBlock-** **_Blockchain-as-a-service for Web3 development_**
153153

154154
- [GetBlock.io](https://getblock.io/)
155155
- [Documentation](https://getblock.io/docs/)
@@ -164,7 +164,7 @@ These libraries abstract away much of the complexity of interacting directly wit
164164
**Tokenview -** **_The General Multi-Crypto Blockchain APIs Platform._**
165165

166166
- [services.tokenview.io](https://services.tokenview.io/)
167-
- [Documentation](https://services.tokeniew/docs?type=api)
167+
- [Documentation](https://services.tokenview.io/docs?type=api)
168168
- [GitHub](https://github.com/Tokenview)
169169

170170
## Further reading {#further-reading}

public/content/developers/docs/networking-layer/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ A summary of the control flow is shown below, with the relevant networking stack
134134
- Execution layer passes validation data back to consensus layer, block now considered to be validated (local RPC connection)
135135
- Consensus layer adds block to head of its own blockchain and attests to it, broadcasting the attestation over the network (consensus p2p)
136136

137-
### When consensus client is block producer: #{when-consensus-client-is-block-producer}
137+
### When consensus client is block producer: {#when-consensus-client-is-block-producer}
138138

139139
- Consensus client receives notice that it is the next block producer (consensus p2p)
140140
- Consensus layer calls `create block` method in execution client (local RPC)

public/content/developers/docs/nodes-and-clients/light-clients/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ A light node is a node running light client software. Instead of keeping local c
1212

1313
## How do light clients work? {#how-do-light-clients-work}
1414

15-
When Ethereum started using a proof-of-stake based consensus mechanism, new infrastructure was introduced specifically to support light clients. The way it works is by randomly selecting a subset of 512 validators every 1.1 days to act as a **sync committee**. The sync committee signs the header of recent blocks. Each block header contains the the aggregated signature of the validators in the sync committee and a "bitfield" that shows which validators signed and which did not. Each header also includes a list of validators expected to participate in signing the next block. This means a light client can quickly see that the sync committee has signed off on the data they receive, and they can also check that the sync committee is the genuine one by comparing the one they receive from the one they were told to expect in the previous block. In this way, the light client can keep updating its knowledge of the latest Ethereum block without actually downloading the block itself, just the header which contains summary information.
15+
When Ethereum started using a proof-of-stake based consensus mechanism, new infrastructure was introduced specifically to support light clients. The way it works is by randomly selecting a subset of 512 validators every 1.1 days to act as a **sync committee**. The sync committee signs the header of recent blocks. Each block header contains the aggregated signature of the validators in the sync committee and a "bitfield" that shows which validators signed and which did not. Each header also includes a list of validators expected to participate in signing the next block. This means a light client can quickly see that the sync committee has signed off on the data they receive, and they can also check that the sync committee is the genuine one by comparing the one they receive from the one they were told to expect in the previous block. In this way, the light client can keep updating its knowledge of the latest Ethereum block without actually downloading the block itself, just the header which contains summary information.
1616

1717
On the execution layer there is no single specification for a light execution client. The scope of a light execution client can vary from a "light mode" of a full execution client that has all the EVM and networking functionality of a full node but only verifies block headers, without downloading the associated data, or it can be a more stripped down client that relies heavily upon forwarding requests to an RPC provider to interact with Ethereum.
1818

public/content/developers/docs/programming-languages/dart/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ incomplete: true
1515
3. Writing a user interface in Dart
1616
- [Building a Mobile dapp with Flutter](https://medium.com/dash-community/building-a-mobile-dapp-with-flutter-be945c80315a) is a lot shorter, which might be better
1717
if you already know the basics
18-
- If you prefer the learn by watching a video, you can watch [Build Your First Blockchain Flutter App](https://www.youtube.com/watch?v=3Eeh3pJ6PeA), which is about an hour long
18+
- If you prefer to learn by watching a video, you can watch [Build Your First Blockchain Flutter App](https://www.youtube.com/watch?v=3Eeh3pJ6PeA), which is about an hour long
1919
- If you are impatient, you might prefer [Building a Blockchain Decentralized-app with Flutter and Dart on Ethereum](https://www.youtube.com/watch?v=jaMFEOCq_1s), which is only about twenty minutes
2020
- [Integrating MetaMask in Flutter application](https://youtu.be/8qzVDje3IWk) - this short video takes you through the steps of integrating MetaMask into your Flutter applications
2121

public/content/developers/docs/smart-contracts/security/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,13 +470,13 @@ If you plan on querying an on-chain oracle for asset prices, consider using one
470470

471471
### Tools for monitoring smart contracts {#smart-contract-monitoring-tools}
472472

473-
- **[OpenZeppelin Defender Sentinels](https://docs.openzeppelin.com/defender/sentinel)** - _A tool for automatically monitoring and responding to events, functions, and transaction parameters on your smart contracts._
473+
- **[OpenZeppelin Defender Sentinels](https://docs.openzeppelin.com/defender/v1/sentinel)** - _A tool for automatically monitoring and responding to events, functions, and transaction parameters on your smart contracts._
474474

475475
- **[Tenderly Real-Time Alerting](https://tenderly.co/alerting/)** - _A tool for getting real-time notifications when unusual or unexpected events happen on your smart contracts or wallets._
476476

477477
### Tools for secure administration of smart contracts {#smart-contract-administration-tools}
478478

479-
- **[OpenZeppelin Defender Admin](https://docs.openzeppelin.com/defender/admin)** - _Interface for managing smart contract administration, including access controls, upgrades, and pausing._
479+
- **[OpenZeppelin Defender Admin](https://docs.openzeppelin.com/defender/v1/admin)** - _Interface for managing smart contract administration, including access controls, upgrades, and pausing._
480480

481481
- **[Safe](https://safe.global/)** - _Smart contract wallet running on Ethereum that requires a minimum number of people to approve a transaction before it can occur (M-of-N)._
482482

public/content/developers/docs/smart-contracts/testing/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ Although approaches vary, most testing methods require executing a smart contrac
2020

2121
### Why is it important to test smart contracts? {#importance-of-testing-smart-contracts}
2222

23-
As smart contracts often manage high-value financial assets, minor programming errors can and often lead to [massive losses for users](https://rekt.news/leaderboard/). Rigorous testing can, however, help you discover defects issues in a smart contracts code early and fix them before launching on Mainnet.
23+
As smart contracts often manage high-value financial assets, minor programming errors can and often lead to [massive losses for users](https://rekt.news/leaderboard/). Rigorous testing can, however, help you discover defects and issues in a smart contract's code early and fix them before launching on Mainnet.
2424

2525
While it is possible to upgrade a contract if a bug is discovered, upgrades are complex and can [result in errors](https://blog.trailofbits.com/2018/09/05/contract-upgrade-anti-patterns/) if handled improperly. Upgrading a contract further negates the principle of immutability and burdens users with additional trust assumptions. Conversely, a comprehensive plan for testing your contract mitigates smart contract security risks and reduces the need to perform complex logic upgrades after deploying.
2626

2727
## Methods for testing smart contracts {#methods-for-testing-smart-contracts}
2828

29-
Methods for testing Ethereum smart contracts exist fall under two broad categories: **automated testing** and **manual testing**. Automated testing and manual testing offer unique benefits and tradeoffs, but you can combine both to create a robust plan for analyzing your contracts.
29+
Methods for testing Ethereum smart contracts fall under two broad categories: **automated testing** and **manual testing**. Automated testing and manual testing offer unique benefits and tradeoffs, but you can combine both to create a robust plan for analyzing your contracts.
3030

3131
### Automated testing {#automated-testing}
3232

public/content/developers/docs/smart-contracts/verifying/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Smart contract verification enables investigating what a contract does through t
2020

2121
There are some parts of the source code that do not affect the compiled bytecode such as comments or variable names. That means two source codes with different variable names and different comments would both be able to verify the same contract. With that, a malicious actor can add deceiving comments or give misleading variable names inside the source code and get the contract verified with a source code different than the original source code.
2222

23-
It is possible to avoid this by appending extra data to the bytecode to serve as a _cryptographical guarantee_ for the exactness of the source code, and as a _fingerprint_ of the compilation information. The necessary information is found in the [Solidity's contract metadata](https://docs.soliditylang.org/en/v0.8.15/metadata.html), and the hash of this file is appended to the bytecode of a contract. You can see it in action in the [metadata playground](https://playground.sourcify.dev)
23+
It is possible to avoid this by appending extra data to the bytecode to serve as a _cryptographic guarantee_ for the exactness of the source code, and as a _fingerprint_ of the compilation information. The necessary information is found in the [Solidity's contract metadata](https://docs.soliditylang.org/en/v0.8.15/metadata.html), and the hash of this file is appended to the bytecode of a contract. You can see it in action in the [metadata playground](https://playground.sourcify.dev)
2424

2525
The metadata file contains information about the compilation of the contract including the source files and their hashes. Meaning, if any of the compilation settings or even a byte in one of the source files change, the metadata file changes. Consequently the hash of the metadata file, which is appended to the bytecode, also changes. That means if a contract's bytecode + the appended metadata hash match with the given source code and compilation settings, we can be sure this is exactly the same source code used in the original compilation, not even a single byte is different.
2626

@@ -34,7 +34,7 @@ Trustlessness is arguably the biggest premise for smart contracts and [decentral
3434

3535
For a smart contract to be trustless, the contract code should be available for independent verification. While the compiled bytecode for every smart contract is publicly available on the blockchain, low-level language is difficult to understand—for both developers and users.
3636

37-
Projects reduce trust assumptions by publishing the source code of their contracts. But this leads to another problem: it is difficult to verify that the published source code match the contract bytecode. In this scenario, the value of trustlessness is lost because users have to trust developers not to change a contract's business logic (i.e., by changing the bytecode) before deploying it on the blockchain.
37+
Projects reduce trust assumptions by publishing the source code of their contracts. But this leads to another problem: it is difficult to verify that the published source code matches the contract bytecode. In this scenario, the value of trustlessness is lost because users have to trust developers not to change a contract's business logic (i.e., by changing the bytecode) before deploying it on the blockchain.
3838

3939
Source code verification tools provide guarantees that a smart contract’s source code files matches the assembly code. The result is a trustless ecosystem, where users don’t blindly trust third parties and instead verify code before depositing funds into a contract.
4040

public/content/developers/tutorials/calling-a-smart-contract-from-javascript/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ sourceUrl: https://ethereumdev.io/calling-a-smart-contract-from-javascript/
1111
address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE"
1212
---
1313

14-
In this tutorial we’ll see how to call a [smart contract](/developers/docs/smart-contracts/) function from JavaScript. First is reading the state of a smart contract (e.g. the balance of an ERC20 holder), then we’ll modify the state of the blockchain by making a token transfer. You should be already be familiar with [setting up a JS environment to interact with the blockchain](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/).
14+
In this tutorial we’ll see how to call a [smart contract](/developers/docs/smart-contracts/) function from JavaScript. First is reading the state of a smart contract (e.g. the balance of an ERC20 holder), then we’ll modify the state of the blockchain by making a token transfer. You should already be familiar with [setting up a JS environment to interact with the blockchain](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/).
1515

1616
For this example we’ll play with the DAI token, for testing purpose we’ll fork the blockchain using ganache-cli and unlock an address that already has a lot of DAI:
1717

0 commit comments

Comments
 (0)