Sopimusten kääntäminen
Koontiversion artefaktit.
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 compileHardhat lataa oikean solc-version automaattisesti, joten kääntäjää ei tarvitse asentaa itse.
npx hardhat compileSolidity-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 cleanTä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 cleanKää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- taipure-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 --forceTämä on hyödyllistä, jos muutat kääntäjän asetuksia, joita inkrementaalinen välimuisti ei ehkä havaitse itsenäisesti.
npx hardhat compile --forcePikatarkistus
Testaa ymmärryksesi Hardhat-käännöksistä.
Kertaus
Opit, miten Hardhat kääntää sopimuksia.
npx hardhat compilekokoaa kaikki sopimukset ja lataa oikean solc-version.- Artefaktit (ABI + tavukoodi) tallennetaan kansioon
artifacts/; inkrementaaliset koonnit käyttävät kansiotacache/. npx hardhat cleanpoistaa vanhentuneet tulosteet.- Optimoija ja useat kääntäjäversiot määritetään tiedostossa
hardhat.config.js. - Korjaa varoitukset aina — ne paljastavat usein virheitä.
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
- Hardhatin määritys
- Sopimusten kääntäminen
- Skriptit ja tehtävät
- Paikallisverkko ja haarauttaminen