Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

380
Visualizações
¿Qué hace el método de conexión en ethers.js?

Según la documentación de ethers.js:

contract.attach( direcciónONombre ) ⇒ Contrato

Devuelve una nueva instancia del Contrato adjunto a una nueva dirección. Esto es útil si hay varias copias similares o idénticas de un contrato en la red y desea interactuar con cada una de ellas.

Pero realmente no entiendo el uso de la misma. ¿Alguien puede explicarlo de una manera más fácil de seguir? Aquí hay un ejemplo de .attach en uso que se encuentra en el nivel "Compromiso" del desafío CTF DamnVulnerableDefi.

 this.oracle = await TrustfulOracleFactory.attach( await ( await TrustfulOracleInitializerFactory.deploy( sources, ['DVNFT', 'DVNFT', 'DVNFT'], [INITIAL_NFT_PRICE, INITIAL_NFT_PRICE, INITIAL_NFT_PRICE] ) ).oracle()

¿Qué está haciendo exactamente este código y por qué se necesita el método de conexión?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Alguien puede explicarlo de una manera más fácil de seguir?

Adjuntar crea una nueva instancia de contrato a partir de un contrato ya implementado y de una instancia existente (reutiliza el mismo ABI y firmante).

Esto es útil, por ejemplo, si tiene el mismo contrato implementado en diferentes cadenas de bloques, por lo que no necesitará volver a crear la instancia cuando el usuario cambie a la red.

O si tiene una fábrica de contratos que implementa el mismo contrato varias veces en la misma red, y en lugar de crear una instancia de cada uno de ellos, puede crearlos todos desde una sola instancia, por lo que no tiene que pasar por la molestia de especificar el archivo ABI y el firmante.

¿Qué está haciendo exactamente este código y por qué se necesita el método de conexión?

No soy un experto, ni estoy 100% seguro de lo que hace este código ya que no tengo ese código de contratos. Sin embargo, puedo especular lo siguiente.

 // Returns value of calling the oracle() method of the new contract instance. this.oracle = await TrustfulOracleFactory.attach( // waits for the deployment to finish ( kinda redundat here ). await ( // waits until the contract is deployed, this returns an address. // the values in .deploy(...) are values passed to the constructor of the contract. await TrustfulOracleInitializerFactory.deploy( sources, ['DVNFT', 'DVNFT', 'DVNFT'], [INITIAL_NFT_PRICE, INITIAL_NFT_PRICE, INITIAL_NFT_PRICE] // On the new returned instance, call method Oracle. )).oracle() //--------- Step by Step code --------------- // Deploys contract, returns address. let newContractAddress = await TrustfulOracleInitializerFactory.deploy( sources, ['DVNFT', 'DVNFT', 'DVNFT'], [INITIAL_NFT_PRICE, INITIAL_NFT_PRICE, INITIAL_NFT_PRICE] ); // Get instance from address and previusly created instance ( reuse of the same ABI as TrustfulOracleFactory ) let oracleInstance = await TrustfulOracleFactory.attach(newContractAddress); // Calls oracle method. this.oracle = await oracleInstance.oracle();

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda