Starknet es una blockchain de propósito general y una solución de capa 2 que ayuda a la escalabilidad, descentralización y seguridad de Ethereum a través del uso de pruebas de conocimiento cero STARKS.
Los ZK Rollups introducen el paradigma de computación probable, en este paradigma permitimos que los programas comprueben que se han ejecutado sin tener que volver a ejecutarlos.
Para hacer este proceso de forma efectiva se creó Cairo.
Es un lenguaje de programación fuertemente tipado y es nativo para programas de Computación Probable, además de tener una sintaxis muy similar a Rust.
- Tener instalado Docker desktop.
- Tener corriendo el daemon de Docker.
Seguir las instrucciones en este tutorial
Seguir las instrucciones de Starknet Book
En estos ejemplos vimos:
- Declaración de un smart contract con el macro
#[contract]
- Declaración de eventos con el macro
#[event]
- Uso de funciones externas con el macro
#[external]
- Uso de tipo de dato Contract Address de la libreria
starknet::ContractAddress
- Obtención de la cuenta/wallet que manda a llamar nuestras funciones usando la libreria
starknet::get_caller_address
- Uso de variables de estado:
struct Storage {
_staking_token: ContractAddress,
_token_rewards: ContractAddress,
// User address, amount
_stakers: LegacyMap<ContractAddress, u256>,
_rewards: LegacyMap<ContractAddress, u256>,
}
- Uso del Standard ERC20
- Interacción con smart contracts externos usando el macro
#[abi]
y los dispatchers correspondientesIERC20Dispatcher
IERC20DispatcherTrait
Ver más... - Casteo de tipos con
into()
starknet-compile -- src/Staking.cairo src/Staking.json
starknet declare --contract src/Staking.json --account artur
starknet deploy --class_hash 0x129594bdb807e580728f6abdb3d9f596e3b72088e64d2d3597a589be802f67c --account artur --inputs 49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 0x0545b0ea692fa53c588927f1f8999067adf522f41df37d41ad101399024a5790