Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

84
Views
Interactuar con múltiples contratos usando Web3.js

Antecedentes: Hola, tengo varios contratos de solidez que están separados en un solo archivo cada uno. Tiene 1 contrato base y los demás son contratos derivados como:

 // BaseContract.sol contract BaseContract { ... }
 // DerivedContract.sol ... import "./BaseContract.sol"; contract DerivedContract is BaseContract{ ... }

Yo uso la versión ^0.8.0. Compilé los contratos, por lo que tengo un archivo .json múltiple que contiene ABI y funciones para cada contrato. También uso el cuadro de reacción de trufa, tiene un archivo getWeb3.js (que es solo un archivo de inicio web3 simple)

Problema: dado que mis contratos están separados en varios archivos, ¿cómo puedo instanciar la instancia del contrato con web3? ¿Debo solo instanciar el BaseContract? ¿O debería instanciar solo el contrato hoja (ya que es un contrato derivado con la funcionalidad de todos los contratos principales)? ¿O debería instanciar cada contrato? O tal vez... ¿debería volver a empaquetar cada archivo de contrato en un solo archivo con solo 1 contrato?

¿Y cómo puedo lograr eso? A continuación se muestra mi método para instanciar un solo contrato.

 ... import SimpleStorageContract from "./contracts/Storage.json"; ... componentDidMount = async () => { try { // Get network provider and web3 instance. const web3 = await getWeb3(); // Use web3 to get the user's accounts. const accounts = await web3.eth.getAccounts(); // Get the contract instance. const networkId = await web3.eth.net.getId(); const deployedNetwork = SimpleStorageContract.networks[networkId]; const instance = new web3.eth.Contract(SimpleStorageContract.abi,deployedNetwork && deployedNetwork.address,); // Set web3, accounts, and contract to the state, and then proceed with an // example of interacting with the contract's methods. this.setState({ web3, accounts, contract: instance }); } catch (error) { // Catch any errors for any of the above operations. alert(`Failed to load web3, accounts, or contract. Check console for details.`); console.error(error); } };
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!