<aside>
✅ Objetivo del día:
Estudiar el funcionamiento de la red de AURORA, cómo emplear el Rainbow-bridge y la estructura básica de un contrato inteligente desarrollado en Solidity.
</aside>
Índice
Introducción a Solidity
Solidity es un lenguaje creado específicamente para programar contratos inteligentes. Su sintaxis está basada en el lenguaje ECMAScript, y similar a otros lenguajes como JavaScript, pero con la diferencia de implementar un tipado fuerte a la hora de declarar el tipo de variables y argumentos. Siendo esto así para garantizar el rigor del contrato.
Presentación de Aurora
Aurora es una solución que permite ejecutar contratos de Ethereum en un entorno de mayor rendimiento: NEAR blockchain, una cadena de bloques moderna de capa 1 que es rápida (completando transacciones de 2 a 3 segundos), escalable y neutral en huella de carbono. Aurora es una máquina virtual Ethereum (EVM) implementada como un contrato inteligente en el protocolo NEAR, que permite ejecutar contratos desarrollados en Solidity, obteniendo así transacciones más rápidas y baratas. Logrando que los desarrolladores puedan operar sus aplicaciones en una plataforma compatible con Ethereum, con alto rendimiento y eficiencia.
- Aurora es compatible con todas las herramientas disponibles en el ecosistema de Ethereum: MetaMask, Truffle, Hardhat, Remix, etc. Además, el puente sin confianza de NEAR hacia Ethereum significa que incluso los activos de Aurora son los mismos que los de Ethereum. Por ejemplo, los saldos de cuenta en EVM de Aurora están denominados en el mismo Ether (ETH) que en Ethereum.
- Además de EVM, Aurora desarrolló Rainbow Bridge, que permite a los usuarios transferir activos entre Ethereum, NEAR y Aurora. También se están lanzando varias integraciones de puentes desde/hacia otras redes (Avalanche, Binance).
Estructura de un contrato inteligente en Solidity.
← Comienza a explorar contratos.
Diferencias entre public, external, internal y private.
Las funciones se pueden especificar como externas, públicas, internas o privadas, donde el valor predeterminado es público. Para las variables de estado, externo no es posible y el valor predeterminado es interno.
- External: las funciones externas son parte de la interfaz del contrato, lo que significa que se pueden llamar desde otros contratos y mediante transacciones. Una función externa f no se puede llamar internamente (es decir, f() no funciona, pero this.f() funciona). Las funciones externas a veces son más eficientes cuando reciben grandes conjuntos de datos.
- Public: Las funciones públicas son parte de la interfaz del contrato y se pueden llamar internamente o mediante mensajes. Para las variables de estado público, se genera una función getter automática.
- Internal: Solo se puede acceder a esas funciones y variables de estado internamente (es decir, desde el contrato actual o los contratos derivados de él).
- Private: Las funciones privadas y las variables de estado sólo son visibles para el contrato en el que están definidas y no en los contratos derivados.
Funciones y constructor.
Un constructor es una función especial declarada usando la palabra clave constructor. Es una función opcional y se utiliza para inicializar las variables de estado de un contrato. Las siguientes son las características clave de un constructor.
- Un contrato sólo puede tener un constructor.