⛓️ Blockchain Learning Path GitHub

Guías 21–30 · EVM y desarrollo

Este cuaderno entra en la máquina virtual de Ethereum: selectores, calldata, eventos, gas y el primer contrato con Foundry. Acompaña a los módulos Ethereum y EVM y Solidity y Foundry.

⬅️ Cuaderno de laboratorios · 🧪 Catálogo · 📚 Currículo

Aquí separas los hechos on-chain (bytes, gas, eventos) de las inferencias de identidad. La bitácora registra el compilador, el optimizer y la medición exacta.

# Práctica Tipo Comando/entrega
21 Anatomía de una transacción pública concepto informe explorador + RPC
22 Selector ABI auto pnpm lab:abi
23 Codificación de calldata auto pnpm lab:abi + decode manual
24 Eventos y topics auto descomposición de Transfer
25 Storage, memory y calldata medición tres variantes + gas
26 Estimación y comparación de gas tabla forge test --gas-report
27 Vault: depósito y retiro Foundry forge test -vv
28 Vault: fuzzing e invariantes Foundry fuzz + invariant
29 Cliente de lectura con viem TypeScript createPublicClient
30 Flujo seguro de conexión de wallet interfaz dApp con validación de red

21 · Anatomía de una transacción pública

22 · Selector ABI

pnpm lab:abi
transfer(address,uint256) 0xa9059cbb
balanceOf(address) 0x70a08231
approve(address,uint256) 0x095ea7b3
totalSupply() 0x18160ddd
EVM usa Keccak-256, que no es idéntico al SHA3-256 estandarizado.

23 · Codificación de calldata

pnpm lab:abi
0xa9059cbb                                                         # 4 bytes: selector
000000000000000000000000<20 bytes de dirección>                   # palabra 1: address (padded)
0000000000000000000000000000000000000000000000000000000000000064  # palabra 2: uint256 = 100

24 · Eventos y topics

25 · Storage, memory y calldata

26 · Estimación y comparación de gas

27 · Vault: depósito y retiro

forge test -vv
[PASS] test_Deposit() ...
[PASS] test_Withdraw() ...
Traza: Deposit(usuario, monto) → balance += monto ; Withdraw → balance -= monto → transfer

28 · Vault: fuzzing e invariantes

29 · Cliente de lectura con viem

30 · Flujo seguro de conexión de wallet

🧭 Navegación