From dfd949a2a3258181ccc9964bce3fdbb057c14f4f Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:27 +0500 Subject: [PATCH 001/638] New translations intro.md (French) --- fr/docs/intro.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 fr/docs/intro.md diff --git a/fr/docs/intro.md b/fr/docs/intro.md new file mode 100644 index 0000000000..c7c0d9d4a2 --- /dev/null +++ b/fr/docs/intro.md @@ -0,0 +1,52 @@ +--- +title: La Blockchain Core - Applications décentralisées sécurisées par Bitcoin +sidebar_position: 1 +--- + +# Core DAO - Applications Décentralisées Sécurisées par Bitcoin + +## 👨‍💻 Commencer + +Core est la première blockchain Layer 1 alignée sur Bitcoin et compatible EVM, conçue pour être une plateforme de contrats intelligents complémentaire et ultra-évolutive à Bitcoin. With **~75%** of Bitcoin mining hash already contributing to its security model and over **7,500** Bitcoin staked through Non-Custodial Bitcoin Staking, Core is unlocking Bitcoin both as the prime protector and central asset of the future of DeFi. + +![core-header](../static/img/core-header.png) + +Nouveau sur Core ? Découvrez **Core en moins de 5 minutes**. + +## 📔 En savoir plus sur Core + +Découvrez ce qu'est Core et comment démarrer votre aventure Web3 sur Core +\* [Un Aperçu de Core](./Learn/introduction/what-is-core-chain.md) +\* [Lisez à Propos des Concepts Fondamentaux de Core](category/core-concepts) +\* [Comprenez l'Architecture Sous-Jacente](./Learn/core-concepts/architecture.md) + +## 👓 Explorez Core + +Familiarisez-vous avec l'écosystème de Core +\* [Découvrez Pourquoi Core est le Bon Choix](./Learn/introduction/why-core-chain.md) +\* [Explorez les Produits de Core](category/products) +\* [Découvrez ce qui est en Cours de Développement sur Core](https://coredao.org/explore/ecosystem) + +## 🔌 Exécuter un Nœud sur Core + +Participez au réseau Core en exécutant différents types de nœuds +\* [Exécuter un Nœud Complet sur Core](./Node/Full-Node/on-mainnet.md) +\* [Exécuter un Nœud Validateur sur Core](./Node/config/validator-node-config.md) +\* [Exécuter un Nœud RPC sur Core](./Node/config/rpc-node-config.md) +\* [Exécuter un Nœud Archive sur Core](./Node/config/archive-node-config.md) +\* [Exécuter un Nœud Snapshot sur Core](./Node/config/snapshot-node-config.md) + +## 👨‍🔧 Développer sur Core + +Commencez à développer sur Core et contribuez au monde de la BTCfi : +\* [Explorez l'Environnement des Outils pour Développeurs](./Dev-Guide/dev-tools.md) +\* [Configurez Vos Portefeuilles sur le Reseau Core](./Dev-Guide/core-testnet-wallet-config.md) +\* [Financez Vos Portefeuilles avec tCORE](./Dev-Guide/core-faucet.md) +\* [Parcourez des Duides Détaillés Pratiques pour Démarrer votre Aventure sur Core](category/dev-guides) +\* [Créez une dApp Full-Stack sur Core](./Dev-Guide/dapp-on-core.md) + +## 🙋‍♀️ Aide & Support + +Connectez-vous avec les contributeurs de Core pour obtenir de l'aide : +\* [Serveur Discord Officiel pour de l'Aide et Support](https://discord.com/invite/coredaoofficial) +\* [Canal Telegram Officiel des Développeurs pour Support Technique](https://t.me/CoreDAOTelegram) From 5db13253928c6f2d84df6f3c0e172f4dd2b55c57 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:28 +0500 Subject: [PATCH 002/638] New translations intro.md (Spanish) --- es/docs/intro.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 es/docs/intro.md diff --git a/es/docs/intro.md b/es/docs/intro.md new file mode 100644 index 0000000000..cdf721eeb7 --- /dev/null +++ b/es/docs/intro.md @@ -0,0 +1,52 @@ +--- +title: "The Core Blockchain: aplicaciones descentralizadas protegidas por Bitcoin" +sidebar_position: 1 +--- + +# Core DAO: aplicaciones descentralizadas protegidas por Bitcoin + +## 👨‍💻 Primeros pasos + +Core es la primera cadena de bloques de Capa 1 compatible con EVM alineada con Bitcoin, diseñada para ser la plataforma de contrato inteligente complementaria e hiperescalable de Bitcoin. With **~75%** of Bitcoin mining hash already contributing to its security model and over **7,500** Bitcoin staked through Non-Custodial Bitcoin Staking, Core is unlocking Bitcoin both as the prime protector and central asset of the future of DeFi. + +![encabezado-núcleo](../static/img/core-header.png) + +¿Nuevo en Core? Descubramos **Core en menos de 5 minutos**. + +## 📔 Aprenda sobre el núcleo + +Profundice en qué es Core y cómo comenzar su viaje Web3 en Core +\* [Una descripción general de Core](./Learn/introduction/what-is-core-chain.md) +\* [Leer sobre los conceptos básicos](categoría/conceptos básicos) +\* [Comprender la arquitectura subyacente] (./Learn/core-concepts/architecture.md) + +## 👓 Explora en Core + +Familiarícese con el ecosistema central +\* [Descubra por qué Core es la opción correcta] (./Learn/introduction/why-core-chain.md) +\* [Explore los productos de Core](categoría/productos) +\* [Ver lo que se está construyendo sobre el núcleo](https://coredao.org/explore/ecosystem) + +## 🔌 Ejecute un nodo en el núcleo + +Participe en la seguridad central de la red ejecutando diferentes tipos de nodos +\* [Ejecutar un nodo completo en la red central](./Node/Full-Node/on-mainnet.md) +\* [Ejecutar un nodo validador en la red central](./Node/config/validator-node-config.md) +\* [Ejecutar un nodo RPC en la red central](./Node/config/rpc-node-config.md) +\* [Ejecutar un nodo de archivo en la red central] (./Node/config/archive-node-config.md) +\* [Ejecutar un nodo de instantáneas en la red central] (./Node/config/snapshot-node-config.md) + +## 👨‍🔧 Construyendo sobre el núcleo + +Comenzar a construir sobre Core y contribuir al panorama BTCfi +\* [Explore el panorama de herramientas para desarrolladores] (./Dev-Guide/dev-tools.md) +\* [Configure sus billeteras en la red central] (./Dev-Guide/core-testnet-wallet-config.md) +\* [Financia tus billeteras con tCORE] (./Dev-Guide/core-faucet.md) +\* [Recorra guías prácticas detalladas para impulsar su viaje hacia Core] (categoría/guías de desarrollo) +\* [Construya una dApp de pila completa en Core] (./Dev-Guide/dapp-on-core.md) + +## 🙋‍♀️ Ayuda y soporte + +Conéctese con colaboradores principales para obtener soporte +\* [Servidor oficial de Discord para ayuda y soporte](https://discord.com/invite/coredaoofficial) +\* [Canal oficial de desarrolladores de Telegram para soporte técnico](https://t.me/CoreDAOTelegram) From f9c843020f6eafb35fc6b67ad8ef9147fed4ddb0 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:29 +0500 Subject: [PATCH 003/638] New translations bridge-with-layerzero.md (French) --- fr/docs/Dev-Guide/bridge-with-layerzero.md | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 fr/docs/Dev-Guide/bridge-with-layerzero.md diff --git a/fr/docs/Dev-Guide/bridge-with-layerzero.md b/fr/docs/Dev-Guide/bridge-with-layerzero.md new file mode 100644 index 0000000000..d48935c388 --- /dev/null +++ b/fr/docs/Dev-Guide/bridge-with-layerzero.md @@ -0,0 +1,44 @@ +--- +sidebar_label: Passerelle de Jetons vers Core avec LayerZero +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Bridging Tokens to Core With LayerZero (OFT V2) + +![Core LayerZero OFT](https://github.com/user-attachments/assets/ac7382c0-6825-4fb8-91c2-5e022a2eca66) + +--- + +In this [guide](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide), we walk you through the process of setting up cross-chain token transfers using LayerZero's Omnichain Fungible Token (OFT) V2 protocol. Specifically, this guide focuses on enabling ERC-20 token transfers between Core Testnet and Base Sepolia Testnet, equipping developers with the necessary tools and knowledge to handle cross-chain token interactions. + +Whether you're a beginner or an experienced developer, [this guide](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide) will help you: + +Set up and configure Hardhat for cross-chain deployments. +Deploy OFT contracts on Core Testnet and Base Sepolia Testnet. +Configure LayerZero endpoints and establish trusted remotes for secure communication between blockchains. +Execute cross-chain token transfers, allowing for efficient movement of assets across different blockchain networks. + +If you're ready to dive in, access the full guide [here](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide). + +## Major Points Covered in the Guide: + +- **Setting Up the Development Environment**: Install Node.js, pnpm, and Hardhat, then initialize your project to begin working with LayerZero's OFT V2 protocol. + +- **Deploying OFT Contracts**: Follow step-by-step instructions for deploying contracts that enable cross-chain token transfers between Core Testnet and Base Sepolia. + +- **Configuring Cross-Chain Peers**: Learn how to set trusted remotes and configure LayerZero pathways to ensure reliable and secure token transfers. + +- **Executing Token Transfers**: Use Hardhat tasks to perform cross-chain token transfers, verifying the transactions on blockchain explorers. + +- **Customizing the Token Setup**: While this guide focuses on bridging ERC-20 tokens, the OFT contracts can be adapted to meet different token requirements, whether fungible or non-fungible. You can modify the configuration for your unique token needs. + +- For further customization and more in-depth configuration details, you can refer to [LayerZero’s documentation on OFT and EVM configuration](https://docs.layerzero.network/v2/developers/evm/oft/quickstart). + +This resource will help guide you through any advanced setups not covered in this guide, ensuring you can tailor the process to your specific project requirements. + +## Why This Guide is Important: + +By implementing LayerZero’s OFT V2, you unlock the ability to create omnichain token ecosystems where tokens can be efficiently transferred across multiple blockchains. Bridging tokens between Core Testnet and Base Sepolia is used as an example because of its speed, and low fees. Via the endpoints provided by LayerZero, you're able to transfer tokens between Core any many different EVM networks. — this guide shows how easy it is to extend your project’s reach by enabling interoperability across networks. This opens up new possibilities for decentralized applications (dApps) that require token interactions across various blockchains, enhancing liquidity, scalability, and functionality. + +Start your journey with the full guide [here](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide) and explore the potential of LayerZero’s omnichain solutions. For more detailed configurations, make sure to visit [LayerZero’s official resources](https://docs.layerzero.network/v2/developers/evm/oft/quickstart). From e055e4dd1fe5b4e7496285aac2f665326bcbf798 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:31 +0500 Subject: [PATCH 004/638] New translations bridge-with-layerzero.md (Spanish) --- es/docs/Dev-Guide/bridge-with-layerzero.md | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 es/docs/Dev-Guide/bridge-with-layerzero.md diff --git a/es/docs/Dev-Guide/bridge-with-layerzero.md b/es/docs/Dev-Guide/bridge-with-layerzero.md new file mode 100644 index 0000000000..2dae60188d --- /dev/null +++ b/es/docs/Dev-Guide/bridge-with-layerzero.md @@ -0,0 +1,44 @@ +--- +sidebar_label: Puentear Tokens a Core con una Layer zero +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Puente entre tokens y núcleo con LayerZero (OFT V2) + +![Core LayerZero OFT](https://github.com/user-attachments/assets/ac7382c0-6825-4fb8-91c2-5e022a2eca66) + +--- + +En esta [guía](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide), lo guiamos a través del proceso de configuración de transferencias de tokens entre cadenas utilizando el token fungible Omnichain (OFT) de LayerZero.) Protocolo V2. Específicamente, esta guía se centra en habilitar las transferencias de tokens ERC-20 entre Core Testnet y Base Sepolia Testnet, equipando a los desarrolladores con las herramientas y el conocimiento necesarios para manejar las interacciones de tokens entre cadenas. + +Ya seas un principiante o un desarrollador experimentado, [esta guía](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide) te ayudará a: + +Instale y configure Hardhat para implementaciones entre cadenas. +Implementar contratos OFT en Core Testnet y Base Sepolia Testnet. +Configure puntos finales LayerZero y establezca controles remotos confiables para una comunicación segura entre cadenas de bloques. +Ejecute transferencias de tokens entre cadenas, lo que permitirá un movimiento eficiente de activos a través de diferentes redes blockchain. + +Si está listo para sumergirse, acceda a la guía completa [aquí](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide). + +## Puntos principales cubiertos en la guía: + +- **Configuración del entorno de desarrollo**: instale Node.js, pnpm y Hardhat, luego inicialice su proyecto para comenzar a trabajar con el protocolo OFT V2 de LayerZero. + +- **Implementación de contratos OFT**: siga las instrucciones paso a paso para implementar contratos que permitan transferencias de tokens entre cadenas entre Core Testnet y Base Sepolia. + +- **Configuración de pares entre cadenas**: aprenda cómo configurar controles remotos confiables y configurar rutas LayerZero para garantizar transferencias de tokens confiables y seguras. + +- **Ejecución de transferencias de tokens**: utilice tareas de Hardhat para realizar transferencias de tokens entre cadenas, verificando las transacciones en los exploradores de blockchain. + +- **Personalizar la configuración del token**: si bien esta guía se centra en unir los tokens ERC-20, los contratos OFT se pueden adaptar para cumplir con diferentes requisitos de tokens, ya sean fungibles o no fungibles. Puede modificar la configuración para sus necesidades de token únicas. + +- Para una mayor personalización y detalles de configuración más detallados, puede consultar la [documentación de LayerZero sobre configuración OFT y EVM] (https://docs.layerzero.network/v2/developers/evm/oft/quickstart). + +Este recurso lo guiará a través de cualquier configuración avanzada que no se cubra en esta guía, lo que garantizará que pueda adaptar el proceso a los requisitos específicos de su proyecto. + +## Por qué esta guía es importante: + +Al implementar OFT V2 de LayerZero, desbloquea la capacidad de crear ecosistemas de tokens omnichain donde los tokens se pueden transferir de manera eficiente a través de múltiples blockchains. Los tokens puente entre Core Testnet y Base Sepolia se utilizan como ejemplo debido a su velocidad y bajas tarifas. A través de los puntos finales proporcionados por LayerZero, puede transferir tokens entre Core y muchas redes EVM diferentes. — esta guía muestra lo fácil que es ampliar el alcance de su proyecto al permitir la interoperabilidad entre redes. Esto abre nuevas posibilidades para aplicaciones descentralizadas (dApps) que requieren interacciones de tokens en varias cadenas de bloques, mejorando la liquidez, la escalabilidad y la funcionalidad. + +Comience su viaje con la guía completa [aquí](https://github.com/coredao-org/LZ-OFT-V2-Core-Guide) y explore el potencial de las soluciones omnichain de LayerZero. Para configuraciones más detalladas, asegúrese de visitar [los recursos oficiales de LayerZero] (https://docs.layerzero.network/v2/developers/evm/oft/quickstart). From 3ec32c97a53aca115fb5c846346ccb344d6305ea Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:32 +0500 Subject: [PATCH 005/638] New translations contract-verify.md (French) --- fr/docs/Dev-Guide/contract-verify.md | 145 +++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 fr/docs/Dev-Guide/contract-verify.md diff --git a/fr/docs/Dev-Guide/contract-verify.md b/fr/docs/Dev-Guide/contract-verify.md new file mode 100644 index 0000000000..103ecd4952 --- /dev/null +++ b/fr/docs/Dev-Guide/contract-verify.md @@ -0,0 +1,145 @@ +--- +sidebar_label: Vérification de Contrats +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Vérification de Contrats + +--- + +Dans un souci de transparence, il est recommandé de vérifier tous les contrats sur [Core Scan](https://scan.coredao.org/). Voici un aperçu des méthodes les plus courantes pour vérifier les contrats via le web, l'API et Hardhat. + +:::note +Assurez-vous que votre contrat intelligent suit les [Solidity Support Guidelines de Core Chain](./smart-contract-guidelines.md). Pour ce faire, assurez-vous que le paramètre `evmVersion` est défini sur `paris` dans les paramètres du compilateur Solidity. +::: + +## Vérification Web via Core Scan + +La vérification Web est la stratégie de vérification de contrat intelligent la plus utilisée. Après avoir déployé votre contrat intelligent sur Core, vous pouvez utiliser son code source pour le vérifier sur Core Scan. + +1. Recherchez le contrat par adresse sur [Core Scan](https://scan.test.btcs.network). +2. Une fois le contrat localisé, sélectionnez l'onglet **Contract** et cliquez sur **Verify and Publish**_._ + +![verify-core-scan](../../static/img/contract-verification/contract-verify-1.avif) + +3\. Remplissez les informations de vérification requises, notamment : + +- L'adresse du contrat; +- Le type de compilateur : pour les contrats simples, sélectionnez `Single File`. Pour les contrats plus complexes avec des imports externes, sélectionnez `Standard Json`; +- La version du compilateur; +- Le type de licence open-source; + +![verify-core-scan](../../static/img/contract-verification/contract-verify-2.avif) + +4\. Sur la page suivante, remplissez le code source du contrat en Solidity. + +Si votre contrat a des paramètres de constructeur, il est recommandé de les ajouter dans le champ `Constructor Arguments`, bien que cela ne soit pas obligatoire. Ces paramètres doivent être formatés en bytes encodés en ABI. Remix et d'autres outils peuvent générer ces paramètres pour vous. + +Si vous avez activé l'optimisation lors de la compilation du contrat, sélectionnez "Oui" pour le champ `Optimization`. + +![verify-contract](../../static/img/contract-verification/contract-verify-3.avif) + +5\. Cliquez sur **Verify and Publish** pour terminer le processus. + +![verify-contract](../../static/img/contract-verification/contract-verify-4.avif) + +Votre contrat vérifié sur Core Scan devrait maintenant être publié et accessible: + +![verify-contract](../../static/img/contract-verification/contract-verify-5.avif) + +## Vérification via API + +Vous pouvez trouver un guide pour utiliser l'API de Core afin de vérifier des contrats [ici](https://docs.coredao.org/docs/api/api-documents/contracts). Il est important de noter que pour effectuer des appels API, vous devez vous inscrire sur Core Scan et générer une clé API. + +Si vous êtes déjà familier avec l'API d'Etherscan, cela devrait être simple ! Les appels API sur Core sont 100 % compatibles avec l'API d'Etherscan. Il vous suffit de remplacer la clé API et l'URL de l'endpoint et tout devrait fonctionner normalement. + +## Vérification avec HardHat + +La vérification via HardHat est le moyen le plus pratique pour les développeurs de vérifier des contrats intelligents. Pour plus d'informations, vous pouvez consulter le guide officiel de vérification de Hardhat [ici](https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-verify). + +Veuillez noter qu'il est nécessaire d'ajouter les réseaux Core en tant que chaînes personnalisées dans le fichier de configuration de HardHat. Voici un exemple de configuration pour HardHat : + +```javascript +/** +* @type import('hardhat/config').HardhatUserConfig +*/ + + +const { PrivateKey } = require('./secret.json'); +require('@nomiclabs/hardhat-ethers'); +require("@nomiclabs/hardhat-waffle"); +require("@nomicfoundation/hardhat-verify"); + +module.exports = { + defaultNetwork: 'testnet', + + networks: { + hardhat: { + }, + testnet: { + url: 'https://rpc.test.btcs.network', + accounts: [PrivateKey], + chainId: 1115, + }, + mainnet: { + url: 'https://rpc.coredao.org', + accounts: [PrivateKey], + chainId: 1116, + }, + }, + etherscan: { + apiKey: { + testnet: "api key", + mainnet: "api key" + }, + customChains: [ + { + network: "testnet", + chainId: 1115, + urls: { + apiURL: "https://api.test.btcs.network/api", + browserURL: "https://scan.test.btcs.network/" + } + }, + { + network: "mainnet", + chainId: 1116, + urls: { + apiURL: "https://openapi.coredao.org/api", + browserURL: "https://scan.coredao.org/" + } + } + ] + }, + + solidity: { + compilers: [ + { + version: '0.8.9', + settings: { + optimizer: { + enabled: false, + runs: 200, + }, + }, + } + ], + }, + paths: { + sources: './contracts', + cache: './cache', + artifacts: './artifacts', + }, + mocha: { + timeout: 20000, + }, +}; + +``` + +## Limitations Connues + +- Core prend actuellement en charge les versions du compilateur solc jusqu'à la version 0.8.19. +- Les bibliothèques ne sont pas prises en charge avec la vérification via l'API. +- Si vous avez des soucis à vérifier des contrats très volumineux (1000+ lignes) en un seul fichier, il est recommandé d'utiliser le format `Standard JSON` pour la vérification. From df18942962ca552c1768f124644077fc89a1ef57 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:33 +0500 Subject: [PATCH 006/638] New translations contract-verify.md (Spanish) --- es/docs/Dev-Guide/contract-verify.md | 145 +++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 es/docs/Dev-Guide/contract-verify.md diff --git a/es/docs/Dev-Guide/contract-verify.md b/es/docs/Dev-Guide/contract-verify.md new file mode 100644 index 0000000000..e403a409e2 --- /dev/null +++ b/es/docs/Dev-Guide/contract-verify.md @@ -0,0 +1,145 @@ +--- +sidebar_label: Verificación de Contrato +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Verificación de Contrato + +--- + +En el interés de la transparencia, nosotros recomendamos verificar todos los contratos en [Core Scan](https://scan.coredao.org/). Veamos algunos de los métodos comunes para verificar contratos, a través de la web, API y Hardhat. + +:::note +Asegúrese de que su contrato inteligente siga las [Pautas de soporte de solidez de Core Chain] (./smart-contract-guidelines.md). Para ello, asegúrese de que el parámetro `evmVersion` esté establecido en `paris` en la configuración del compilador de solidity. +::: + +## Verificación web mediante Core Scan + +La verificación web es la estrategia de verificación de contratos inteligentes más utilizada. Después de implementar su contrato inteligente en Core, puede usar su código fuente para verificarlo en Core Scan. + +1. Busque el contrato por dirección en [Core Scan](https://scan.test.btcs.network). +2. Después de ubicar el contrato, seleccione la pestaña **Contrato** y haga clic en **Verificar y publicar**_._ + +![verify-core-scan](../../static/img/contract-verification/contract-verify-1.avif) + +3\. Complete la información de verificación requerida en la página, específicamente: + +- Dirección del contrato; +- Tipo de compilador: para contratos simples, seleccione el tipo de compilador "Archivo único". Para contratos más complejos, como contratos con importaciones externas, seleccione el tipo de compilador "Standard Json"; +- Versión del compilador; +- Tipo de licencia de código abierto; + +![verify-core-scan](../../static/img/contract-verification/contract-verify-2.avif) + +4\. En la página siguiente, complete el código fuente de Solidity del contrato. + +Si su contrato tiene parámetros de constructor, le recomendamos agregarlos en el campo "Argumentos del constructor", aunque no es obligatorio. Los parámetros del constructor deben tener el formato de bytes codificados en ABI. Remix y otras herramientas pueden generarlos por usted. + +Si habilitó la optimización durante la compilación del contrato, seleccione "Sí" para el campo "Optimización". + +![verify-contract](../../static/img/contract-verification/contract-verify-3.avif) + +5\. Haga clic en **Verificar y publicar** para finalizar el proceso. + +![verify-contract](../../static/img/contract-verification/contract-verify-4.avif) + +Ahora su contrato verificado en Core Scan debería verse así: + +![verify-contract](../../static/img/contract-verification/contract-verify-5.avif) + +## Verificación API + +Puede encontrar la guía sobre el uso de Core API para verificar contratos [aquí](https://docs.coredao.org/docs/api/api-documents/contracts). Tenga en cuenta que para realizar llamadas API debe registrarse en Core Scan y generar una clave API. + +Si estás familiarizado con la API de Etherscan, ¡estás de suerte! Las llamadas API en Core son 100% compatibles con la API de Etherscan. Solo necesita reemplazar la clave API y la URL del punto final y todo debería funcionar correctamente. + +## Verificación de HardHat + +La verificación HardHat es la forma más conveniente para que los desarrolladores verifiquen contratos inteligentes. Para obtener más información sobre la verificación de Hardhat, consulte la guía oficial de verificación de Hardhat que se encuentra [aquí](https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-verify). + +Tenga en cuenta que deberá agregar redes Core como cadenas personalizadas, como se ve a continuación en una configuración de ejemplo de HardHat: + +```javascript +/** +* @type import('hardhat/config').HardhatUserConfig +*/ + + +const { PrivateKey } = require('./secret.json'); +require('@nomiclabs/hardhat-ethers'); +require("@nomiclabs/hardhat-waffle"); +require("@nomicfoundation/hardhat-verify"); + +module.exports = { + defaultNetwork: 'testnet', + + networks: { + hardhat: { + }, + testnet: { + url: 'https://rpc.test.btcs.network', + accounts: [PrivateKey], + chainId: 1115, + }, + mainnet: { + url: 'https://rpc.coredao.org', + accounts: [PrivateKey], + chainId: 1116, + }, + }, + etherscan: { + apiKey: { + testnet: "api key", + mainnet: "api key" + }, + customChains: [ + { + network: "testnet", + chainId: 1115, + urls: { + apiURL: "https://api.test.btcs.network/api", + browserURL: "https://scan.test.btcs.network/" + } + }, + { + network: "mainnet", + chainId: 1116, + urls: { + apiURL: "https://openapi.coredao.org/api", + browserURL: "https://scan.coredao.org/" + } + } + ] + }, + + solidity: { + compilers: [ + { + version: '0.8.9', + settings: { + optimizer: { + enabled: false, + runs: 200, + }, + }, + } + ], + }, + paths: { + sources: './contracts', + cache: './cache', + artifacts: './artifacts', + }, + mocha: { + timeout: 20000, + }, +}; + +``` + +## Limitaciones conocidas + +- Actualmente, Core solo admite versiones del compilador solc hasta 0.8.19. +- Las bibliotecas no son compatibles con las verificaciones API. +- Si tiene problemas al verificar contratos de un solo archivo muy grandes (más de 1000 líneas), le recomendamos cambiar al formato "JSON estándar" para la verificación. From 3deb0e463996ee2b06e35b161308909184260e2f Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:34 +0500 Subject: [PATCH 007/638] New translations core-bridge-resources.md (French) --- fr/docs/Dev-Guide/core-bridge-resources.md | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 fr/docs/Dev-Guide/core-bridge-resources.md diff --git a/fr/docs/Dev-Guide/core-bridge-resources.md b/fr/docs/Dev-Guide/core-bridge-resources.md new file mode 100644 index 0000000000..23480e14d2 --- /dev/null +++ b/fr/docs/Dev-Guide/core-bridge-resources.md @@ -0,0 +1,86 @@ +--- +sidebar_label: Ressources du Pont Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Ressources du Pont Core + +--- + +Le [Pont Core](https://bridge.coredao.org/) est alimenté par LayerZero et permet des transferts d'actifs sans faille entre Core et le reste du monde de la blockchain. Le Pont Core se compose de deux parties : les contrats LayerZero sur Core qui facilitent les transferts inter-chaînes, et un ensemble de contrats de pont ou de tokens déployés à la fois sur Core et sur chaque blockchain à laquelle il est connecté. Le code de base audité du pont peut être trouvé [ici](https://github.com/LayerZero-Labs/wrapped-asset-bridge), et la liste complète des adresses de contrats de tokens de pont peut être trouvée [ici](./core-bridge-resources.md). + +### LayerZero + +| Contrats LayerZero sur Core | +| ------------------------------------------------------------------------------------------------- | +| [Endpoint LayerZero](https://scan.coredao.org/address/0x9740ff91f1985d8d2b71494ae1a2f723bb3ed9e4) | +| [UltraLightNodeV2](https://scan.coredao.org/address/0x66a71dcef29a0ffbdbe3c6a460a3b5bc225cd675) | +| [NonceContract](https://scan.coredao.org/address/0x2d61dcdd36f10b22176e0433b86f74567d529aaa) | +| [FPValidator](https://scan.coredao.org/address/0x3c2269811836af69497e5f486a85d7316753cf62) | +| [MPTValidatorV1](https://scan.coredao.org/address/0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7) | +| [TreasuryV2](https://scan.coredao.org/address/0x5b19bd330a84c049b62d5b0fc2ba120217a18c1c) | + +### Ponts et Tokens + +| CORE | Adresses | +| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| WrappedTokenBridge | https://scan.coredao.org/address/0xa4218e1f39da4aadac971066458db56e901bcbde | +| WETH | https://scan.coredao.org/address/0xeab3ac417c4d6df6b143346a46fee1b847b50296 | +| USDC | https://scan.coredao.org/address/0xa4151b2b3e269645181dccf2d426ce75fcbdeca9 | +| USDT | https://scan.coredao.org/address/0x900101d06a7426441ae63e9ab3b9b0f63be145f1 | +| WBTC | https://scan.coredao.org/address/0x5832f53d147b3d6Cd4578B9CBD62425C7ea9d0Bd | +| Bitcoin BEP2 (BTCB) | https://scan.coredao.org/address/0x7A6888c85eDBA8E38F6C7E0485212da602761C08 | +| WBNB | https://scan.coredao.org/address/0xdFBc618d3c48e553Cb197F42482A0795bef7fe28 | +| stCORE | https://scan.coredao.org/token/0xb3a8f0f0da9ffc65318aa39e55079796093029ad | + +| ETHEREUM | Adresses | +| ------------------- | ------------------------------------------------------------------------------------------------------- | +| OriginalTokenBridge | https://etherscan.io/address/0x52e75d318cfb31f9a2edfa2dfee26b161255b233 | +| WETH | https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 | +| USDC | https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 | +| USDT | https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7 | +| WBTC | https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 | + +| BNB Smart Chain (BSC) | Adresses | +| ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| OriginalTokenBridge | https://bscscan.com/address/0x52e75d318cfb31f9a2edfa2dfee26b161255b233 | +| USDC | https://bscscan.com/address/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d | +| USDT | https://bscscan.com/address/0x55d398326f99059ff775485246999027b3197955 | +| BTCB | 0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c | +| WBNB | 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c | + +| Polygon | Adresses | +| ------------------- | ---------------------------------------------------------------------------------------------------------- | +| OriginalTokenBridge | https://polygonscan.com/address/0x52e75d318cfb31f9a2edfa2dfee26b161255b233 | +| USDC | https://polygonscan.com/address/0x2791bca1f2de4661ed88a30c99a7a9449aa84174 | +| USDT | https://polygonscan.com/address/0xc2132d05d31c914a87c6611c10748aeb04b58e8f | +| WBTC | https://polygonscan.com/address/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6 | + +| OPTIMISM | Adresses | +| -------- | ------------------------------------------ | +| Bridge | 0x29d096cD18C0dA7500295f082da73316d704031A | +| USDC | 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 | +| USDT | 0x94b008aA00579c1307B0EF2c499aD98a8ce58e58 | +| WBTC | 0x68f180fcCe6836688e9084f035309E29Bf0A2095 | + +| AVALANCHE | Adresses | +| -------------------------------------------------------------------- | ------------------------------------------ | +| Bridge | 0x29d096cD18C0dA7500295f082da73316d704031A | +| Bitcoin Avalanche Bridged (BTC.b) | 0x2297aEbD383787A160DD0d9F71508148769342E3 | +| USDC | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E | +| USDT | 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7 | +| WBTC | 0x50b7545627a5162F82A992c33b87aDc75187B218 | + +| ARBITRUM | Adresses | +| -------- | ------------------------------------------ | +| Bridge | 0x29d096cD18C0dA7500295f082da73316d704031A | +| USDC | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 | +| USDT | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 | +| WBTC | 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f | + +| BASE | Addresses | +| ------ | ------------------------------------------ | +| Bridge | 0x84FB2086Fed7b3c9b3a4Bc559f60fFaA91507879 | +| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | +| WETH | 0x4200000000000000000000000000000000000006 | From bd8addf593aff63c2d62782f0df174db7423cc1e Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:36 +0500 Subject: [PATCH 008/638] New translations core-bridge-resources.md (Spanish) --- es/docs/Dev-Guide/core-bridge-resources.md | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 es/docs/Dev-Guide/core-bridge-resources.md diff --git a/es/docs/Dev-Guide/core-bridge-resources.md b/es/docs/Dev-Guide/core-bridge-resources.md new file mode 100644 index 0000000000..caf7e86485 --- /dev/null +++ b/es/docs/Dev-Guide/core-bridge-resources.md @@ -0,0 +1,86 @@ +--- +sidebar_label: Recursos del puente Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Recursos del puente Core + +--- + +El [Core Bridge](https://bridge.coredao.org/) funciona con LayerZero y permite transferencias de activos fluidas entre Core y el mundo blockchain en general. Core Bridge consta de dos partes: contratos LayerZero en Core que facilitan las transferencias entre cadenas y un conjunto de contratos puente o token implementados tanto en Core como en cada blockchain a la que está conectado. El código base del puente auditado se puede encontrar [aquí](https://github.com/LayerZero-Labs/wrapped-asset-bridge), y la lista completa de direcciones de contrato de tokens de puente se puede encontrar [aquí](./core- bridge-resources.md). + +### LayerZero + +| Contratos LayerZero en Core | +| ------------------------------------------------------------------------------------------------- | +| [LayerZero Endpoint](https://scan.coredao.org/address/0x9740ff91f1985d8d2b71494ae1a2f723bb3ed9e4) | +| [UltraLightNodeV2](https://scan.coredao.org/address/0x66a71dcef29a0ffbdbe3c6a460a3b5bc225cd675) | +| [NonceContract](https://scan.coredao.org/address/0x2d61dcdd36f10b22176e0433b86f74567d529aaa) | +| [FPValidator](https://scan.coredao.org/address/0x3c2269811836af69497e5f486a85d7316753cf62) | +| [MPTValidatorV1](https://scan.coredao.org/address/0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7) | +| [TreasuryV2](https://scan.coredao.org/address/0x5b19bd330a84c049b62d5b0fc2ba120217a18c1c) | + +### Bridges y Tokens + +| CORE | Direcciones | +| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| WrappedTokenBridge | https://scan.coredao.org/address/0xa4218e1f39da4aadac971066458db56e901bcbde | +| WETH | https://scan.coredao.org/address/0xeab3ac417c4d6df6b143346a46fee1b847b50296 | +| USDC | https://scan.coredao.org/address/0xa4151b2b3e269645181dccf2d426ce75fcbdeca9 | +| USDT | https://scan.coredao.org/address/0x900101d06a7426441ae63e9ab3b9b0f63be145f1 | +| WBTC | https://scan.coredao.org/address/0x5832f53d147b3d6Cd4578B9CBD62425C7ea9d0Bd | +| Bitcoin BEP2 (BTCB) | https://scan.coredao.org/address/0x7A6888c85eDBA8E38F6C7E0485212da602761C08 | +| WBNB | https://scan.coredao.org/address/0xdFBc618d3c48e553Cb197F42482A0795bef7fe28 | +| stCORE | https://scan.coredao.org/token/0xb3a8f0f0da9ffc65318aa39e55079796093029ad | + +| ETHEREUM | Direcciones | +| ------------------- | ------------------------------------------------------------------------------------------------------- | +| OriginalTokenBridge | https://etherscan.io/address/0x52e75d318cfb31f9a2edfa2dfee26b161255b233 | +| WETH | https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 | +| USDC | https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 | +| USDT | https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7 | +| WBTC | https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 | + +| BNB Smart Chain (BSC) | Direcciones | +| ---------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| OriginalTokenBridge | https://bscscan.com/address/0x52e75d318cfb31f9a2edfa2dfee26b161255b233 | +| USDC | https://bscscan.com/address/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d | +| USDT | https://bscscan.com/address/0x55d398326f99059ff775485246999027b3197955 | +| BTCB | 0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c | +| WBNB | 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c | + +| Polygon | Direcciones | +| ------------------- | ---------------------------------------------------------------------------------------------------------- | +| OriginalTokenBridge | https://polygonscan.com/address/0x52e75d318cfb31f9a2edfa2dfee26b161255b233 | +| USDC | https://polygonscan.com/address/0x2791bca1f2de4661ed88a30c99a7a9449aa84174 | +| USDT | https://polygonscan.com/address/0xc2132d05d31c914a87c6611c10748aeb04b58e8f | +| WBTC | https://polygonscan.com/address/0xc2132d05d31c914a87c6611c10748aeb04b58e8f | + +| OPTIMISM | Direcciones | +| -------- | ------------------------------------------ | +| Puente | 0x29d096cD18C0dA7500295f082da73316d704031A | +| USDC | 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 | +| USDT | 0x94b008aA00579c1307B0EF2c499aD98a8ce58e58 | +| WBTC | 0x68f180fcCe6836688e9084f035309E29Bf0A2095 | + +| AVALANCHE | Direcciones | +| -------------------------------------------------------------------- | ------------------------------------------ | +| Puente | 0x29d096cD18C0dA7500295f082da73316d704031A | +| Bitcoin Avalanche Bridged (BTC.b) | 0x2297aEbD383787A160DD0d9F71508148769342E3 | +| USDC | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E | +| USDT | 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7 | +| WBTC | 0x50b7545627a5162F82A992c33b87aDc75187B218 | + +| ARBITRUM | Direcciones | +| -------- | ------------------------------------------ | +| Puente | 0x29d096cD18C0dA7500295f082da73316d704031A | +| USDC | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 | +| USDT | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 | +| WBTC | 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f | + +| BASE | Addresses | +| ------ | ------------------------------------------ | +| Bridge | 0x84FB2086Fed7b3c9b3a4Bc559f60fFaA91507879 | +| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | +| WETH | 0x4200000000000000000000000000000000000006 | From d861571720d8af733bf4edb7673af69eadcff0a8 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:37 +0500 Subject: [PATCH 009/638] New translations core-explorer.md (French) --- fr/docs/Dev-Guide/core-explorer.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 fr/docs/Dev-Guide/core-explorer.md diff --git a/fr/docs/Dev-Guide/core-explorer.md b/fr/docs/Dev-Guide/core-explorer.md new file mode 100644 index 0000000000..e22b4208c6 --- /dev/null +++ b/fr/docs/Dev-Guide/core-explorer.md @@ -0,0 +1,28 @@ +--- +sidebar_label: Explorateur Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Explorateur Blockchain Core Scan + +--- + +Core Explorer est une interface graphique permettant aux utilisateurs d'interagir avec la blockchain CORE. Grâce à cette interface, vous pouvez consulter les informations sur les blocs ajoutés à la blockchain, les transactions effectuées, les soldes de portefeuille, ainsi que les informations sur les tokens tCORE et CORE. Core Network propose des explorateurs pour son mainnet et son testnet. + +### Explorateurs pour Testnet + +- https://scan.test.btcs.network/ + +### Explorateurs pour Mainnet + +- https://scan.coredao.org/ + +### Utilisation de l'Explorateur + +Vous pouvez utiliser l'explorateur de blockchain Testnet Core pour rechercher et examiner les transactions. Copiez l'adresse de votre compte depuis MetaMask et recherchez-la sur l'explorateur. Vous y verrez les transactions associées à votre compte, telles que : + +- Celle où vous avez récupéré des tCORE depuis le Faucet; +- Celle où vous avez envoyé des tCORE à une autre adresse; + +![core-explorer](../../static/img/core-explorer.png) From c2814af4d6eb8068f57fbd09e61094c99e6006f6 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:38 +0500 Subject: [PATCH 010/638] New translations core-explorer.md (Spanish) --- es/docs/Dev-Guide/core-explorer.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 es/docs/Dev-Guide/core-explorer.md diff --git a/es/docs/Dev-Guide/core-explorer.md b/es/docs/Dev-Guide/core-explorer.md new file mode 100644 index 0000000000..f42996d7d8 --- /dev/null +++ b/es/docs/Dev-Guide/core-explorer.md @@ -0,0 +1,28 @@ +--- +sidebar_label: Explorador Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Explorador de cadena de bloques de Core Scan + +--- + +Core Explorer es una interfaz gráfica de usuario diseñada para permitir a los usuarios interactuar con la cadena de bloques CORE. A través de esta interfaz, un usuario puede buscar información sobre los bloques que se han agregado a la cadena de bloques, las transacciones que se han producido en la cadena de bloques, los saldos de la billetera y la información sobre tCORE y los tokens CORE. Core Network proporciona exploradores tanto para su red principal como para su red de prueba. + +### Exploradores para Red de Prueba + +- https://scan.test.btcs.network + +### Exploradores para Red Principal + +- https://scan.coredao.org/ + +### Usando el Explorador + +Puede utilizar el explorador de cadena de bloques Testnet Core Scan para buscar y revisar transacciones. Copie la dirección de su cuenta de MetaMask y búsquela en el explorador. En la siguiente imagen podemos ver dos transacciones relacionadas con nuestra cuenta: + +- Aquel en el que obtuvimos tCORE de Faucet; +- Aquel en el que enviamos tCORE a otra dirección; + +![núcleo-explorador](../../static/img/core-explorer.png) From 1b4023d69f28cc259e4cee158c6dae99f43e09a7 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:39 +0500 Subject: [PATCH 011/638] New translations core-faucet.md (French) --- fr/docs/Dev-Guide/core-faucet.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fr/docs/Dev-Guide/core-faucet.md diff --git a/fr/docs/Dev-Guide/core-faucet.md b/fr/docs/Dev-Guide/core-faucet.md new file mode 100644 index 0000000000..69216944d0 --- /dev/null +++ b/fr/docs/Dev-Guide/core-faucet.md @@ -0,0 +1,27 @@ +--- +sidebar_label: Faucet Testnet Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Faucet Testnet Core + +--- + +Pour aider les utilisateurs à démarrer et permettre aux développeurs de rapidement mettre en place leurs dApps, Core a mis en place le [Faucet public Core Testnet](https://scan.test.btcs.network/faucet) pour distribuer des tokens de testnet Core, **tCORE**. + +## Étapes pour obtenir des tCORE depuis le Faucet Testnet Core + +1. Rendez-vous sur le site du [faucet](https://scan.test.btcs.network/faucet). +2. Collez votre adresse dans la zone de texte fournie. Assurez-vous d'utiliser l'adresse de votre portefeuille Testnet Core que vous souhaitez alimenter en tCORE. +3. Complétez le CAPTCHA +4. Cliquez sur le bouton `Get tCORE`. Après avoir demandé des tCORE au faucet, vous verrez le solde de votre MetaMask augmenter. + +![using-faucet](../../static/img/faucet/faucet.png) +:::Attention +Chaque adresse peut demander **un seul tCORE par jour**. Si vous avez épuisé vos tCORE et que le faucet ne vous en envoie pas plus à cause de la limite quotidienne d'un tCORE, revenez demain et essayez à nouveau ! +::: + +:::note +tCORE est uniquement utilisé pour les tests et n'a aucune valeur réelle. Ne l'utilisez pas pour des transactions financières réelles. +::: From 766d0a020e89f1a7901737e70cf33a92a0fe85e3 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:41 +0500 Subject: [PATCH 012/638] New translations core-faucet.md (Spanish) --- es/docs/Dev-Guide/core-faucet.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 es/docs/Dev-Guide/core-faucet.md diff --git a/es/docs/Dev-Guide/core-faucet.md b/es/docs/Dev-Guide/core-faucet.md new file mode 100644 index 0000000000..fd686bf8d6 --- /dev/null +++ b/es/docs/Dev-Guide/core-faucet.md @@ -0,0 +1,27 @@ +--- +sidebar_label: Core Testnet Faucet +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Core Testnet Faucet + +--- + +Para ayudar a los usuarios a comenzar y permitir a los desarrolladores crear rápidamente prototipos de sus dApps, Core ha lanzado el [Core Testnet Faucet] público (https://scan.test.btcs.network/faucet) para distribuir tokens de Core testnet, **tCORE**. + +## Pasos para obtener tCORE de Core Testnet Faucet + +1. Navegue hasta el sitio web [faucet](https://scan.test.btcs.network/faucet). +2. Pegue su dirección en el cuadro de texto proporcionado. Asegúrese de proporcionar la dirección Core Testnet de su billetera que desea recibir fondos con tCore. +3. Completa el CAPTCHA +4. Haga clic en el botón "Get tCORE". Después de solicitar tCORE desde el faucet, verá aumentar su saldo de MetaMask. + +![usando-grifo](../../static/img/faucet/faucet.png) +:::precaución +Cada dirección puede solicitar **sólo un tCORE por día**. Si te quedaste sin tCORE y el grifo no te envía más debido al límite diario de un tCORE, ¡vuelve mañana e inténtalo de nuevo! +::: + +:::note +tCORE solo se usa para pruebas y no tiene ningún valor. No lo utilice para transacciones financieras reales. +::: From 260820916feacb177645b8edcba2b4717be760bd Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:42 +0500 Subject: [PATCH 013/638] New translations core-mainnet-wallet-config.md (French) --- .../Dev-Guide/core-mainnet-wallet-config.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 fr/docs/Dev-Guide/core-mainnet-wallet-config.md diff --git a/fr/docs/Dev-Guide/core-mainnet-wallet-config.md b/fr/docs/Dev-Guide/core-mainnet-wallet-config.md new file mode 100644 index 0000000000..443c894bff --- /dev/null +++ b/fr/docs/Dev-Guide/core-mainnet-wallet-config.md @@ -0,0 +1,117 @@ +--- +sidebar_label: Mainnet Core Chain +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Se connecter au Mainnet Core Chain + +--- + +:::note +Voici un guide détaillé pour se connecter au Mainnet Core en utilisant le portefeuille MetaMask. +::: + +## Prérequis Logiciels + +1. [Extension de navigateur MetaMask Wallet](https://metamask.io/) + +## Configuration de MetaMask + +Nous recommandons d'utiliser le [portefeuille web MetaMask](https://metamask.io/) pour se connecter au Mainnet Core. Vous devrez installer MetaMask et configurer votre compte avant de pouvoir l'utiliser pour vous connecter au Mainnet Core. Vous pouvez trouver les instructions pour la configuration de MetaMask ici. + +## Ajouter le Mainnet Core à MetaMask + +Il existe plusieurs façons d'ajouter les configurations du Mainnet Core à votre portefeuille MetaMask, nous avons listé les méthodes les plus fiables et testées ci-dessous. + +### Ajouter le réseau manuellement + +1. Cliquez sur le bouton de sélection du réseau (la flèche pointant vers le bas à côté du réseau actuel). Cela affichera une liste des réseaux auxquels vous êtes déjà connecté. + +mainnet-wallet-config-1 + +2. Cliquez sur ‘Ajouter un réseau‘ en bas de la liste des réseaux + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-2.webp) + +3. Un nouvel onglet du navigateur s'ouvrira, affichant divers champs à remplir : + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-3.webp) + +Remplissez les informations de réseau suivantes et cliquez sur enregistrer pour ajouter le réseau. + +- **Nom du réseau :** Core Blockchain +- **Nouvelle URL RPC :** https://rpc.ankr.com/core +- **ID de la chaîne :** 1116 (**Remarque** : 0x45c est équivalent à 1116. La nouvelle version de MetaMask convertit l'ID de la chaîne en format hexadécimal). +- **Symbole de la devise :** CORE +- **URL de l'explorateur de blocs :** https://scan.coredao.org + +4. Après avoir suivi ces étapes, vous pourrez voir le réseau Core la prochaine fois que vous accéderez au sélecteur de réseau. + +### Ajouter le réseau Core via Chainlist.org + +1. Rendez-vous sur chainlist.org et recherchez ‘_Core_’ + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-4.webp) + +2. Vérifiez bien que vous choisissez le bon réseau. Vérifiez les détails dans les captures d'écran ci-dessous — ID de la chaîne, devise, etc., pour vous assurer que vous ajoutez le bon réseau. + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-6.webp) + +3. Cliquez sur le bouton ‘_Ajouter à MetaMask‘_. + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-7.webp) + +4. Approuvez l'action dans votre MetaMask en cliquant sur le bouton _‘Approuver’_. + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-8.webp) + +Le réseau Core est maintenant ajouté à votre MetaMask. + +### Ajouter le réseau Core via le Core Explorer + +1. Rendez-vous sur https://scan.coredao.org/ et faites défiler la page jusqu'en bas + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-9.webp) + +2. Cliquez sur le bouton ‘_Ajouter le réseau Core_’ + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-10.webp) + +3. Approuvez dans votre MetaMask + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-11.webp) + +4. Après avoir suivi ces étapes, vous pourrez voir le réseau Core la prochaine fois que vous accéderez au sélecteur de réseau. + +### Ajouter le réseau Core au portefeuille mobile MetaMask : + +1. Appuyez sur les trois lignes dans le coin supérieur gauche: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-12.webp) + +2. Sélectionnez _‘Paramètres_‘: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-13.webp) + +3. Sélectionnez Réseaux: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-14.webp) + +4. Appuyez sur ‘_Ajouter un réseau_’: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-15.webp) + +5. Remplissez les détails du réseau RPC personnalisé et cliquez sur enregistrer pour ajouter le réseau. + +- **Nom du réseau :** Core Blockchain +- **Nouvelle URL RPC :** https://rpc.ankr.com/core +- **ID de la chaîne :** 1116 (**Remarque** : 0x45c est équivalent à 1116. La nouvelle version de MetaMask convertit l'ID de la chaîne en format hexadécimal). +- **Symbole de la devise :** CORE +- **URL de l'explorateur de blocs :** https://scan.coredao.org + +4. Après avoir suivi ces étapes, vous pourrez voir le réseau Core la prochaine fois que vous accéderez au sélecteur de réseau. + +:::info +Si vous rencontrez une erreur ou avez des difficultés pour ajouter le réseau, demandez de l'aide dans le canal ‘support‘ du [Discord de Core](https://discord.gg/coredao). Nous sommes toujours disponibles pour vous aider. +::: From d66cac23ece15f7c99e383a763edb3dd899f20dc Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:43 +0500 Subject: [PATCH 014/638] New translations core-mainnet-wallet-config.md (Spanish) --- .../Dev-Guide/core-mainnet-wallet-config.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 es/docs/Dev-Guide/core-mainnet-wallet-config.md diff --git a/es/docs/Dev-Guide/core-mainnet-wallet-config.md b/es/docs/Dev-Guide/core-mainnet-wallet-config.md new file mode 100644 index 0000000000..7fd5f33007 --- /dev/null +++ b/es/docs/Dev-Guide/core-mainnet-wallet-config.md @@ -0,0 +1,117 @@ +--- +sidebar_label: Core Chain Mainnet +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Conectarse a Core Chain Mainnet + +--- + +:::note +Esta es una guía detallada para conectarse a Core Mainnet utilizando la billetera MetaMask. +::: + +## Requisitos previos del software + +1. [Extensión del navegador MetaMask Wallet](https://metamask.io/) + +## Configuración de la billetera MetaMask + +Recomendamos utilizar la [billetera web MetaMask](https://metamask.io/) para conectarse a Core Mainnet. Deberá instalar MetaMask y configurar su cuenta antes de poder usarla para conectarse a Core Mainnet. Puede encontrar las instrucciones de configuración de MetaMask aquí. + +## Agregar Core Mainnet a MetaMask + +Hay varias formas de agregar configuraciones de Core Mainnet a su MetaMask Wallet; a continuación, enumeramos las formas más confiables y probadas. + +### Agregar red manualmente + +1. Haga clic en el botón selector de red (la flecha hacia abajo al lado de la red actual). Esto mostrará una lista de redes a las que ya estás conectado. + + + +2. Haga clic en "Agregar red" en la parte inferior de la lista de redes + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-2.webp) + +3. Luego se abrirá una nueva pestaña del navegador, mostrando varios campos para completar: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-3.webp) + +Complete la siguiente información de la red y haga clic en "guardar" para agregar la red. + +- **Nombre de la red:** Core Blockchain +- **Nueva URL de RPC:** https://rpc.ankr.com/core +- **ID de cadena:** 1116 (**Nota**: 0x45c es lo mismo que 1116. La nueva versión de MetaMask convierte el ID de cadena al formato hexadecimal). +- **Símbolo de moneda:** CORE +- **URL del Explorador de bloques:** https://scan.coredao.org + +4. Después de realizar los pasos anteriores, podrás ver la red Core la próxima vez que accedas al selector de redes. + +### Agregar la red central a través de Chainlist.org + +1. Vaya a chainlist.org y busque '_Core_' + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-4.webp) + +2. Verifique dos veces para asegurarse de elegir la red correcta. Verifique los detalles en las siguientes instantáneas: ID de cadena, moneda, etc. para asegurarse de agregar la correcta. + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-6.webp) + +3. Haga clic en el botón '_Agregar a MetaMask_'. + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-7.webp) + +4. Apruebe la acción en su MetaMask haciendo clic en el botón _'Aprobar'_. + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-8.webp) + +La red Core ahora está agregada a su MetaMask. + +### Agregar la red Core a través de Core Explorer + +1. Vaya a https://scan.coredao.org/ y desplácese hacia abajo en la página + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-9.webp) + +2. Haga clic en el botón '_Agregar red principal_' + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-10.webp) + +3. Aprobar en tu MetaMask + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-11.webp) + +4. Después de realizar los pasos anteriores, podrás ver la red principal la próxima vez que accedas al selector de red. + +### Agregar la red Core a la billetera móvil MetaMask: + +1. Toca las tres líneas en la esquina superior izquierda: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-12.webp) + +2. Seleccione _'Configuración'_: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-13.webp) + +3. Seleccionar redes: + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-14.webp) + +4. Toque '_Agregar red_': + +![metmask-mainnet](../../static/img/miannet-wallet-config/mainnet-wallet-config-15.webp) + +5. Complete los detalles de la red RPC personalizada y haga clic en _guardar_ para agregar la red. + +- **Nombre de la red:** Core Blockchain +- **Nueva URL de RPC:** https://rpc.ankr.com/core +- **ID de cadena:** 1116 (**Nota**: 0x45c es lo mismo que 1116. La nueva versión de MetaMask convierte el ID de cadena al formato hexadecimal). +- **Símbolo de moneda:** CORE +- **URL del Explorador de bloques:** https://scan.coredao.org + +4. Después de realizar los pasos anteriores, podrás ver la red Core la próxima vez que accedas al selector de redes. + +:::info +Si tiene un error o tiene dificultades para agregar la red, solicite ayuda en el canal de "soporte" en [Core Discord] (https://discord.gg/coredao), siempre estamos disponibles para ayudarlo. +::: From 3e21c5c4a16089e370488e9b6a3f57a9e00cb489 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:45 +0500 Subject: [PATCH 015/638] New translations core-subgraph.md (French) --- fr/docs/Dev-Guide/core-subgraph.md | 87 ++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 fr/docs/Dev-Guide/core-subgraph.md diff --git a/fr/docs/Dev-Guide/core-subgraph.md b/fr/docs/Dev-Guide/core-subgraph.md new file mode 100644 index 0000000000..de1dc12265 --- /dev/null +++ b/fr/docs/Dev-Guide/core-subgraph.md @@ -0,0 +1,87 @@ +--- +sidebar_label: Core Subgraph +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Core Subgraph utilisant GraphQL + +--- + +Les développeurs peuvent utiliser un sous-graphe auto-hébergé pour extraire des données de la blockchain Core, les traiter et les stocker pour une utilisation via GraphQL. Voici comment créer et déployer cet outil puissant. + +### URLs Importantes + +Nous utiliserons plusieurs URLs standard dans ce guide, qui seront utile de revoir avant de commencer. + +#### MainNet + +
URLUtilisation
URL de gestion: https://thegraph.coredao.org/deploy/Utiliser pour créer/déployer des sous-graphes (--node or -g).
URL IPFS: https://thegraph.coredao.org/ipfs/Utiliser pour déployer des sous-graphes.
URL de requête HTTP: https://thegraph.coredao.orgUtiliser pour interroger des données depuis des sous-graphes.
URL de vérification de santé
https://thegraph-is.coredao.org
Utiliser pour vérifier la santé des sous-graphes.
+ +#### TestNet + +
URLUtilisation
URL de gestion:
https://thegraph-node.test.btcs.network
Utiliser pour créer/déployer des sous-graphes (--node or -g).
URL IPFS:
https://thegraph-ipfs.test.btcs.network
Utiliser pour déployer des sous-graphes.
URL de requête HTTP:
https://thegraph.test.btcs.network
Utiliser pour interroger des données depuis des sous-graphes.
URL de vérification de santé
https://thegraph-sub.test.btcs.network
Utiliser pour vérifier la santé des sous-graphes.
+ +### Étapes Générales pour la Configuration du Sous-Graphe + +#### Créer un Répertoire + +Suivez le [guide officiel de The Graph](https://thegraph.com/docs/en/developing/creating-a-subgraph/) pour créer votre répertoire de sous-graphe. Dans le but de deployer sur le de sous-graphe Core, assurez-vous de définir le nom du réseau dans `subgraph.yaml` sur core. Selon votre sous-graphe, il peut y avoir quelques modifications supplémentaires à effectuer. Vous trouverez des détails supplémentaires dans la section d'exemple complète ci-dessous. + +#### Créer et Déployer + +Pour créer et déployer votre sous-graphe, exécutez les commandes suivantes dans le répertoire de votre projet de sous-graphe. + +```bash +# Créer le sous-graphe +graph create your-subgraph-name --node https://thegraph.coredao.org/deploy/ + +# Déployer le sous-graphe +graph deploy your-subgraph-name --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/ +``` + +La commande de déploiement `graph deploy` devrait retourner l'URL HTTP de requête pour votre sous-graphe, que vous pouvez intégrer dans votre application selon vos besoins. + +### Exemple : Déploiement d'un sous-graphe Uniswap V2 + +Maintenant que nous comprenons le processus, passons à un exemple complet en configurant un sous-graphe Uniswap V2 sur Core. + +Premièrement, clonez le [répertoire du sous-graphe](https://github.com/Uniswap/v2-subgraph) Uniswap V2, accédez au dossier du projet, puis exécutez les commandes suivantes depuis ce répertoire : + +``` +# Installer les dépendances avec npm (ou yarn) +npm install + +# Générer le code du sous-graphe +npm run codegen +``` + +Maintenant nous allons apporter quelques modifications nécessaires aux fichiers _subgraph.yaml_ et _helpers.ts_ : + +- _subgraph.yaml_: + - Changez le nom du réseau en `core` aux lignes 9 et 37. + - Mettez à jour l'adresse du factory à la ligne 11. + - Mettez à jour le `startBlock` à la ligne 13 avec une hauteur de bloc raisonnable (la hauteur actuelle du bloc est disponible [ici](https://scan.coredao.org/)). +- _src/mappings/helpers.ts_: + - Mettez à jour l'adresse du factory à la ligne 11. + +Finalement, nous allons exécuter les commandes de création et de déploiement. Pour éviter les problèmes de compatibilité, utilisez la version de graph-cli installée dans le projet (au lieu de la version globale) en préfixant la commande `graph` avec `./node_modules/.bin/`. + +```bash +# Créer un nouveau sous-graphe appelé uniswap-4-test +./node_modules/.bin/graph create uniswap-4-test --node https://thegraph.coredao.org/deploy/ + +# Déployer le sous-graphe uniswap-4-test +./node_modules/.bin/graph deploy uniswap-4-test --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/ + +# Le déploiement devrait imprimer une URL HTTP de requête similaire à : +# https://thegraph.coredao.org/subgraphs/name/uniswap-4-test +``` + +Félicitations, votre sous-graphe est déployé ! Vous pouvez maintenant intégrer l'URL de requête HTTP imprimée par la commande de déploiement dans votre site web et l'utiliser pour interroger les données. + +### Autorisation + +Pour éviter que votre sous-graphe soit écrasé par d'autres, veuillez nous contacter sur [Discord](https://discord.com/invite/coredaoofficial) pour obtenir une clé d'autorisation.\ +\ +Si vous testez contre le TestNet Graph, voici un jeton d'accès pour des fins de test général : **a9a79c2aea604bfaa861ff93d46d0d11**. From 2a6d4489efd7dcad8fc043d0e065b8db3a6cae3c Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:46 +0500 Subject: [PATCH 016/638] New translations core-subgraph.md (Spanish) --- es/docs/Dev-Guide/core-subgraph.md | 88 ++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 es/docs/Dev-Guide/core-subgraph.md diff --git a/es/docs/Dev-Guide/core-subgraph.md b/es/docs/Dev-Guide/core-subgraph.md new file mode 100644 index 0000000000..95ed778756 --- /dev/null +++ b/es/docs/Dev-Guide/core-subgraph.md @@ -0,0 +1,88 @@ +--- +sidebar_label: Subgrafo Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Subgrafo Core usando GraphQL + +--- + +Los desarrolladores pueden utilizar un subgrafo autohospedado para extraer datos de la cadena de bloques Core, procesarlos y almacenarlos para su consumo a través de GraphQL. Echemos un vistazo a cómo podemos crear e implementar esta poderosa herramienta. + +### URL importantes + +Usaremos algunas URL estándar a lo largo de esta guía, que será útil revisar antes de comenzar. + +#### Red principal + +
URLUso
URL de administración: https://thegraph.coredao.org/deploy/Se utiliza para crear/implementar subgrafos.
IPFS URL: https://thegraph.coredao.org/ipfs/Se utiliza para implementar subgrafos.
HTTP query URL: https://thegraph.coredao.orgSe utiliza para consultar datos de subgrafos.
URL de control de estado
>https://thegraph-is.coredao.org
Se utiliza para comprobar el estado del subgrafo.
+ +#### Red de prueba + +
URLUso
URL de administración:
https://thegraph-node.test.btcs.network
Se utiliza para crear/implementar subgrafos (--node o -g).
URL de IPFS:
https://thegraph-ipfs.test.btcs.network
Se utiliza para implementar subgrafos.
URL de consulta HTTP:
https://thegraph.test.btcs.network
Se utiliza para consultar datos de subgrafos.
URL de control de estado
>https://thegraph-sub.test.btcs.network
Se utiliza para comprobar el estado del subgrafo.
+ +### Pasos generales de configuración del subgrafo + +#### Crear repositorio + +Para crear su repositorio de subgrafos, siga la [guía oficial de The Graph](https://thegraph.com/docs/en/developing/creating-a-subgraph/). Para implementar en la red Core Graph, asegúrese de configurar el nombre de su red en `subgraph.yaml` como núcleo. Dependiendo de su subgrafo, es posible que haya algunos cambios más que realizar Encontrará detalles adicionales en la sección de ejemplos completa a continuación. + +#### Crear e implementar + +Para crear e implementar su subgrafo, ejecute los siguientes comandos en el repositorio de su proyecto de subgrafo. + +```bash +# Crear subgraph +graph create your-subgraph-name --node https://thegraph.coredao.org/deploy/ + +# Deployar subgraph +graph deploy your-subgraph-name --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/ +``` + +El comando `graph depoy` debería devolver la URL de consulta HTTP para su subgrafo, que puede integrar en su aplicación según corresponda. + +### Ejemplo: implementación de un subgrafo Uniswap V2 + +Ahora que entendemos el proceso, veamos un ejemplo completo configurando un subgrafo Uniswap V2 en Core. + +Primero, clone el [repositorio de subgrafos] de Uniswap V2 (https://github.com/Uniswap/v2-subgraph), navegue hasta la carpeta del proyecto y luego ejecute los siguientes comandos desde ese directorio: + +``` +# Instalar dependencias con npm (o hilo) +npm install + +# Generar código de subgrafo +npm run codegen +``` + +Ahora haremos algunos cambios necesarios en el +_subgraph.yaml_ and _helpers.ts_ files: + +- _subgraph.yaml_: + - Cambie el nombre de la red a "core" en las líneas 9 y 37. + - Actualice la dirección de fábrica en la línea 11. + - Actualice `startBlock` en la línea 13 a una altura de bloque razonable (la altura del bloque actual está disponible [aquí](https://scan.coredao.org/)). +- _src/mappings/helpers.ts_: + - Actualice la dirección de fábrica en la línea 11. + +Finalmente, ejecutaremos los comandos de creación e implementación. Para evitar problemas de compatibilidad, usemos el graph-cli instalado en el proyecto (en lugar de la versión global) anteponiendo el comando `graph` con `./node_modules/.bin/`. + +```bash +# Crea un nuevo subgrafo llamado uniswap-4-test +./node_modules/.bin/graph create uniswap-4-test --node https://thegraph.coredao.org/deploy/ + +# Implementar el subgrafo uniswap-4-test +./node_modules/.bin/graph deploy uniswap-4-test --node https://thegraph.coredao.org/deploy/ --ipfs https://thegraph.coredao.org/ipfs/ + +# El comando de implementación debería imprimir una URL de consulta HTTP similar a: +# https://thegraph.coredao.org/subgraphs/name/uniswap-4-test +``` + +¡Bien hecho, tu subgrafo está implementado! Ahora puede integrar la URL de consulta HTTP impresa por el comando de implementación en su sitio web y utilizarla para consultar datos. + +### Authorization + +Para evitar que otros sobrescriban su subgrafo, contáctenos en [discord](https://discord.com/invite/coredaoofficial) para obtener una clave de autorización.\ +\ +Si está realizando pruebas con TestNet Graph, aquí hay un token de acceso para fines de prueba generales: **a9a79c2aea604bfaa861ff93d46d0d11**. From edd9939fc3e0c89595336a694dcced7a1d89a208 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:48 +0500 Subject: [PATCH 017/638] New translations core-testnet-wallet-config.md (French) --- .../Dev-Guide/core-testnet-wallet-config.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 fr/docs/Dev-Guide/core-testnet-wallet-config.md diff --git a/fr/docs/Dev-Guide/core-testnet-wallet-config.md b/fr/docs/Dev-Guide/core-testnet-wallet-config.md new file mode 100644 index 0000000000..44b31db36d --- /dev/null +++ b/fr/docs/Dev-Guide/core-testnet-wallet-config.md @@ -0,0 +1,87 @@ +--- +sidebar_label: Testnet Core Chain +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Connexion au Testnet de Core Chain + +--- + +:::note +Ceci est un guide détaillé pour se connecter au Testnet de Core en utilisant le portefeuille MetaMask. +::: + +### Prérequis Logiciels + +1. [Extension de Navigateur MetaMask](https://metamask.io/) + +### Configuration de MetaMask + +Nous recommandons d'utiliser le [portefeuille web MetaMask](https://metamask.io/) pour se connecter au Testnet Core. Vous devrez installer MetaMask et configurer votre compte avant de pouvoir l'utiliser pour vous connecter au Testnet Core. Vous pouvez trouver les instructions pour la configuration de MetaMask ici. + +### Ajouter le Testnet Core à MetaMask + +Il existe plusieurs façons d'ajouter les configurations du Testnet Core à votre portefeuille MetaMask, nous avons listé les méthodes les plus fiables et testées ci-dessous. + +#### Ajouter le réseau manuellement + +Une fois que vous avez configuré votre portefeuille MetaMask, vous pouvez l'utiliser pour vous connecter au Core Testnet en ajoutant les détails de la chaîne Core Testnet dans les paramètres de réseau de MetaMask. Naviguez vers `Paramètres -> Réseaux` dans MetaMask et cliquez sur le bouton `Ajouter un Réseau`. Entrez les informations suivantes : + +- **Nom du réseau :** Core Blockchain Testnet +- **Nouvelle URL RPC :** https://rpc.test.btcs.network +- **ID de Chaîne:** 1115 +- **Symbole de la devise :** tCORE +- **URL de l'explorateur de blocs :** https://scan.test.btcs.network + +![add-network-metamask](../../static/img/testnet-wallet-config/testnet-config-wallet-1.png) + +#### Ajouter le réseau Core via Chainlist.org + +1. Rendez-vous sur Chainlist.org et recherchez ‘_core blockchain_’. Assurez-vous de cocher l'option _Inclure les Testnets_. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-1.png) + +2. Vérifiez bien que vous choisissez le bon réseau. Vérifiez les détails dans les captures d'écran ci-dessous — ID de la chaîne, devise, etc., pour vous assurer que vous ajoutez le bon réseau. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-2.png) + +3. Cliquez sur _Connecter le Portefeuille_, puis choisissez MetaMask. Autorisez la connexion à MetaMask en confirmant les notifications. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-3.png) + +4. Cliquez sur le bouton _‘Changer de Réseau_‘ pour basculer vets le Core Testnet sur MetaMask. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-4.png) + +Le Testnet Core est maintenant ajouté à votre MetaMask. + +#### Ajouter le Réseau via Core Testnet Explorer + +Si vous utilisez l'extension MetaMask pour Chrome, vous pouvez ajouter rapidement le Core Testnet à MetaMask. Visitez le [Core Testnet Explorer](https://scan.test.btcs.network/), faites défiler vers le bas et sélectionnez le bouton `Ajouter le Réseau Core`. Une fenêtre contextuelle s'ouvrira avec toutes les informations nécessaires sur le réseau – vous n'avez qu'à confirmer et approuver. + +![add-network-metamask](../../static/img/testnet-wallet-config/testnet-wallet-config-2.png) + +:::info + +#### Mises à Jour de la marque + +La `Satoshi Chain/BTCs` a été rebaptisée `Core Chain/CORE`, respectivement. Si vous avez ajouté le Testnet avant le changement, vous devrez mettre à jour manuellement le Nom du Réseau et le Symbole de la Monnaie dans les paramètres de MetaMask ; sinon, vous ne pourrez pas utiliser la version actuelle du Core Testnet. Allez dans `Paramètres -> Réseau`, et sélectionnez `Core Testnet` pour ouvrir les paramètres du réseau. Mettez à jour le Nom du Réseau et le Symbole de la Monnaie avec les valeurs indiquées dans la [section ci-dessus](#adding-network-manually) et cliquez sur le bouton Sauvegarder. Vous êtes prêt à partir ! +::: + +### Alimentation du Portefeuille avec des Tokens tCORE + +Pour aider les utilisateurs à démarrer et permettre aux développeurs de rapidement mettre en place leurs dApps, Core a mis en place le [Faucet public Core Testnet](https://scan.test.btcs.network/faucet) pour distribuer des tokens de testnet Core, **tCORE**. Suivez le [guide](./core-faucet.md) détaillé pour alimenter votre compte MetaMask avec des tokens tCORE. + +### Envoi de Tokens tCORE + +Vous pouvez utiliser MetaMask pour envoyer des tCORE à d'autres adresses. + +1. Accédez à votre portefeuille MetaMask, assurez-vous que vous êtes connecté au Core Testnet +2. Cliquez sur le bouton `Envoyer` + +![send-metmask](../../static/img/testnet-wallet-config/send-tcore-1.png) + +3. Entrez le montant de tokens tCORE que vous souhaitez envoyer et l'adresse à laquelle vous souhaitez envoyer les tokens tCORE (assurez-vous qu'il s'agisse d'une adresse du Testnet Core). Cliquez ensuite sur Suivant et confirmez la transaction. + +![send-metmask](../../static/img/testnet-wallet-config/send-tcore-2.png) From b8c398b501fb2f043ea2d917e6121de1e49f63f6 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:49 +0500 Subject: [PATCH 018/638] New translations core-testnet-wallet-config.md (Spanish) --- .../Dev-Guide/core-testnet-wallet-config.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 es/docs/Dev-Guide/core-testnet-wallet-config.md diff --git a/es/docs/Dev-Guide/core-testnet-wallet-config.md b/es/docs/Dev-Guide/core-testnet-wallet-config.md new file mode 100644 index 0000000000..ee3ecfb560 --- /dev/null +++ b/es/docs/Dev-Guide/core-testnet-wallet-config.md @@ -0,0 +1,87 @@ +--- +sidebar_label: Red de prueba de Core +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Conéctese a la red de prueba de Core + +--- + +:::note +Esta es una guía detallada para conectarse a Core Testnet utilizando la billetera MetaMask. +::: + +### Requisitos previos del software + +1. [Extensión del navegador MetaMask Wallet](https://metamask.io/) + +### Configuración de la billetera MetaMask + +Recomendamos utilizar la [billetera web MetaMask](https://metamask.io/) para conectarse a Core Testnet. Deberá instalar MetaMask y configurar su cuenta antes de poder usarla para conectarse a Core Testnet. Puede encontrar las instrucciones de configuración de MetaMask aquí. + +### Agregar Core Testnet a MetaMask + +Hay varias formas de agregar configuraciones de Core Testnet a su MetaMask Wallet; a continuación, enumeramos las formas más confiables y de prueba. + +#### Agregar red manualmente + +Una vez que haya configurado su billetera MetaMask, puede usarla para conectarse a Core Testnet agregando los detalles de la cadena de Core Testnet en la configuración de red de MetaMask. Navegue hasta `Configuración->Redes` en MetaMask y haga clic en el botón `Agregar red`. Introduzca la siguiente información: + +- **Nombre de la red:** Core Blockchain TestNet +- **Nueva URL de RPC:** https://rpc.test.btcs.network +- **Chain ID:** 1115 +- **Símbolo de moneda:** tCORE +- **Block Explorer URL:** https://scan.test.btcs.network + +![add-network-metamask](../../static/img/testnet-wallet-config/testnet-config-wallet-1.png) + +#### Agregar la red Core a través de Chainlist.org + +1. Vaya a chainlist.org y busque '_core blockchain_', asegúrese de marcar la opción _Incluir Testnets_. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-1.png) + +2. Verifique dos veces para asegurarse de elegir la red correcta. Verifique los detalles en las siguientes instantáneas: ID de cadena, moneda, etc. para asegurarse de agregar la correcta. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-2.png) + +3. Haga clic en _Connect Wallet_ y luego elija MetaMask. Permita conectarse a la billetera MetaMask confirmando las notificaciones de MetaMask. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-3.png) + +4. Cambie a Core testnet haciendo clic en el botón _'Cambiar red'_. + +![chainlist-testnet-connect-metmask](../../static/img/testnet-wallet-config/chainlist-testnet-connect-4.png) + +El Core Testnet ahora está agregado a su MetaMask. + +#### Agregar red a través de Core Testnet Explorer + +Si usa la extensión Chrome MetaMask, puede usar un atajo rápido para agregar Core Testnet a MetaMask. Visite [Core Testnet Explorer] (https://scan.test.btcs.network/), desplácese hacia abajo y seleccione el botón "Agregar red central". Esto abrirá una ventana emergente con toda la información de red necesaria cargada; solo necesita confirmar y aprobar. + +![agregar-metamask-de-red](../../static/img/testnet-wallet-config/testnet-wallet-config-2.png) + +:::info + +#### Actualizaciones de cambio de marca + +Satoshi Chain/BTC ha sido rebautizado como “Core Chain/CORE”, respectivamente. Si agregó Testnet antes del cambio de marca, deberá actualizar manualmente el nombre de la red y el símbolo de moneda en la configuración de MetaMask; de lo contrario, no podrá utilizar la versión actual de Core Testnet. Vaya a `Configuración->Red` y seleccione `Core Testnet` para abrir la configuración de red. Actualice el nombre de la red y el símbolo de moneda a los valores indicados en la [sección anterior] (#adding-network-manualmente) y haga clic en el botón Guardar. Estas listo +::: + +### Monedero de financiación con tokens tCORE + +Para ayudar a los usuarios a comenzar y permitir a los desarrolladores crear rápidamente prototipos de sus dApps, Core ha lanzado el [Core Testnet Faucet] público (https://scan.test.btcs.network/faucet) para distribuir tokens de Core testnet, **tCORE** . Siga la [guía] detallada (./core-faucet.md) para financiar su cuenta de metamask con tokens tCORE. + +### Envío de tokens tCORE + +Puede utilizar MetaMask para enviar tCORE a otras direcciones. + +1. Navegue a la billetera metamask, asegúrese de estar conectado a Core Testnet +2. Haga clic en el botón `Enviar` + +![send-metmask](../../static/img/testnet-wallet-config/send-tcore-1.png) + +3. Ingrese la cantidad de tokens tCORE que desea enviar y la dirección a la que desea enviar los tokens tCORE; asegúrese de que sea una dirección Core Testnet. Luego haga clic en siguiente y confirme la transacción. + +![send-metmask](../../static/img/testnet-wallet-config/send-tcore-2.png) From 0c2259ac7d9cd8c523d7f656c659cd5f884ad940 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:50 +0500 Subject: [PATCH 019/638] New translations dapp-on-core.md (French) --- fr/docs/Dev-Guide/dapp-on-core.md | 353 ++++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) create mode 100644 fr/docs/Dev-Guide/dapp-on-core.md diff --git a/fr/docs/Dev-Guide/dapp-on-core.md b/fr/docs/Dev-Guide/dapp-on-core.md new file mode 100644 index 0000000000..80ecbd7928 --- /dev/null +++ b/fr/docs/Dev-Guide/dapp-on-core.md @@ -0,0 +1,353 @@ +--- +sidebar_label: Construire une dApp sur Core +hide_table_of_contents: false +sidebar_position: 2 +description: Construire une dApp Full Stack sur la Core Chain +--- + +# Construire une dApp sur Core + +--- + +Les applications décentralisées (dApps) utilisent une blockchain ou des contrats intelligents on-chain pour stocker et référencer des données, plutôt que de s'appuyer sur des bases de données centralisées traditionnelles. Une structure de dApp commune et simple se compose généralement d'un front-end en React.js ou Vue.js utilisant Web3.js ou Ethers.js pour interagir avec les contrats intelligents déployés sur une blockchain compatible EVM. + +## Ce que Nous Allons Construire + +Dans ce tutoriel, nous développerons une dApp simple utilisant React.js et Ethers.js qui stocke des données dans un contrat intelligent sur la blockchain Core et les affiche aux utilisateurs. Le code complet de la dApp est disponible sur GitHub dans le répertoire [dApp-tutorial](https://github.com/coredao-org/dapp-tutorial/tree/master/01-Basic%20Full%20Stack%20Dapp%20on%20Core#building-a-dapp-on-core). + +## Objectifs d'Apprentissage + +Ce tutoriel vous aidera à acquérir les connaissances suivantes : + +- Connectivité du portefeuille MetaMask au Core Testnet ; +- Développement et déploiement de contrats intelligents sur Core Testnet ; +- Intégration front-end avec le contrat intelligent en utilisant la bibliothèque Ethers.js ; +- Lecture des données d'un contrat intelligent ; +- Écriture des données dans un contrat intelligent; + +## Prérequis Logiciels + +- [Git](https://git-scm.com/) v2.44.0 +- [Node.js](https://nodejs.org/en) v20.11.1 +- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) v10.2.4 +- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#installation) v10.2.4 +- [Extension Web Wallet MetaMask](https://metamask.io/download/) + +## Configuration de l'Environnement de Développement + +1. Créez un nouveau répertoire pour le projet et accédez-y + +```bash +mkdir dapp-tutorial +cd dapp-tutorial +``` + +2. Installez [Hardhat](https://hardhat.org/) et [Waffle](https://getwaffle.io/) + +```bash +npm init --yes +npm install --save-dev hardhat +npm install --save-dev chai @nomiclabs/hardhat-waffle +``` + +3. Initialisez le projet Hardhat en exécutant la commande suivante + +```bash +npx hardhat +``` + +![harhat-project-initialize](../../static/img/hardhat/dapp-tutorial-1.png) + +:::note +Comme nous utiliserons Waffle pour ce projet, assurez-vous de sélectionner **Non** pour l'option "_Voulez-vous installer les dépendances de ce projet d'exemple avec npm (@nomicfoundation/hardhat-toolbox)? (Y/n)_" +::: + +4. Une fois le projet initialisé, vous trouverez la structure du projet suivante : + +```bash +dapp-tutorial. +| .gitignore +| hardhat-config.js (HardHat configuration file.) +| package-lock.json +| package.json +| README.md +| ++---contracts (For Solidity Smart Contracts) +| Lock.sol +| ++---ignition (Scripts in previous versions, this folder contains configuration files that specify how smart contracts should be deployed) +| \---modules +| Lock.js +| ++---node_modules +| ++---test (For writing and Running Tests) +| Lock.js +| +``` + +5. Installez et configurez l'extension MetaMask pour Chrome pour l'utiliser avec Core Testnet. Consultez le guide détaillé [ici](./core-testnet-wallet-config.md). + +6. Créez un fichier secret.json dans le dossier racine et stockez la clé privée de votre portefeuille MetaMask dedans. Consultez [ici](https://metamask.zendesk.com/hc/en-us/articles/360015290032-How-to-reveal-your-Secret-Recovery-Phrase) pour des détails sur la façon d'obtenir la clé privée du compte MetaMask. + +```json +{"PrivateKey":"votre clé privée, ne divulguez pas ce fichier, gardez-le absolument en sécurité"} +``` + +:::caution +N'oubliez pas d'ajouter ce fichier au fichier `.gitignore` dans le dossier racine de votre projet afin de ne pas vérifier accidentellement vos clés privées/phases secrètes dans un dépôt public. Assurez-vous de garder ce fichier en lieu sûr ! +::: + +7. Copiez ce qui suit dans votre fichier `hardhat.config.js` + +```js +/** + * @type import('hardhat/config').HardhatUserConfig + */ + + +require('@nomiclabs/hardhat-ethers'); +require("@nomiclabs/hardhat-waffle"); + + +const { PrivateKey } = require('./secret.json'); + + +module.exports = { + defaultNetwork: 'testnet', + + + networks: { + hardhat: { + }, + testnet: { + url: 'https://rpc.test.btcs.network', + accounts: [PrivateKey], + chainId: 1115, + } + }, + solidity: { + compilers: [ + { + version: '0.8.19', + settings: { + evmVersion: 'paris', + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + ], + }, + paths: { + sources: './contracts', + cache: './cache', + artifacts: './artifacts', + }, + mocha: { + timeout: 20000, + }, +}; + +``` + +## Écriture du Contrat Intelligent + +1. Accédez au dossier `contracts` dans le répertoire racine de votre projet. +2. Supprimez le fichier `Lock.sol` ; créez un nouveau fichier `Storage.sol` et collez le contenu suivant dedans. + +```javascript +// SPDX-License-Identifier: GPL-3.0 + + +pragma solidity >=0.7.0 <0.9.0; + + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + + uint256 number; + + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} +``` + +### Explication + +Le contrat `Storage` est un exemple simple qui démontre comment stocker et récupérer une valeur à l'aide d'un contrat intelligent Solidity. Il se compose d'une variable d'état pour contenir la valeur et de deux fonctions pour mettre à jour et lire cette valeur. La fonction `store` permet à tout utilisateur de définir la valeur, tandis que la fonction `retrieve` permet à tout utilisateur de lire la valeur actuelle. Ce contrat est utile pour comprendre les bases des variables d'état et de la visibilité des fonctions en Solidity. Ce contrat intelligent Solidity, nommé `Storage`, est un contrat simple permettant de stocker et de récupérer une seule valeur `uint256`. Voici une description détaillée de ses composants et fonctionnalités : + +#### Composants du contrat + +1. **Variable d'état :** + - `number` : Une variable `uint256` utilisée pour stocker la valeur. + +#### Fonctions du contrat + +1. **Fonction Store :** + - `store(uint256 num) public`: Permet aux utilisateurs de stocker une nouvelle valeur dans la variable `number`. Cette fonction prend un paramètre, `num`, qui est la valeur à stocker. La variable `number` est mise à jour avec la valeur fournie. + - **Visibilité**: La fonction est publique, ce qui signifie qu'elle peut être appelée par tout utilisateur ou contrat. + - **Changement d'état**: Cette fonction modifie l'état du contrat en mettant à jour la variable `number`. + +2. **Fonction Retrieve :** + - `retrieve() public view returns (uint256)`: Retourne la valeur actuelle stockée dans la variable `number`. Cette fonction ne prend aucun paramètre et retourne une valeur `uint256`. + - **Visibilité**: La fonction est note comme `publique`, ce qui signifie qu'elle peut être appelée par tout utilisateur ou contrat. + - **View**: La fonction est marquée comme `view`, ce qui indique qu'elle ne modifie pas l'état du contrat. Elle se contente de lire l'état. + - **Valeur retournée :** La fonction retourne la valeur de la variable `number`. + +## Compilation du contrat intelligent + +1. Pour compiler le contrat `Storage` défini dans `Storage.sol`, exécutez la commande suivante depuis le répertoire racine + +```bash +npx hardhat compile +``` + +## Déploiement et interaction avec le contrat intelligent + +1. Avant de déployer votre contrat intelligent sur la Core Chain, il est recommandé de d'abord effectuer une série de tests pour s'assurer que le contrat fonctionne comme prévu. Reportez-vous au guide détaillé [ici](https://docs.coredao.org/developer/develop-on-core/building-on-core/using-hardhat#contract-testing) pour plus de détails. + +2. Créez un dossier `scripts` dans le répertoire racine de votre projet. À l'intérieur de ce dossier, créez un fichier `deploy-and-call.js` et collez le script suivant. + +```javascript +const hre = require("hardhat"); + + +async function main() { + const Storage = await hre.ethers.getContractFactory("Storage"); + const storage = await Storage.deploy(); + + + await storage.deployed(); + console.log("Storage contract deployed to:", storage.address); + + + console.log("call retrieve():", await storage.retrieve()) + + + console.log("call store(), set value to 100") + const tx = await storage.store(100) + await tx.wait() + + console.log("call retrieve() again:", await storage.retrieve()) +} + + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); +``` + +3. Assurez-vous que votre portefeuille MetaMask dispose de jetons tCORE pour le Core Testnet. Référez-vous [ici](https://docs.coredao.org/developer/develop-on-core/using-core-testnet/connect-to-core-testnet#testnet-facuet-tcore-account-funding) pour obtenir des jetons tCORE depuis Core Faucet. + +4. Exécutez la commande suivante depuis le répertoire racine de votre projet pour déployer votre contrat intelligent sur la Core Chain. + +```bash +npx hardhat run scripts/deploy-and-call.js +``` + +Si le déploiement est réussi, vous obtiendrez la sortie suivante + +```bash +>npx hardhat run scripts/deploy-and-call.js +Storage contract deployed to: 0x48F68BF4A1b1fE6589B9D0a5ad0dF0520582edA2 +call retrieve(): BigNumber { value: "0" } +call store(), set value to 100 +call retrieve() again: BigNumber { value: "100" } +``` + +5. Assurez-vous de sauvegarder l'adresse du contrat Storage obtenue ci-dessus, car elle sera utilisée pour interagir avec le contrat intelligent depuis l'interface frontend de votre dApp. + +🎉 Félicitations ! Vous avez appris à créer, compiler et déployer un contrat intelligent sur le Core Chain Testnet en utilisant Hardhat. + +## Interaction avec le contrat intelligent via l'interface frontend + +⚡ Créons une interface frontend pour interagir avec le contrat intelligent. + +### Configuration du frontend + +1. Clonez le répertoire `dApp-tutorial` depuis GitHub en utilisant la commande suivante. + +```bash +git clone https://github.com/coredao-org/dapp-tutorial.git +``` + +2. Accédez au dossier `01-Basic Full Stack Dapp on Core ` dans le répertoire `dapp-tutorial` cloné. + +```bash +cd dapp-tutorial +cd "01-Basic Full Stack Dapp on Core" +``` + +3. Installez toutes les dépendances, c'est-à-dire les modules node. + +```bash +npm install +``` + +4. Pour tester si tout fonctionne correctement, exécutez l'application en utilisant la commande suivante. Cela servira l'application avec une fonctionnalité de rechargement à chaud à l'adresse [http://localhost:5173](http://localhost:5173/) + +```bash +npm run dev +``` + +### Implémentations clés + +La clé logique blockchain de l'application est implémentée dans [App.tsx](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx) + +1. [App.tsx (Wallet)](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L20): Logique pour connecter l'application au portefeuille MetaMask. +2. [App.tsx (Store)](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L58): Logique pour écrire des données dans le contrat intelligent Storage. +3. [App.tsx (Retrieve)](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L87): Logique pour lire des données depuis le contrat intelligent Storage. + +### Ajout des détails du contrat intelligent + +1. Copiez le fichier `Storage.sol` depuis le dossier `contracts` à la racine de votre projet et collez-le dans le dossier `frontend/src/contracts`. +2. Copiez l'adresse du contrat intelligent Storage obtenue dans la section [ci-dessus](#deploy-and-interact-with-smart-contract). +3. Collez-la à la [ligne 10 de App.tsx](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L10). + +```javascript +const contractAddress = '0x48F68BF4A1b1fE6589B9D0a5ad0dF0520582edA2' +``` + +4. De plus, nous aurons besoin des métadonnées ABI pour interagir avec le contrat depuis notre dApp. Depuis le dossier `artifacts/contracts` à la racine de votre projet, copiez le fichier `Storage.json` et enregistrez-le dans le dossier `/src/contracts`. + +## Test local avec MetaMask + +1. Exécutez la commande `npm run dev` depuis la racine du projet pour démarrer l'application. Cela servira l'application à l'adresse [http://localhost:5173](http://localhost:5173/) + +2. Assurez-vous que votre portefeuille MetaMask est correctement installé et switché sur le Core Testnet comme décrit dans notre [guide utilisateur du Core Testnet](./core-testnet-wallet-config.md). Vous devrez également connecter votre portefeuille MetaMask au site local. + +![dapp-on-core](../../static/img/dapp/dapp-1.png) + +3. Entrez un nombre dans le champ de saisie et cliquez sur le bouton **store** pour l'enregistrer dans le contrat. Une action d'écriture sur le contrat intelligent appelle le portefeuille MetaMask. Cliquez sur le bouton **Confirm** pour signer la transaction et attendez la confirmation sur la blockchain. + +![dapp-on-core](../../static/img/dapp/dapp-2.avif) + +4. Après que la transaction soit confirmée sur la blockchain, cliquez sur le bouton **retrieve** pour lire la valeur depuis le contrat intelligent. Vous remarquerez que la valeur a été mise à jour. + +![dapp-on-core](../../static/img/dapp/dapp-3.avif) + +🎉 Félicitations ! Vous avez interagi avec votre contrat nouvellement déployé via l'interface frontend de votre dApp ! Vous pouvez développer la base de code en déployant et en interagissant avec différents contrats, et en ajoutant de nouveaux composants UI au site Web pour vos utilisateurs. From 9a4e324162fdf844843c214f20d9a0db01976f09 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:52 +0500 Subject: [PATCH 020/638] New translations dapp-on-core.md (Spanish) --- es/docs/Dev-Guide/dapp-on-core.md | 353 ++++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) create mode 100644 es/docs/Dev-Guide/dapp-on-core.md diff --git a/es/docs/Dev-Guide/dapp-on-core.md b/es/docs/Dev-Guide/dapp-on-core.md new file mode 100644 index 0000000000..9ffab1d4bb --- /dev/null +++ b/es/docs/Dev-Guide/dapp-on-core.md @@ -0,0 +1,353 @@ +--- +sidebar_label: Construya dApp en Core +hide_table_of_contents: false +sidebar_position: 2 +description: Cree una dApp de Fullstack en Core Chain +--- + +# Construyendo dApp en Core + +--- + +Las aplicaciones descentralizadas (dApps) utilizan una cadena de bloques o contratos inteligentes en cadena para almacenar y hacer referencia a datos, en lugar de depender de bases de datos centralizadas tradicionales. Una estructura de dApp simple y común generalmente consiste en una interfaz de usuario de React.js o Vue.js que utiliza Web3.js o Ethers.js para interactuar con contratos inteligentes implementados en una cadena de bloques compatible con EVM. + +## ¿Qué estamos construyendo? + +En este tutorial, desarrollaremos una dApp simple usando React.js y Ethers.js que almacena datos en un contrato inteligente en Core blockchain y los muestra a los usuarios. El código completo de la dApp está disponible en GitHub en el [dApp-tutorial](https://github.com/coredao-org/dapp-tutorial/tree/master/01-Basic%20Full%20Stack%20Dapp%20on%20Core# building-a-dapp-on-core) repositorio. + +## Conclusiones del aprendizaje + +Este tutorial le ayudará a adquirir conocimientos sobre los siguientes puntos de aprendizaje: + +- Conectividad de MetaMask Wallet a Core Testnet; +- Desarrollo e implementación de contratos inteligentes en Core Testnet; +- Integración front-end con el contrato inteligente utilizando la biblioteca Ethers.js; +- Leer datos de un contrato inteligente; +- Escribir datos en un contrato inteligente; + +## Requisitos previos del software + +- [Git](https://git-scm.com/) v2.44.0 +- [Node.js](https://nodejs.org/en) v20.11.1 +- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) v10.2.4 +- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#installation) v10.2.4 +- [MetaMask Web Wallet Extension](https://metamask.io/download/) + +## Configurar el entorno de desarrollo + +1. Cree un nuevo directorio para el proyecto y navegue hasta él. + +```bash +mkdir dapp-tutorial +cd dapp-tutorial +``` + +2. Install [Hardhat](https://hardhat.org/) and [Waffle](https://getwaffle.io/) + +```bash +npm init --yes +npm install --save-dev hardhat +npm install --save-dev chai @nomiclabs/hardhat-waffle +``` + +3. Inicialice el proyecto Hardhat ejecutando el siguiente comando + +```bash +npx hardhat +``` + +![harhat-project-initialize](../../static/img/hardhat/dapp-tutorial-1.png) + +:::note +Como usaremos Waffle para este proyecto y nos aseguraremos de seleccionar **No** para la opción "_¿Desea instalar las dependencias de este proyecto de muestra con npm (@nomicfoundation/hardhat-toolbox)? (Y/n)_" +::: + +4. Una vez que se inicializa este proyecto, encontrará la siguiente estructura de proyecto: + +```bash +dapp-tutorial. +| .gitignore +| hardhat-config.js (HardHat configuration file.) +| package-lock.json +| package.json +| README.md +| ++---contracts (Para Solidity Smart Contracts) +| Lock.sol +| ++---ignition (Scripts en versiones anteriores, esta carpeta contiene archivos de configuración que especifican cómo se deben implementar los contratos inteligentes.) +| \---modules +| Lock.js +| ++---node_modules +| ++---test (Para escribir y ejecutar pruebas) +| Lock.js +| +``` + +5. Instale y configure MetaMask Chrome Extension para usar con Core Testnet. Consulte [aquí](./core-testnet-wallet-config.md) para obtener una guía detallada. + +6. Cree un archivo secret.json en la carpeta raíz y almacene en él la clave privada de su billetera MetaMask. Consulte [aquí](https://metamask.zendesk.com/hc/en-us/articles/360015290032-How-to-reveal-your-Secret-Recovery-Phrase) para obtener detalles sobre cómo obtener la clave privada de la cuenta MetaMask. + +```json +{"PrivateKey":"you private key, do not leak this file, do keep it absolutely safe"} +``` + +:::caution +No olvide agregar este archivo al archivo `.gitignore` en la carpeta raíz de su proyecto para no verificar accidentalmente sus claves privadas/frases secretas en un repositorio público. ¡Asegúrese de guardar este archivo en un lugar absolutamente seguro! +::: + +7. Copie lo siguiente en su archivo `hardhat.config.js` + +```js +/** + * @type import('hardhat/config').HardhatUserConfig + */ + + +require('@nomiclabs/hardhat-ethers'); +require("@nomiclabs/hardhat-waffle"); + + +const { PrivateKey } = require('./secret.json'); + + +module.exports = { + defaultNetwork: 'testnet', + + + networks: { + hardhat: { + }, + testnet: { + url: 'https://rpc.test.btcs.network', + accounts: [PrivateKey], + chainId: 1115, + } + }, + solidity: { + compilers: [ + { + version: '0.8.19', + settings: { + evmVersion: 'paris', + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + ], + }, + paths: { + sources: './contracts', + cache: './cache', + artifacts: './artifacts', + }, + mocha: { + timeout: 20000, + }, +}; + +``` + +## Redacción de contratos inteligentes + +1. Navegue a la carpeta `contratos` en el directorio raíz de su proyecto. +2. Elimine el archivo `Lock.sol`; cree un nuevo archivo `Storage.sol` y pegue el siguiente contenido en él. + +```javascript +// SPDX-License-Identifier: GPL-3.0 + + +pragma solidity >=0.7.0 <0.9.0; + + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + + uint256 number; + + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} +``` + +### Explicación + +El contrato de "Almacenamiento" es un ejemplo simple que demuestra cómo almacenar y recuperar un valor usando un contrato inteligente de Solidity. Consiste en una variable de estado para contener el valor y dos funciones para actualizar y leer este valor. La función "almacenar" permite a cualquier usuario establecer el valor, mientras que la función "recuperar" permite a cualquier usuario leer el valor actual. Este contrato puede resultar útil para comprender los conceptos básicos de las variables de estado y la visibilidad de funciones en Solidity. Este contrato inteligente de Solidity, denominado "Almacenamiento", es un contrato simple que permite almacenar y recuperar un único valor "uint256". Aquí hay un desglose detallado de sus componentes y funcionalidad: + +#### Componentes del contrato + +1. **Variable de estado**: + - `number`: una variable `uint256` que se utiliza para almacenar el valor. + +#### Funciones del contrato + +1. **Función de tienda**: + - `store(uint256 num) public`: una función que permite a los usuarios almacenar un nuevo valor en la variable `number`. Esta función toma un solo parámetro, "num", que es el valor que se almacenará. La función actualiza la variable `número` con el valor proporcionado. + - **Visibilidad**: la función está marcada como "pública", lo que significa que cualquier usuario o contrato puede llamarla. + - **Cambio de estado**: Esta función modifica el estado del contrato actualizando la variable `número`. + +2. **Función de recuperación**: + - `retrieve() public view return (uint256)`: una función que devuelve el valor actual almacenado en la variable `number`. Esta función no toma ningún parámetro y devuelve un valor `uint256`. + - **Visibilidad**: la función está marcada como "pública", lo que significa que cualquier usuario o contrato puede llamarla. + - **Ver**: La función está marcada como `ver`, lo que indica que no modifica el estado del contrato. Sólo lee el estado. + - **Valor de retorno**: La función devuelve el valor de la variable "número". + +## Compilación de contrato inteligente + +1. Para compilar el contrato inteligente `Storage` definido en `Storage.sol`, desde el directorio raíz ejecute el siguiente comando + +```bash +npx hardhat compile +``` + +## Implementar e interactuar con contratos inteligentes + +1. Antes de implementar su contrato inteligente en Core Chain, es mejor ejecutar primero una serie de pruebas para asegurarse de que el contrato inteligente esté funcionando como se desea. Consulte la guía detallada [aquí](https://docs.coredao.org/developer/develop-on-core/building-on-core/using-hardhat#contract-testing) para obtener más detalles. + +2. Cree una carpeta `scripts` en el directorio raíz de su proyecto. Dentro de esta carpeta, cree un archivo `deploy-and-call.js`; pegue el siguiente script en él. + +```javascript +const hre = require("hardhat"); + + +async function main() { + const Storage = await hre.ethers.getContractFactory("Storage"); + const storage = await Storage.deploy(); + + + await storage.deployed(); + console.log("Storage contract deployed to:", storage.address); + + + console.log("call retrieve():", await storage.retrieve()) + + + console.log("call store(), set value to 100") + const tx = await storage.store(100) + await tx.wait() + + console.log("call retrieve() again:", await storage.retrieve()) +} + + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); +``` + +3. Asegúrese de que su billetera MetaMask tenga tokens de prueba tCORE para Core Testnet. Consulte [aquí](https://docs.coredao.org/developer/develop-on-core/using-core-testnet/connect-to-core-testnet#testnet-facuet-tcore-account-funding) para obtener detalles sobre cómo obtener tokens tCORE de Core Faucet. + +4. Ejecute el siguiente comando desde el directorio raíz de su proyecto para implementar su contrato inteligente en Core Chain. + +```bash +npx hardhat run scripts/deploy-and-call.js +``` + +Si se implementa correctamente, obtendrá el siguiente resultado + +```bash +>npx hardhat run scripts/deploy-and-call.js +Storage contract deployed to: 0x48F68BF4A1b1fE6589B9D0a5ad0dF0520582edA2 +call retrieve(): BigNumber { value: "0" } +call store(), set value to 100 +call retrieve() again: BigNumber { value: "100" } +``` + +5. Asegúrese de guardar la dirección del contrato de almacenamiento en el que se implementa, como se obtuvo anteriormente, esto se usará para interactuar con el contrato inteligente desde la interfaz de la dApp. + +Felicidades Ha aprendido con éxito cómo crear, compilar e implementar un contrato inteligente en Core Chain Testnet utilizando Hardhat. + +## Interactuar con Smart Contract a través del Frontend + +Creemos una interfaz frontal para interactuar con el contrato inteligente. + +### Configurando la interfaz + +1. Clona el repositorio `dApp-tutorial` de GitHub usando el siguiente comando. + +```bash +git clone https://github.com/coredao-org/dapp-tutorial.git +``` + +2. Navegue a la carpeta `01-Basic Full Stack Dapp on Core` en el repositorio clonado `dapp-tutorial`. + +```bash +cd dapp-tutorial +cd "01-Basic Full Stack Dapp on Core" +``` + +3. Instale todas las dependencias, es decir, módulos de nodo. + +```bash +npm install +``` + +4. Para probar si todo funciona bien, ejecute la aplicación usando el siguiente comando. Esto servirá a la aplicación con función de recarga en caliente en [http://localhost:5173](http://localhost:5173/) + +```bash +npm run dev +``` + +### Implementaciones clave + +La lógica clave de blockchain de la aplicación se implementa en [App.tsx](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/ aplicación.tsx) + +1. [App.tsx (Cartera)](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L20): lógica para conectar la aplicación a la billetera MetaMask. +2. [App.tsx (Tienda)](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L58): lógica para escribir datos en el contrato inteligente de almacenamiento. +3. [App.tsx (Recuperar)](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App.tsx#L87): lógica para leer datos del contrato inteligente de almacenamiento. + +### Agregar detalles de contrato inteligente + +1. Copie el archivo `Storage.sol` de la carpeta `contracts` en la raíz de su proyecto y péguelo en la carpeta `frontend/src/contracts`. +2. Copie la dirección del contrato inteligente de almacenamiento obtenida en la sección [arriba](#deploy-and-interact-with-smart-contract). +3. Pegue esto en la [Línea 10 de App.tsx](https://github.com/coredao-org/dapp-tutorial/blob/master/01-Simple%20Storage%20Full%20Stack%20Dapp/src/components/App. tsx#L10). + +```javascript +const contractAddress = '0x48F68BF4A1b1fE6589B9D0a5ad0dF0520582edA2' +``` + +4. Además, necesitaremos los metadatos de ABI para interactuar con el contrato desde nuestra dApp. Desde la carpeta `artifacts/contracts` en la raíz de su proyecto. Copie el archivo `Storage.json` y guárdelo en la carpeta `/src/contracts`. + +## Pruebe localmente usando MetaMask + +1. Ejecute el comando `npm run dev` desde la raíz del proyecto para iniciar la aplicación. Esto servirá para la aplicación en [http://localhost:5173](http://localhost:5173/) + +2. Asegúrese de que su billetera MetaMask esté correctamente instalada y cambiada a Core Testnet como se describe en nuestra [guía del usuario de Core Testnet] (./core-testnet-wallet-config.md). También deberá conectar su billetera MetaMask al sitio local. + +![dapp-on-core](../../static/img/dapp/dapp-1.png) + +3. Ingrese un número en el campo de entrada y haga clic en el botón **almacenar** para guardarlo en el contrato. Una acción de escritura en el contrato inteligente invoca la billetera MetaMask. Haga clic en el botón **Confirmar** para firmar la transacción y espere la confirmación en la cadena de bloques. + +![dapp-on-core](../../static/img/dapp/dapp-2.avif) + +4. Una vez confirmada la transacción en la cadena de bloques, haga clic en el botón **recuperar** para leer el valor del contrato inteligente. Notarás que el valor se ha actualizado. + +![dapp-on-core](../../static/img/dapp/dapp-3.avif) + +🎉 ¡Felicidades! ¡Acaba de interactuar con su contrato recién implementado utilizando la interfaz de su dApp! Puede aprovechar el código base implementando e interactuando con diferentes contratos y agregando nuevos componentes de interfaz de usuario al sitio web para sus usuarios. From 3c749216cfedbc6126b81a0e8c300a877ec84337 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:53 +0500 Subject: [PATCH 021/638] New translations dev-tools.md (French) --- fr/docs/Dev-Guide/dev-tools.md | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 fr/docs/Dev-Guide/dev-tools.md diff --git a/fr/docs/Dev-Guide/dev-tools.md b/fr/docs/Dev-Guide/dev-tools.md new file mode 100644 index 0000000000..99710e9495 --- /dev/null +++ b/fr/docs/Dev-Guide/dev-tools.md @@ -0,0 +1,45 @@ +--- +sidebar_label: Outils de Développement +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Aperçu des outils de développement + +--- + +#### _Accédez aux outils et ressources de Core_ + +### Ressources du Testnet de la blockchain Core + +- **[Explorateur de blocs](https://scan.test.btcs.network/):** recherchez et consultez les transactions, comptes, blocs, et bien plus. + +- **[Points de terminaison RPC](https://chainlist.org/chain/1115):** points de terminaison RPC pour le service RPC du Testnet de Core. + +- **[Faucet Core](https://scan.test.btcs.network/faucet):** approvisionnez votre adresse Testnet avec des tCORE. + +- **[Staking Core](https://stake.test.btcs.network/):** site pour le staking de tCORE. + +- **[Gnosis Safe](https://safe.test.btcs.network/welcome):** Gestion multi-signature sécurisée des actifs numériques. + +### Ressources Générales + +- **[GitHub Core DAO](https://github.com/coredao-org):** page GitHub officielle, incluant le code source de la blockchain Core et bien plus encore. + +### Ressources du Mainnet de la blockchain Core + +- **[Block Explorer](https://scan.coredao.org/):** Recherchez et consultez les transactions, comptes, blocs, et plus encore. + +- **[RPC Endpoints](https://chainlist.org/chain/1116):** Points d’accès RPC pour le service RPC du Mainnet Core. + +- **[Core Bridge](https://bridge.coredao.org/):** Pont officiel pour l'écosystème Core (plus de détails dans les ressources de Core Bridge) + +- **[Staking Core](https://stake.coredao.org/):** site officiel pour le staking de CORE. + +- **[Web3 Provider](https://cloud.infstones.com/login):** Infrastructure API évolutive fournie par InfStones. + +- **[Core Scan Contract Verifier](https://scan.coredao.org/verifyContract):** Outil web pour la vérification de contrats (guide ici). + +- **[Gnosis Safe](https://safe.coredao.org/welcome):** Gestion multi-signature sécurisée des actifs numériques. + +- **[wCORE](https://scan.coredao.org/address/0x191e94fa59739e188dce837f7f6978d84727ad01):** Contrat intelligent officiel pour le token wrapped CORE. From de9e749f876bf6999eadbea5e27d51aaaeea4673 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:54 +0500 Subject: [PATCH 022/638] New translations dev-tools.md (Spanish) --- es/docs/Dev-Guide/dev-tools.md | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 es/docs/Dev-Guide/dev-tools.md diff --git a/es/docs/Dev-Guide/dev-tools.md b/es/docs/Dev-Guide/dev-tools.md new file mode 100644 index 0000000000..a275b465c3 --- /dev/null +++ b/es/docs/Dev-Guide/dev-tools.md @@ -0,0 +1,45 @@ +--- +sidebar_label: Herramientas para desarrolladores +hide_table_of_contents: false +sidebar_position: 2 +--- + +# Panorama de herramientas para desarrolladores + +--- + +#### _Acceda a las herramientas y recursos de Core_ + +### Recursos principales de Testnet de Blockchain + +- **[Block Explorer](https://scan.test.btcs.network/):** busque y revise transacciones, cuentas, bloques y más. + +- **[Puntos finales RPC](https://chainlist.org/chain/1115):** Puntos finales RPC para el servicio RPC de Core Testnet. + +- **[Core Faucet](https://scan.test.btcs.network/faucet):** financie su dirección de testnet con tCORE. + +- **[Core Stake](https://stake.test.btcs.network/):** sitio web de tCORE stake. + +- **[Gnosis Safe](https://safe.test.btcs.network/welcome):** gestión segura multifirma de activos digitales. + +### Recursos generales + +- **[Core DAO GitHub](https://github.com/coredao-org):** la página oficial de GitHub, que incluye el código base de Core blockchain y más. + +### Recursos de la red principal de Core Blockchain + +- **[Block Explorer](https://scan.coredao.org/):** busque y revise transacciones, cuentas, bloques y más. + +- **[Puntos finales RPC](https://chainlist.org/chain/1116):** Puntos finales RPC para el servicio RPC de Core Mainnet. + +- **[Core Bridge](https://bridge.coredao.org/):** puente oficial para el ecosistema Core (más detalles en Core Bridge Resources) + +- **[Core Stake](https://stake.coredao.org/):** sitio web oficial de CORE Stake. + +- **[Proveedor Web3](https://cloud.infstones.com/login):** infraestructura API escalable proporcionada por InfStones. + +- **[Core Scan Contract Verifier](https://scan.coredao.org/verifyContract):** herramienta web para verificación de contratos (guía aquí). + +- **[Gnosis Safe](https://safe.coredao.org/welcome):** gestión segura multifirma de activos digitales. + +- **[wCORE](https://scan.coredao.org/address/0x191e94fa59739e188dce837f7f6978d84727ad01):** contrato inteligente de token CORE envuelto oficial. From d4c91176f385d3b57b2ed8a499c52f7193abafc4 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:55 +0500 Subject: [PATCH 023/638] New translations erc20-tokens.md (French) --- fr/docs/Dev-Guide/erc20-tokens.md | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 fr/docs/Dev-Guide/erc20-tokens.md diff --git a/fr/docs/Dev-Guide/erc20-tokens.md b/fr/docs/Dev-Guide/erc20-tokens.md new file mode 100644 index 0000000000..84d0b77b4f --- /dev/null +++ b/fr/docs/Dev-Guide/erc20-tokens.md @@ -0,0 +1,69 @@ +--- +sidebar_label: Tokens ERC-20 +hide_table_of_contents: false +sidebar_position: 2 +description: ERC-20 sur Core Chain +--- + +# Tokens ERC20 + +--- + +ERC-20 est actuellement la méthode dominante pour implémenter des tokens fongibles basés sur la blockchain. Chaque token ERC20 est basé sur l'interface originale du token ERC20, ce qui signifie qu'ils partagent tous un ensemble commun de fonctions, y compris (mais sans s'y limiter) : + +- Transférer des tokens d'un compte à un autre ; +- Obtenir le solde actuel d'un compte en token ; +- Obtenir l'offre totale de tokens disponibles sur le réseau ; +- Approuver un montant de tokens pour être dépensé par un compte tiers ; + +Pour être compatible avec ERC-20, un token doit implémenter toutes les fonctions et événements suivants : + +```javascript +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +```javascript +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +## Bonnes pratiques + +ERC-20 est un standard simple et sécurisé. Cependant, il est important d'être prudent lors de son implémentation ; de nombreux tokens ERC-20 ont été exploités au fil des années en raison de l'inclusion de code additionnel défectueux. + +Pour plus de sécurité, nous recommandons d'utiliser l'implémentation ERC-20 d'OpenZeppelin pour votre projet. Le code source est disponible dans le fichier [ERC20.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol). Voici les étapes à suivre : + +1\. Installez les contrats intelligents OpenZeppelin dans votre projet en exécutant la commande suivante : + +`npm install @openzeppelin/contracts` + +2\. Ensuite, vous pouvez importer les contrats de la bibliothèque avec le code suivant: + +```javascript +// contracts/GLDToken.sol +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract GLDToken is ERC20 { + constructor(uint256 initialSupply) ERC20("Gold", "GLD") { + _mint(msg.sender, initialSupply); + } +} +``` + +Vous trouverez plus d'informations sur l'implémentation ERC-20 d'OpenZeppelin [ici](https://docs.openzeppelin.com/contracts/4.x/erc20). + +#### Références + +- [https://ethereum.org/en/developers/docs/standards/tokens/erc-20/](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) +- [https://docs.openzeppelin.com/contracts/4.x/erc20](https://docs.openzeppelin.com/contracts/4.x/erc20) From ec30024d81191da0c66b38cba97eaacec5dba890 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:57 +0500 Subject: [PATCH 024/638] New translations erc20-tokens.md (Spanish) --- es/docs/Dev-Guide/erc20-tokens.md | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 es/docs/Dev-Guide/erc20-tokens.md diff --git a/es/docs/Dev-Guide/erc20-tokens.md b/es/docs/Dev-Guide/erc20-tokens.md new file mode 100644 index 0000000000..4e2b8ca94e --- /dev/null +++ b/es/docs/Dev-Guide/erc20-tokens.md @@ -0,0 +1,69 @@ +--- +sidebar_label: ERC-20 Tokens +hide_table_of_contents: false +sidebar_position: 2 +description: ERC-20 en Core Chain +--- + +# ERC20 Tokens + +--- + +ERC20 es actualmente el enfoque dominante para implementar tokens fungibles basados ​​en blockchain. Cada token ERC20 se basa en la interfaz del token ERC20 original, lo que significa que todos comparten un conjunto común de funciones, que incluyen (entre otras): + +- Transferir tokens de una cuenta a otra; +- Obtener el saldo actual de tokens de una cuenta; +- Obtener el suministro total del token disponible en la red; +- Aprobar una cantidad de tokens para ser gastados por una cuenta de terceros; + +Para ser compatible con ERC-20, un token debe implementar todas las funciones y eventos siguientes: + +```javascript +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +```javascript +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +## Mejores prácticas + +ERC20 es un estándar simple y seguro. Pero debemos tener cuidado en nuestra implementación; Muchos tokens ERC20 han sido explotados a lo largo de los años debido a la inclusión de código adicional con errores. + +Por motivos de seguridad, recomendamos utilizar la implementación OpenZeppelin ERC20 para su proyecto, cuyo código fuente se puede encontrar en[ERC20.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts /token/ERC20/ERC20.sol). Puedes hacer esto con los siguientes pasos: + +1\. Instale los contratos inteligentes de OpenZeppelin en su proyecto ejecutando el siguiente comando: + +`npm install @openzeppelin/contracts` + +2\. Luego, puedes importar los contratos en la biblioteca con esto: + +```javascript +// contracts/GLDToken.sol +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract GLDToken is ERC20 { + constructor(uint256 initialSupply) ERC20("Gold", "GLD") { + _mint(msg.sender, initialSupply); + } +} +``` + +Puede encontrar más información sobre la implementación de OpenZeppelin ERC-20 [aquí](https://docs.openzeppelin.com/contracts/4.x/erc20). + +#### References + +- [https://ethereum.org/en/developers/docs/standards/tokens/erc-20/](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) +- [https://docs.openzeppelin.com/contracts/4.x/erc20](https://docs.openzeppelin.com/contracts/4.x/erc20) From 38fe2cd472a84f647ceccdf3d1d5f78f61e69611 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:58 +0500 Subject: [PATCH 025/638] New translations erc721-tokens.md (French) --- fr/docs/Dev-Guide/erc721-tokens.md | 77 ++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 fr/docs/Dev-Guide/erc721-tokens.md diff --git a/fr/docs/Dev-Guide/erc721-tokens.md b/fr/docs/Dev-Guide/erc721-tokens.md new file mode 100644 index 0000000000..b880129daa --- /dev/null +++ b/fr/docs/Dev-Guide/erc721-tokens.md @@ -0,0 +1,77 @@ +--- +sidebar_label: Tokens ERC-721 +hide_table_of_contents: false +sidebar_position: 2 +description: Tokens ERC-721 sur Core Chain +--- + +# Tokens ERC721 + +--- + +ERC-721 est un standard pour les tokens non fongibles, ce qui signifie que chaque token est vérifiable et unique par rapport aux autres tokens, et cette norme est devenue dominante pour les NFTs (tokens non fongibles) sur la chaîne. Tous les ERC721 ont un`tokenId` unique qui les différencie de tous les autres tokens de l'ensemble. + +Un token compatible ERC721 doit implémenter toutes les fonctions et événements suivants : + +```javascript + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +```javascript + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +## Bonnes pratiques + +Nous recommandons d'utiliser l'implémentation ERC721 populaire et fiable d'OpenZeppelin dans votre projet. Le code source peut être trouvé dans [ERC721.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol). Vous pouvez utiliser l'implémentation ERC-721 d'OpenZeppelin dans votre projet en suivant les étapes suivantes : + +1\. Installez la bibliothèque OpenZeppelin dans votre projet en exécutant la commande suivante : + +`npm install @openzeppelin/contracts` + +2\. Une fois installée, vous pouvez utiliser l'implémentation ERC-721 de la bibliothèque en l'important comme suit : + +```javascript +// contracts/GameItem.sol +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; + +contract GameItem is ERC721URIStorage { + using Counters for Counters.Counter; + Counters.Counter private _tokenIds; + + constructor() ERC721("GameItem", "ITM") {} + + function awardItem(address player, string memory tokenURI) + public + returns (uint256) + { + uint256 newItemId = _tokenIds.current(); + _mint(player, newItemId); + _setTokenURI(newItemId, tokenURI); + + _tokenIds.increment(); + return newItemId; + } +} +``` + +Pour plus d'informations sur l'implémentation ERC-721 d'OpenZeppelin, veuillez consulter [ERC721](https://docs.openzeppelin.com/contracts/4.x/erc721). + +#### Références + +- [https://ethereum.org/en/developers/docs/standards/tokens/erc-721/](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/) +- [https://docs.openzeppelin.com/contracts/4.x/erc721](https://docs.openzeppelin.com/contracts/4.x/erc721) From d46ba813014f8d078048ba90aa9bc5c3759944b7 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:23:59 +0500 Subject: [PATCH 026/638] New translations erc721-tokens.md (Spanish) --- es/docs/Dev-Guide/erc721-tokens.md | 77 ++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 es/docs/Dev-Guide/erc721-tokens.md diff --git a/es/docs/Dev-Guide/erc721-tokens.md b/es/docs/Dev-Guide/erc721-tokens.md new file mode 100644 index 0000000000..907003e329 --- /dev/null +++ b/es/docs/Dev-Guide/erc721-tokens.md @@ -0,0 +1,77 @@ +--- +sidebar_label: ERC-721 Tokens +hide_table_of_contents: false +sidebar_position: 2 +description: ERC-721 en Core Chain +--- + +# ERC721 Tokens + +--- + +ERC721 es un estándar para tokens no fungibles, lo que significa que cada token es verificablemente único de todos los demás tokens y se ha convertido en el estándar dominante para las NFT en cadena. Todos los ERC721 tienen un "tokenId" único que los diferencia de todos los demás tokens del conjunto. + +Un token compatible con ERC721 debe implementar todas las funciones y eventos siguientes: + +```javascript + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +```javascript + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +## Mejores prácticas + +Recomendamos utilizar la popular y confiable implementación ERC721 de OpenZeppelin en su proyecto. El código fuente se puede encontrar en[ERC721.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol). Puede utilizar la implementación ERC721 de OpenZeppelin en su proyecto mediante los siguientes pasos: + +1\. Instale la biblioteca OpenZeppelin en su proyecto ejecutando el comando: + +`npm install @openzeppelin/contracts` + +2\. Una vez instalada, puede usar la implementación ERC721 en la biblioteca importándola así: + +```javascript +// contracts/GameItem.sol +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; + +contract GameItem is ERC721URIStorage { + using Counters for Counters.Counter; + Counters.Counter private _tokenIds; + + constructor() ERC721("GameItem", "ITM") {} + + function awardItem(address player, string memory tokenURI) + public + returns (uint256) + { + uint256 newItemId = _tokenIds.current(); + _mint(player, newItemId); + _setTokenURI(newItemId, tokenURI); + + _tokenIds.increment(); + return newItemId; + } +} +``` + +Para obtener más información sobre la implementación de OpenZeppelin ERC-20, lea [ERC721](https://docs.openzeppelin.com/contracts/4.x/erc721). + +#### Referencias + +- [https://ethereum.org/en/developers/docs/standards/tokens/erc-721/](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/) +- [https://docs.openzeppelin.com/contracts/4.x/erc721](https://docs.openzeppelin.com/contracts/4.x/erc721) From 97df41d5ca64818b73287fbebcb7d067867f4f89 Mon Sep 17 00:00:00 2001 From: RumeelHussain <35759187+RumeelHussain@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:24:01 +0500 Subject: [PATCH 027/638] New translations hardhat.md (French) --- fr/docs/Dev-Guide/hardhat.md | 267 +++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 fr/docs/Dev-Guide/hardhat.md diff --git a/fr/docs/Dev-Guide/hardhat.md b/fr/docs/Dev-Guide/hardhat.md new file mode 100644 index 0000000000..840e63d694 --- /dev/null +++ b/fr/docs/Dev-Guide/hardhat.md @@ -0,0 +1,267 @@ +--- +sidebar_label: Utilisation de Hardhat +hide_table_of_contents: false +sidebar_position: 2 +description: Déployer des contrats sur la Core Chain en utilisant Hardhat +--- + +# Utilisation de Hardhat + +--- + +Hardhat est un environnement de développement populaire pour les blockchains compatibles avec l’EVM, comprenant plusieurs composants pour écrire, compiler, déboguer et déployer des contrats intelligents. + +Dans ce tutoriel, apprenez à compiler, déployer et appeler des contrats intelligents sur Core TestNet en utilisant Hardhat. Obtenez le code source pour ce tutoriel [ici](https://github.com/coredao-org/hardhat-tutorial). + +## Installation + +Accédez à votre dossier de profil et suivez les étapes ci-dessous pour installer Hardhat (npm/node [v8.9.4 LTS ou une version ultérieure](https://nodejs.org/en/) est requise) : + +1. `npm init --yes` +2. `npm install --save-dev hardhat` +3. `npm install --save-dev chai @nomiclabs/hardhat-waffle` + +## Initialisation du projet + +Après l'installation, vous pouvez initialiser Hardhat en exécutant la commande `npx hardhat` : + +```javascript +$ npx hardhat +888 888 888 888 888 +888 888 888 888 888 +888 888 888 888 888 +8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 +888 888 "88b 888P" d88" 888 888 "88b "88b 888 +888 888 .d888888 888 888 888 888 888 .d888888 888 +888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. +888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + +👷 Welcome to Hardhat v2.10.1 👷‍ + +? What do you want to do? … +❯ Create a JavaScript project + Create a TypeScript project + Create an empty hardhat.config.js + Quit +``` + +Une fois le projet initialisé, vous trouverez la structure suivante : + +- `contracts`: pour les contrats intelligents Solidity. +- `scripts`: pour les scripts JavaScript/TypeScript pour l'interaction avec les contrats et autres utilitaires. +- `test`: pour écrire et exécuter les tests. +- `hardhat.config.js`: fichier de configuration Hardhat. + +## Configurer Hardhat pour le Core Testnet + +Copiez ce qui suit dans votre fichier `hardhat.config.js`: + +```javascript +/** + * @type import('hardhat/config').HardhatUserConfig + */ + + require('@nomiclabs/hardhat-ethers'); + require("@nomiclabs/hardhat-waffle"); + + const { PrivateKey } = require('./secret.json'); + + module.exports = { + defaultNetwork: 'testnet', + + networks: { + hardhat: { + }, + testnet: { + url: 'https://rpc.test.btcs.network', + accounts: [PrivateKey], + chainId: 1115, + } + }, + solidity: { + compilers: [ + { + version: '0.8.9', + settings: { + evmVersion: 'paris', + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + ], + }, + paths: { + sources: './contracts', + cache: './cache', + artifacts: './artifacts', + }, + mocha: { + timeout: 20000, + }, + }; + +``` + +**Assurez-vous que votre contrat intelligent suit les [directives de support Solidity de Core Chain](./smart-contract-guidelines.md)**. Pour cela, vérifiez que le paramètre `evmVersion` est défini sur `paris` dans les paramètres du compilateur Solidity dans le fichier `hardhat.config.js`. + +> Remarque : Nous devons fournir des clés privées/mnémotechniques pour le fournisseur. Vous pouvez créer un fichier `secret.json` pour les stocker. N'oubliez pas d'ajouter ce fichier au `.gitignore` de votre projet afin de ne pas accidentellement publier vos clés privées dans un dépôt public. Assurez-vous de conserver ce fichier dans un endroit absolument sécurisé ! + +## Rediger des contrats intelligents + +Pour simplifier, utilisons le fichier `1_Storage.sol` que nous connaissons déjà du tutoriel Remix. Copiez le code ci-dessous dans un nouveau fichier appelé `Storage.sol` et enregistrez-le dans le dossier `contracts`. + +```solidity +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} +``` + +## Compilation du contrat + +Exécutez la commande suivante pour compiler le contrat : + +`npx hardhat compile` + +## Test du contrat + +Créez un nouveau fichier appelé `storage-test.js` avec le code suivant et enregistrez-le dans le dossier `test` : + +```javascript +const { expect } = require("chai") +const { ethers } = require("hardhat") + +describe("Storage", function () { + let storage; + + beforeEach(async function(){ + Storage = await ethers.getContractFactory("Storage"); + [operator] = await ethers.getSigners(); + storage = await Storage.connect(operator).deploy(); + await storage.deployed() + expect(await storage.retrieve()).to.equal(0n); + }) + describe("Test store function", function(){ + it("should work properly", async function(){ + let tx = await storage.store(100); + await tx.wait(); + expect(await storage.retrieve()).to.equal(100n); + }) + it("should throw", async function(){ + await expect( + storage.store(-1) + ).to.be.throws + }) + }) +}) +``` + +Pour tester notre contrat `Storage.sol` sur le réseau intégré de Hardhat, exécutez la commande suivante : + +`npx hardhat test --network hardhat` + +```javascript +$ npx hardhat test --network hardhat + + + Storage + Test store function + ✔ should work properly + ✔ should throw + + + 2 passing (1s) +``` + +## Déploiement et interaction avec le contrat + +Hardhat facilite l'utilisation de la bibliothèque `ethers.js` pour déployer et interagir avec nos contrats intelligents. Créez un nouveau fichier appelé `deploy-and-call.js` dans le dossier scripts avec le code suivant : + +```javascript +// Nous importons explicitement l'environnement d'exécution de Hardhat ici. Cela est optionnel +// mais utile pour exécuter le script de manière autonome via `node