Web3:n ja DApp-sovellusten kehityksen perusteet · Oppitunti

Sopimusten kääntäminen

Koontiversion artefaktit.

Oppitunti 2/413 vaihetta

Sopimusten kääntäminen on ilmainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.

Miksi kääntää

Solidity-lähdekoodia ei voi suorittaa suoraan EVM:ssä. Kääntäjä muuntaa .sol-tiedostot tavukoodiksi ja ABI:ksi, joita työkalut ja asiakkaat käyttävät.

  • Tavukoodi — ketjuun julkaistavat matalan tason ohjeet.
  • ABI — JSON-rajapinta, joka kuvaa funktioita ja tapahtumia.

Käännöstehtävä

Hardhat kääntää kaikki contracts/-kansion sopimukset yhdellä komennolla:

npx hardhat compile

Hardhat lataa oikean solc-version automaattisesti, joten kääntäjää ei tarvitse asentaa itse.

npx hardhat compile

Solidity-version valitseminen

Kääntäjän versio määritetään tiedostossa hardhat.config.js, ja sen on täytettävä sopimustesi pragma-ehto:

module.exports = { solidity: "0.8.24", };

Jos sopimuksesi sisältää pragma solidity ^0.8.24;, määritetyn version on oltava yhteensopiva sen kanssa, tai käännös epäonnistuu.

module.exports = {
  solidity: "0.8.24",
};

Koontitulosteet

Käännöksen jälkeen Hardhat kirjoittaa tulosteen kansioon artifacts/. Jokainen sopimus saa JSON-tiedoston, joka sisältää:

  • abi — sovelluksen binäärirajapinnan.
  • bytecode — julkaistavan tavukoodin.
  • deployedBytecode — ajonaikaisen tavukoodin.

ethers.js lataa nämä tulosteet voidakseen käsitellä sopimustasi.

Välimuistikansio

Hardhat pitää cache/-kansiota seuratakseen, mikä muuttui. Seuraavalla käännöskerralla käännetään uudelleen vain muokatut tiedostot.

Tämä inkrementaalinen käännös nopeuttaa suurten projektien koontia. Jos jokin vaikuttaa vanhentuneelta, voit pakottaa uuden koonnin.

Koontitulosten tyhjentäminen

Poista välimuisti ja luodut tiedostot suorittamalla clean-tehtävä:

npx hardhat clean

Tämä poistaa artifacts/- ja cache/-kansiot. Käytä sitä, jos epäilet vanhentuneen tulosteen aiheuttavan poikkeavaa toimintaa, ja käännä sitten projekti uudelleen.

npx hardhat clean

Kääntäjän optimointi

Optimoija pienentää kaasukustannuksia ja tavukoodin kokoa. Ota se käyttöön määrityksissä:

module.exports = { solidity: { version: "0.8.24", settings: { optimizer: { enabled: true, runs: 200 }, }, }, };

Suurempi runs-arvo optimoi usein toistuvia kutsuja varten; pienempi arvo optimoi julkaistavan koodin kokoa varten.

module.exports = {
  solidity: {
    version: "0.8.24",
    settings: {
      optimizer: { enabled: true, runs: 200 },
    },
  },
};

Useat kääntäjäversiot

Jos eri sopimukset tarvitsevat eri Solidity-versioita, luettele useita kääntäjiä:

module.exports = { solidity: { compilers: [ { version: "0.8.24" }, { version: "0.7.6" }, ], }, };

Hardhat valitsee kullekin tiedostolle sopivan kääntäjän sen pragma-määrityksen perusteella.

module.exports = {
  solidity: {
    compilers: [
      { version: "0.8.24" },
      { version: "0.7.6" },
    ],
  },
};

Kääntäjän varoitusten lukeminen

Kääntäjä ilmoittaa virheistä (jotka keskeyttävät koonnin) ja varoituksista (jotka eivät keskeytä sitä). Yleisiä varoituksia ovat:

  • Käyttämättömät paikalliset muuttujat.
  • Peitetyt määritykset.
  • Funktiot, jotka voitaisiin merkitä view- tai pure-määritteellä.

Suhtaudu varoituksiin vakavasti — ne viittaavat usein todellisiin virheisiin.

ABIn käyttäminen myöhemmin

Käännöksen jälkeen tuot artefaktin skripteihin tai testeihin ja liität sen sopimukseen:

const artifact = require("./artifacts/contracts/Greeter.sol/Greeter.json"); console.log(artifact.abi);

ethers.js:n kaltaiset työkalut käyttävät tätä ABI:a kutsujen oikeaan koodaukseen ja purkamiseen.

const artifact = require("./artifacts/contracts/Greeter.sol/Greeter.json");
console.log(artifact.abi);

Käännöksen pakottaminen uudelleen

Oletusarvoisesti Hardhat ohittaa tiedostot, jotka eivät ole muuttuneet. Rakenna kaikki uudelleen ilman tyhjentämistä käyttämällä force-lippua:

npx hardhat compile --force

Tämä on hyödyllistä, jos muutat kääntäjän asetuksia, joita inkrementaalinen välimuisti ei ehkä havaitse itsenäisesti.

npx hardhat compile --force

Pikatarkistus

Testaa ymmärryksesi Hardhat-käännöksistä.

Kertaus

Opit, miten Hardhat kääntää sopimuksia.

  • npx hardhat compile kokoaa kaikki sopimukset ja lataa oikean solc-version.
  • Artefaktit (ABI + tavukoodi) tallennetaan kansioon artifacts/; inkrementaaliset koonnit käyttävät kansiota cache/.
  • npx hardhat clean poistaa vanhentuneet tulosteet.
  • Optimoija ja useat kääntäjäversiot määritetään tiedostossa hardhat.config.js.
  • Korjaa varoitukset aina — ne paljastavat usein virheitä.
Aloita maksutta

Opi Web3:n ja DApp-sovellusten kehityksen perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
29
Oppitunnit
105

Usein kysytyt kysymykset

Onko oppitunti ”Sopimusten kääntäminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Sopimusten kääntäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Sopimusten kääntäminen”?

Koontiversion artefaktit. Harjoittelet Web3:n ja DApp-sovellusten kehityksen perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Web3:n ja DApp-sovellusten kehityksen perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Sopimusten kääntäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunnilla?

Kyllä. Jokainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Hardhatin määritys
  2. Sopimusten kääntäminen
  3. Skriptit ja tehtävät
  4. Paikallisverkko ja haarauttaminen
← Takaisin: Web3:n ja DApp-sovellusten kehityksen perusteet