Skip to content

Commit

Permalink
Merge pull request #14767 from ethereum/dev
Browse files Browse the repository at this point in the history
Release candidate v9.4.2
  • Loading branch information
corwintines authored Jan 29, 2025
2 parents 1e2a2c4 + 1857902 commit 5bfd0c7
Show file tree
Hide file tree
Showing 214 changed files with 21,386 additions and 1,848 deletions.
18 changes: 18 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -12670,6 +12670,24 @@
"contributions": [
"content"
]
},
{
"login": "itzVarsha",
"name": "Varshitha",
"avatar_url": "https://avatars.githubusercontent.com/u/138134029?v=4",
"profile": "https://github.com/itzVarsha",
"contributions": [
"maintenance"
]
},
{
"login": "alexandriaroberts",
"name": "Alexandria Roberts",
"avatar_url": "https://avatars.githubusercontent.com/u/31341867?v=4",
"profile": "https://alexandriaroberts.dev/",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1939,6 +1939,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://growthepie.xyz"><img src="https://avatars.githubusercontent.com/u/32496674?v=4?s=100" width="100px;" alt="Matthias Seidl"/><br /><sub><b>Matthias Seidl</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=mseidlx" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/JoeChenJ"><img src="https://avatars.githubusercontent.com/u/171761102?v=4?s=100" width="100px;" alt="JoeChenJ"/><br /><sub><b>JoeChenJ</b></sub></a><br /><a href="#content-JoeChenJ" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/itzVarsha"><img src="https://avatars.githubusercontent.com/u/138134029?v=4?s=100" width="100px;" alt="Varshitha"/><br /><sub><b>Varshitha</b></sub></a><br /><a href="#maintenance-itzVarsha" title="Maintenance">🚧</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://alexandriaroberts.dev/"><img src="https://avatars.githubusercontent.com/u/31341867?v=4?s=100" width="100px;" alt="Alexandria Roberts"/><br /><sub><b>Alexandria Roberts</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=alexandriaroberts" title="Code">💻</a></td>
</tr>
</tbody>
</table>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ethereum-org-website",
"version": "9.4.1",
"version": "9.4.2",
"license": "MIT",
"private": true,
"scripts": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ Below is a breakdown of the website pages each content bucket contains.
- [Account abstraction](/roadmap/account-abstraction/)
- [Verkle trees](/roadmap/verkle-trees/)
- [Statelessness, state expiry and history expiry](/roadmap/statelessness/)
- [How The Merge impacted ETH supply](/roadmap/merge/issuance/)

## 10) Community pages {#community-pages}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ Block explorers have become a common place for people to track the progress of t
- Gas limit - The maximum numbers of gas units this transaction can consume
- Gas used - The actual amount of gas units the transaction consumed
- Gas price - The price set per gas unit
- Nonce - The transaction number for the `from` address (bear in mind this starts at 0 so a nonce of `100` would actually be the 101st transaction submitted by this account
- Nonce - The transaction number for the `from` address (bear in mind this starts at 0 so a nonce of `100` would actually be the 101st transaction submitted by this account)
- Input data - Any extra information required by the transaction

### Accounts {#accounts}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,33 +34,33 @@ There is a difference between looking something up in the 'trie' and the underly
The update and delete operations for radix tries can be defined as follows:

```
def update(node,path,value):
curnode = db.get(node) if node else [ NULL ] * 17
def update(node_hash, path, value):
curnode = db.get(node_hash) if node_hash else [ NULL ] * 17
newnode = curnode.copy()
if path == '':
newnode[-1] = value
else:
newindex = update(curnode[path[0]],path[1:],value)
newindex = update(curnode[path[0]], path[1:], value)
newnode[path[0]] = newindex
db.put(hash(newnode),newnode)
db.put(hash(newnode), newnode)
return hash(newnode)
def delete(node,path):
if node is NULL:
def delete(node_hash, path):
if node_hash is NULL:
return NULL
else:
curnode = db.get(node)
curnode = db.get(node_hash)
newnode = curnode.copy()
if path == '':
newnode[-1] = NULL
else:
newindex = delete(curnode[path[0]],path[1:])
newindex = delete(curnode[path[0]], path[1:])
newnode[path[0]] = newindex
if all(x is NULL for x in newnode):
return NULL
else:
db.put(hash(newnode),newnode)
db.put(hash(newnode), newnode)
return hash(newnode)
```

Expand Down Expand Up @@ -137,10 +137,10 @@ Examples:
Here is the extended code for getting a node in the Merkle Patricia trie:

```
def get_helper(node,path):
if path == []: return node
if node = '': return ''
curnode = rlp.decode(node if len(node) < 32 else db.get(node))
def get_helper(node_hash,path):
if path == []: return node_hash
if node_hash == '': return ''
curnode = rlp.decode(node_hash if len(node_hash) < 32 else db.get(node_hash))
if len(curnode) == 2:
(k2, v2) = curnode
k2 = compact_decode(k2)
Expand All @@ -151,13 +151,13 @@ Here is the extended code for getting a node in the Merkle Patricia trie:
elif len(curnode) == 17:
return get_helper(curnode[path[0]],path[1:])
def get(node,path):
def get(node_hash,path):
path2 = []
for i in range(len(path)):
path2.push(int(ord(path[i]) / 16))
path2.push(ord(path[i]) % 16)
path2.push(16)
return get_helper(node,path2)
return get_helper(node_hash,path2)
```

### Example Trie {#example-trie}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ If you plan on querying an on-chain oracle for asset prices, consider using one

- **[Smart Contract Security Verification Standard](https://github.com/securing/SCSVS)** - _Fourteen-part checklist created to standardize the security of smart contracts for developers, architects, security reviewers and vendors._

- **[Learn Smart Contract Security and Auditing](https://updraft.cyfrin.io/courses/security) - _Ultimate smart contract security and auditing course, created for smart contract developers looking to level up their security best practices and become security researchers._
- **[Learn Smart Contract Security and Auditing](https://updraft.cyfrin.io/courses/security)** - _Ultimate smart contract security and auditing course, created for smart contract developers looking to level up their security best practices and become security researchers._

### Tutorials on smart contract security {#tutorials-on-smart-contract-security}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1323,7 +1323,7 @@ This function performs internal processing that is required for the functions th
for (uint i; i < path.length - 1; i++) {
```

As I'm writing this there are [388,160 ERC-20 tokens](https://etherscan.io/tokens). If there was a pair exchange for each token pair, it would be over a 150 billion pair exchanges. The entire chain, at the moment, [only has 0.1% that number of accounts](https://etherscan.io/chart/address). Instead, the swap functions support the concept of a path. A trader can exchange A for B, B for C, and C for D, so there is no need for a direct A-D pair exchange.
As I'm writing this there are [388,160 ERC-20 tokens](https://etherscan.io/tokens). If there was a pair exchange for each token pair, it would be over 150 billion pair exchanges. The entire chain, at the moment, [only has 0.1% that number of accounts](https://etherscan.io/chart/address). Instead, the swap functions support the concept of a path. A trader can exchange A for B, B for C, and C for D, so there is no need for a direct A-D pair exchange.

The prices on these markets tend to be synchronized, because when they are out of sync it creates an opportunity for arbitrage. Imagine, for example, three tokens, A, B, and C. There are three pair exchanges, one for each pair.

Expand Down
Loading

0 comments on commit 5bfd0c7

Please sign in to comment.