Hay algunas formas diferentes de crear un contrato inteligente a partir de un contrato inteligente existente. Una forma es usar el Nuevo palabra clave en Solidez. los Nuevo La palabra clave en Solidity se usa para crear una nueva instancia de un contrato inteligente. En este tutorial revisaremos lo que Nuevo hace la palabra clave y cómo usarla en un ejemplo de contrato inteligente de Solidity.
La nueva palabra clave en Solidity
Utilizando el Nuevo La palabra clave en una función de contrato inteligente de Solidity dará como resultado:
- despliegue de un nuevo contrato
- inicializar variables de estado
- el constructor de nuevos contratos ejecutó
- valor nonce establecido en uno
- la dirección de la nueva instancia de contratos devuelta a la persona que llama
Requisitos para usar la palabra clave New en Solidity
Cabe señalar que para que la palabra clave New se ejecute correctamente y cree un nuevo contrato:
- El código para crear el nuevo contrato se conoce antes de la ejecución.
- La dirección del nuevo contrato se calcula a partir de la dirección del contrato de creación
- La creación de un nuevo contrato requiere una tarifa de gas para completar la operación
¿Cuándo usar la palabra clave New en Solidity?
Hay muchos casos de uso que requieren un contrato inteligente para crear otros contratos. La nueva palabra clave es útil para mantener su aplicación genérica. Como ejemplo, los creadores de mercado automatizados (AMM), como Uniswap y Pancake Swap, usan la palabra clave Nuevo para crear pares comerciales. Lea aquí para obtener más información sobre los contratos inteligentes de solidez de Uniswap en Ethereum.
Los contratos que crean otros contratos suelen denominarse contratos de fábrica. Como ejemplo, el contrato de fábrica de Uniswap se usa para crear pares comerciales. Adicionalmente, se puede encontrar información sobre el contrato de fábrica de Uniswap aquí.
Ejemplo de contrato
Analicemos un ejemplo para ver el Nuevo palabra clave utilizada en la práctica. El siguiente código de Solidity contiene un contrato de AccountFactory y un contrato de UserAccount. El contacto de AccountFactory creará nuevos contratos usando el código en el contrato de UserAccount. Este código de muestra de Solidity permitirá crear un contrato inteligente para cada cuenta de usuario.
En resumen, copie el código a continuación en Remix o su IDE favorito. A continuación, implemente el código de contrato de fábrica localmente para probar sus funciones. Finalmente, llame a la función CreateUserAccount. Por último, pero no menos importante, el registro imprime la cuenta de contrato recién creada.
Experimente con el contrato a continuación y aprenda los conceptos básicos de la palabra clave Nuevo.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract UserAccount {
address public company;
address public user;
string public name;
constructor(address _user, string memory _name) payable {
company = msg.sender;
user = _user;
name = _name;
}
}
// The AccountFactory contract below will deploy the code in the UserAccount contract above
contract AccountFactory {
// state variable array to keep track of the accounts that are created with this contract
UserAccount[] public useraccounts;
// this function takes two parameters. A users account number and a name
function CreateUserAccount(address _user, string memory _name) external payable{
// the new keyword is used to create a new contract
// UserAccount is the name of the contract the NEW keyword will call
// in the () add the data that needs to be passed to the constructor in the contract above
// to send ether to the new contract use UserAccount{value: "amount"}(_user, _name);
// to assign the new contract as a variable call it UserAccount
UserAccount account = new UserAccount(_user, _name);
// after the contract is deployed push the new contract account into the array
useraccounts.push(account);
}
}
Pruébalo en remezclar
Este código es solo para fines de aprendizaje y entretenimiento. Úselo bajo su propio riesgo. Recuerde que los contratos inteligentes son experimentales y pueden contener errores.
Recursos
Redes de cadena de bloques
A continuación se muestra una lista de redes de cadena de bloques Mainnet y Testnet compatibles con EVM. Cada enlace contiene la configuración de la red, enlaces a varios grifos para probar ETH y tokens, detalles del puente y recursos técnicos para cada cadena de bloques. Básicamente todo lo que necesita para probar e implementar contratos inteligentes o aplicaciones descentralizadas en cada cadena. Para obtener una lista de foros populares de Ethereum y aplicaciones de chat, haga clic aquí.
cryptoshitcompra.com/wp-content/uploads/2022/09/Crypto-Market-Pool-nueva-palabra-clave-en-los-contratos-inteligentes.png» alt=»»/> | Ethereum prueba la configuración de la red y prueba la información del grifo ETH |
png» alt=»»/> | Configuración optimista de Ethereum Mainnet y Testnet, detalles del puente, etc. |
Configuración de red de polígono Mainnet y Testnet, grifos para prueba de tokens MATIC, detalles de puente, etc. | |
Configuración de Binance Smart Chain Mainnet y Testnet, faucets para tokens BNB de prueba, detalles del puente, etc. | |
Fanton networt Configuración de Mainnet y Testnet, faucets para tokens FTM de prueba, detalles del puente, etc. | |
Configuración de Kucoin Chain Mainnet y Testnet, faucets para tokens KCS de prueba, detalles del puente, etc. |
Bibliotecas de software Web3
Puede usar las siguientes bibliotecas para interactuar con una cadena de bloques compatible con EVM.
Nodos
Aprenda a ejecutar un nodo Geth. Lea cómo comenzar con Geth para ejecutar un nodo Ethereum.
Arreglar una transacción
Cómo arreglar una transacción pendiente atascada en una cadena compatible con Ethereum o EVM
Siguiente revisión: cree un contrato inteligente de Solidity simple
Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.
Direcciones de Billetera:
- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS
- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe
- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f
- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx
También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:
- Telegram
Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones