JavaScript-இல் எத்திரியம் தொகுதிச்சங்கிலியைப் பயன்படுத்த web3.js-ஐ அமைத்தல்
இந்த வழிகாட்டியில், எத்திரியம் தொகுதிச்சங்கிலியுடன் தொடர்புகொள்ள web3.js (புதிய தாவலில் திறக்கப்படும்)-ஐ எவ்வாறு தொடங்குவது என்பதைப் பார்ப்போம். தொகுதிச்சங்கிலியிலிருந்து தரவைப் படிக்க அல்லது பரிவர்த்தனைகளைச் செய்ய மற்றும் திறன் ஒப்பந்தங்களை (smart contracts) நிலைநிறுத்தவும் Web3.js-ஐ முன்பக்கம் (frontend) மற்றும் பின்பக்கம் (backend) இரண்டிலும் பயன்படுத்தலாம்.
முதல் படி, உங்கள் திட்டத்தில் web3.js-ஐச் சேர்ப்பதாகும். இதை ஒரு வலைப்பக்கத்தில் பயன்படுத்த, JSDeliver போன்ற CDN-ஐப் பயன்படுத்தி நிரலகத்தை நேரடியாக இறக்குமதி செய்யலாம்.
<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
உங்கள் பின்பக்கத்தில் அல்லது கட்டமைப்பைப் (build) பயன்படுத்தும் முன்பக்கத் திட்டத்தில் பயன்படுத்த நிரலகத்தை நிறுவ விரும்பினால், npm-ஐப் பயன்படுத்தி அதை நிறுவலாம்:
npm install web3 --save
பின்னர் Web3.js-ஐ ஒரு Node.js ஸ்கிரிப்ட் அல்லது Browserify முன்பக்கத் திட்டத்தில் இறக்குமதி செய்ய, நீங்கள் பின்வரும் JavaScript வரியைப் பயன்படுத்தலாம்:
const Web3 = require("web3")
இப்போது திட்டத்தில் நிரலகத்தைச் சேர்த்துள்ளதால், அதைத் துவக்க வேண்டும். உங்கள் திட்டம் தொகுதிச்சங்கிலியுடன் தொடர்புகொள்ளக்கூடியதாக இருக்க வேண்டும். பெரும்பாலான எத்திரியம் நிரலகங்கள் RPC அழைப்புகள் மூலம் ஒரு கணுவுடன் தொடர்புகொள்கின்றன. எங்கள் Web3 வழங்குநரைத் (provider) தொடங்க, வழங்குநரின் URL-ஐ ஆக்கியாக (constructor) அனுப்பி ஒரு Web3 நிகழ்வை (instance) உருவாக்குவோம். உங்கள் கணினியில் ஒரு கணு அல்லது ganache நிகழ்வு இயங்கிக்கொண்டிருந்தால் (புதிய தாவலில் திறக்கப்படும்) அது இப்படி இருக்கும்:
const web3 = new Web3("http://localhost:8545")
வழங்கப்பட்ட (hosted) கணுவை நீங்கள் நேரடியாக அணுக விரும்பினால், சேவையாக கணுக்கள் (nodes as a service) என்பதில் விருப்பங்களைக் கண்டறியலாம்.
const web3 = new Web3("https://cloudflare-eth.com")
எங்கள் Web3 நிகழ்வைச் சரியாக உள்ளமைத்துள்ளோமா என்பதைச் சோதிக்க, getBlockNumber சார்பைப் (function) பயன்படுத்தி சமீபத்திய தொகுதி எண்ணைப் பெற முயற்சிப்போம். இந்தச் சார்பு ஒரு கால்பேக்கை (callback) அளவுருவாக ஏற்றுக்கொண்டு, தொகுதி எண்ணை ஒரு முழு எண்ணாக (integer) வழங்குகிறது.
var Web3 = require("web3")
const web3 = new Web3("https://cloudflare-eth.com")
web3.eth.getBlockNumber(function (error, result) {
console.log(result)
})
இந்த நிரலை நீங்கள் இயக்கினால், அது சமீபத்திய தொகுதி எண்ணை அச்சிடும்: அதாவது தொகுதிச்சங்கிலியின் உச்சி. உங்கள் குறியீட்டில் கால்பேக்குகள் பின்னப்படுவதைத் (nesting) தவிர்க்க, நீங்கள் await/async சார்பு அழைப்புகளையும் பயன்படுத்தலாம்:
async function getBlockNumber() {
const latestBlockNumber = await web3.eth.getBlockNumber()
console.log(latestBlockNumber)
return latestBlockNumber
}
getBlockNumber()
Web3 நிகழ்வில் கிடைக்கும் அனைத்துச் சார்புகளையும் அதிகாரப்பூர்வ web3.js ஆவணத்தில் (புதிய தாவலில் திறக்கப்படும்) நீங்கள் காணலாம்.
பெரும்பாலான Web3 நிரலகங்கள் ஒத்திசைவற்றவை (asynchronous), ஏனெனில் பின்னணியில் நிரலகம் கணுவிற்கு ஜேசன்-ஆர்பிசி அழைப்புகளைச் செய்கிறது, அது முடிவைத் திருப்பி அனுப்புகிறது.
நீங்கள் உலாவியில் (browser) வேலை செய்கிறீர்கள் என்றால், சில பணப்பைகள் நேரடியாக ஒரு Web3 நிகழ்வை உட்செலுத்துகின்றன, மேலும் பரிவர்த்தனைகளைச் செய்ய பயனரின் எத்திரியம் முகவரியுடன் தொடர்புகொள்ள நீங்கள் திட்டமிட்டால், முடிந்தவரை அதைப் பயன்படுத்த முயற்சிக்க வேண்டும்.
மெட்டாமேஸ்க் பணப்பை உள்ளதா என்பதைக் கண்டறிந்து, அது இருந்தால் அதை இயக்க முயற்சிப்பதற்கான குறியீட்டுத் துணுக்கு (snippet) இங்கே உள்ளது. இது பின்னர் பயனரின் இருப்பைப் படிக்க உங்களை அனுமதிக்கும், மேலும் எத்திரியம் தொகுதிச்சங்கிலியில் நீங்கள் அவர்களைச் செய்ய வைக்க விரும்பும் பரிவர்த்தனைகளைச் சரிபார்க்க அவர்களுக்கு உதவும்:
if (window.ethereum != null) {
state.web3 = new Web3(window.ethereum)
try {
// தேவைப்பட்டால் கணக்கு அணுகலைக் கோரவும்
await window.ethereum.enable()
// கணக்குகள் இப்போது வெளிப்படுத்தப்பட்டுள்ளன
} catch (error) {
// பயனர் கணக்கு அணுகலை மறுத்துவிட்டார்...
}
}
web3.js-க்கு மாற்றாக Ethers.js (புதிய தாவலில் திறக்கப்படும்) போன்றவையும் உள்ளன, மேலும் அவை பொதுவாகப் பயன்படுத்தப்படுகின்றன. அடுத்த வழிகாட்டியில் தொகுதிச்சங்கிலியில் புதிதாக வரும் தொகுதிகளை எவ்வாறு எளிதாகக் கவனிப்பது மற்றும் அவற்றில் என்ன உள்ளன என்பதைப் பார்ப்பது (புதிய தாவலில் திறக்கப்படும்) எப்படிக் காண்போம்.