முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
Change page

ஜாவாஸ்கிரிப்ட் API நூலகங்கள்

பக்கம் கடைசியாகப் புதுப்பிக்கப்பட்டது: 25 பிப்ரவரி, 2026

ஒரு வலைப் பயன்பாடு (web app) எத்தேரியம் பிளாக்செயினுடன் தொடர்பு கொள்ள (அதாவது, பிளாக்செயின் தரவைப் படிக்க மற்றும்/அல்லது நெட்வொர்க்கிற்கு பரிவர்த்தனைகளை அனுப்ப), அது ஒரு எத்தேரியம் நோடுடன் (node) இணைக்கப்பட வேண்டும்.

இந்த நோக்கத்திற்காக, ஒவ்வொரு எத்தேரியம் கிளையன்ட்டும் JSON-RPC விவரக்குறிப்பைச் செயல்படுத்துகிறது, எனவே பயன்பாடுகள் நம்பியிருக்கக்கூடிய ஒரு சீரான முறைகள் உள்ளன.

எத்தேரியம் நோடுடன் இணைக்க நீங்கள் ஜாவாஸ்கிரிப்டைப் பயன்படுத்த விரும்பினால், வெனிலா ஜாவாஸ்கிரிப்டைப் (vanilla JavaScript) பயன்படுத்த முடியும், ஆனால் இதை மிகவும் எளிதாக்கும் பல வசதியான நூலகங்கள் சுற்றுச்சூழல் அமைப்பில் உள்ளன. இந்த நூலகங்கள் மூலம், டெவலப்பர்கள் எத்தேரியத்துடன் தொடர்பு கொள்ளும் JSON-RPC கோரிக்கைகளை (பின்னணியில்) தொடங்குவதற்கு உள்ளுணர்வுள்ள, ஒரு வரி முறைகளை எழுதலாம்.

தி மெர்ஜ் (The Merge) முதல், ஒரு நோடை இயக்க இரண்டு இணைக்கப்பட்ட எத்தேரியம் மென்பொருள்கள் - ஒரு எக்ஸிகியூஷன் கிளையன்ட் (execution client) மற்றும் ஒரு கன்சென்சஸ் கிளையன்ட் (consensus client) - தேவை என்பதை நினைவில் கொள்ளவும். உங்கள் நோடில் எக்ஸிகியூஷன் மற்றும் கன்சென்சஸ் கிளையன்ட் இரண்டும் இருப்பதை உறுதிசெய்யவும். உங்கள் நோடு உங்கள் உள்ளூர் கணினியில் இல்லை என்றால் (எ.கா., உங்கள் நோடு AWS இன்ஸ்டன்ஸில் இயங்குகிறது) அதற்கேற்ப டுடோரியலில் உள்ள IP முகவரிகளைப் புதுப்பிக்கவும். மேலும் தகவலுக்கு, ஒரு நோடை இயக்குவது குறித்த எங்கள் பக்கத்தைப் பார்க்கவும்.

முன்நிபந்தனைகள்

ஜாவாஸ்கிரிப்டைப் புரிந்துகொள்வதோடு, எத்தேரியம் ஸ்டாக் மற்றும் எத்தேரியம் கிளையன்ட்களைப் புரிந்துகொள்வதும் உதவியாக இருக்கும்.

நூலகத்தை ஏன் பயன்படுத்த வேண்டும்?

இந்த நூலகங்கள் எத்தேரியம் நோடுடன் நேரடியாகத் தொடர்புகொள்வதில் உள்ள சிக்கல்களைப் பெருமளவு குறைக்கின்றன. அவை பயன்பாட்டுச் செயல்பாடுகளையும் (utility functions) வழங்குகின்றன (எ.கா., ETH-ஐ Gwei ஆக மாற்றுவது), எனவே ஒரு டெவலப்பராக நீங்கள் எத்தேரியம் கிளையன்ட்களின் சிக்கல்களைக் கையாள்வதில் குறைந்த நேரத்தையும், உங்கள் பயன்பாட்டின் தனித்துவமான செயல்பாட்டில் அதிக நேரத்தையும் செலவிடலாம்.

நூலகத்தின் அம்சங்கள்

எத்தேரியம் நோடுகளுடன் இணைத்தல்

புரொவைடர்களைப் (providers) பயன்படுத்தி, இந்த நூலகங்கள் எத்தேரியத்துடன் இணைக்கவும் அதன் தரவைப் படிக்கவும் உங்களை அனுமதிக்கின்றன, அது JSON-RPC, INFURA, Etherscan, Alchemy அல்லது MetaMask வழியாக இருந்தாலும் சரி.

எச்சரிக்கை: Web3.js மார்ச் 4, 2025 அன்று காப்பகப்படுத்தப்பட்டது. அறிவிப்பைப் படிக்கவும் (opens in a new tab). புதிய திட்டங்களுக்கு ethers.js (opens in a new tab) அல்லது viem (opens in a new tab) போன்ற மாற்று நூலகங்களைப் பயன்படுத்துவதைக் கருத்தில் கொள்ளவும்.

Ethers எடுத்துக்காட்டு

1// ஒரு BrowserProvider ஒரு நிலையான Web3 provider-ஐ உள்ளடக்கியுள்ளது, இது
2// MetaMask ஒவ்வொரு பக்கத்திலும் window.ethereum ஆக உட்செலுத்துவதாகும்
3const provider = new ethers.BrowserProvider(window.ethereum)
4
5// MetaMask செருகுநிரல் பரிவர்த்தனைகளில் கையொப்பமிடவும் அனுமதிக்கிறது
6// ஈதரை (ether) அனுப்பவும் மற்றும் பிளாக்செயினுக்குள் நிலையை (state) மாற்ற பணம் செலுத்தவும்.
7// இதற்கு, நமக்கு கணக்கு கையொப்பமிடுபவர் (account signer) தேவை...
8const signer = provider.getSigner()

Web3js எடுத்துக்காட்டு

1var web3 = new Web3("http://localhost:8545")
2// அல்லது
3var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))
4
5// provider-ஐ மாற்றவும்
6web3.setProvider("ws://localhost:8546")
7// அல்லது
8web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546"))
9
10// node.js இல் IPC provider-ஐப் பயன்படுத்துதல்
11var net = require("net")
12var web3 = new Web3("/Users/myuser/Library/Ethereum/geth.ipc", net) // mac os பாதை
13// அல்லது
14var web3 = new Web3(
15 new Web3.providers.IpcProvider("/Users/myuser/Library/Ethereum/geth.ipc", net)
16) // mac os பாதை
17// windows-இல் பாதை: "\\\\.\\pipe\\geth.ipc"
18// linux-இல் பாதை: "/users/myuser/.ethereum/geth.ipc"
அனைத்தையும் காட்டு

அமைக்கப்பட்டதும், பிளாக்செயினில் பின்வருவனவற்றைக் கோர முடியும்:

  • பிளாக் எண்கள் (block numbers)
  • கேஸ் மதிப்பீடுகள் (gas estimates)
  • ஸ்மார்ட் ஒப்பந்த நிகழ்வுகள் (smart contract events)
  • நெட்வொர்க் ஐடி (network id)
  • மற்றும் பல...

வாலட் செயல்பாடு

இந்த நூலகங்கள் வாலட்களை உருவாக்கவும், திறவுகோல்களை (keys) நிர்வகிக்கவும் மற்றும் பரிவர்த்தனைகளில் கையொப்பமிடவும் உங்களுக்குச் செயல்பாட்டை வழங்குகின்றன.

Ethers-லிருந்து ஒரு எடுத்துக்காட்டு இங்கே

1// ஒரு நிமோனிக்கிலிருந்து (mnemonic) வாலட் நிகழ்வை உருவாக்கவும்...
2mnemonic =
3 "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol"
4walletMnemonic = Wallet.fromPhrase(mnemonic)
5
6// ...அல்லது ஒரு தனிப்பட்ட திறவுகோலிலிருந்து (private key)
7walletPrivateKey = new Wallet(walletMnemonic.privateKey)
8
9walletMnemonic.address === walletPrivateKey.address
10// true
11
12// Signer API-இன் படி முகவரி ஒரு Promise ஆக
13walletMnemonic.getAddress()
14// { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' }
15
16// ஒரு வாலட் முகவரி ஒத்திசைவாகவும் (synchronously) கிடைக்கிறது
17walletMnemonic.address
18// '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1'
19
20// உள் கிரிப்டோகிராஃபிக் கூறுகள்
21walletMnemonic.privateKey
22// '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db'
23walletMnemonic.publicKey
24// '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64'
25
26// வாலட் நிமோனிக் (mnemonic)
27walletMnemonic.mnemonic
28// {
29// locale: 'en',
30// path: 'm/44\'/60\'/0\'/0/0',
31// phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol'
32// }
33
34// குறிப்பு: தனிப்பட்ட திறவுகோலால் (private key) உருவாக்கப்பட்ட வாலட்டில்
35// நிமோனிக் இருக்காது (derivation அதைத் தடுக்கிறது)
36walletPrivateKey.mnemonic
37// null
38
39// ஒரு செய்தியில் கையொப்பமிடுதல்
40walletMnemonic.signMessage("Hello World")
41// { Promise: '0x14280e5885a19f60e536de50097e96e3738c7acae4e9e62d67272d794b8127d31c03d9cd59781d4ee31fb4e1b893bd9b020ec67dfa65cfb51e2bdadbb1de26d91c' }
42
43tx = {
44 to: "0x8ba1f109551bD432803012645Ac136ddd64DBA72",
45 value: utils.parseEther("1.0"),
46}
47
48// ஒரு பரிவர்த்தனையில் கையொப்பமிடுதல்
49walletMnemonic.signTransaction(tx)
50// { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' }
51
52// connect முறையானது (method) புதிய நிகழ்வை (instance) வழங்குகிறது, இது
53// provider-உடன் இணைக்கப்பட்ட வாலட் ஆகும்
54wallet = walletMnemonic.connect(provider)
55
56// நெட்வொர்க்கை வினவுதல் (Querying)
57wallet.getBalance()
58// { Promise: { BigNumber: "42" } }
59wallet.getTransactionCount()
60// { Promise: 0 }
61
62// ஈதரை (ether) அனுப்புதல்
63wallet.sendTransaction(tx)
அனைத்தையும் காட்டு

முழு ஆவணங்களையும் படிக்கவும் (opens in a new tab)

அமைக்கப்பட்டதும் உங்களால் பின்வருவனவற்றைச் செய்ய முடியும்:

  • கணக்குகளை உருவாக்குதல்
  • பரிவர்த்தனைகளை அனுப்புதல்
  • பரிவர்த்தனைகளில் கையொப்பமிடுதல்
  • மற்றும் பல...

ஸ்மார்ட் ஒப்பந்த செயல்பாடுகளுடன் தொடர்புகொள்ளுதல்

தொகுக்கப்பட்ட ஒப்பந்தத்தின் அப்ளிகேஷன் பைனரி இன்டர்ஃபேஸை (ABI) படிப்பதன் மூலம் ஸ்மார்ட் ஒப்பந்த செயல்பாடுகளை அழைக்க ஜாவாஸ்கிரிப்ட் கிளையன்ட் நூலகங்கள் உங்கள் பயன்பாட்டை அனுமதிக்கின்றன.

ABI அடிப்படையில் ஒப்பந்தத்தின் செயல்பாடுகளை JSON வடிவத்தில் விளக்குகிறது மற்றும் அதை ஒரு சாதாரண ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் (object) போல பயன்படுத்த உங்களை அனுமதிக்கிறது.

எனவே பின்வரும் Solidity ஒப்பந்தம்:

1contract Test {
2 uint a;
3 address d = 0x12345678901234567890123456789012;
4
5 constructor(uint testInt) { a = testInt;}
6
7 event Event(uint indexed b, bytes32 c);
8
9 event Event2(uint indexed b, bytes32 c);
10
11 function foo(uint b, bytes32 c) returns(address) {
12 Event(b, c);
13 return d;
14 }
15}
அனைத்தையும் காட்டு

பின்வரும் JSON-ஐ உருவாக்கும்:

1[{
2 "type":"constructor",
3 "payable":false,
4 "stateMutability":"nonpayable"
5 "inputs":[{"name":"testInt","type":"uint256"}],
6 },{
7 "type":"function",
8 "name":"foo",
9 "constant":false,
10 "payable":false,
11 "stateMutability":"nonpayable",
12 "inputs":[{"name":"b","type":"uint256"}, {"name":"c","type":"bytes32"}],
13 "outputs":[{"name":"","type":"address"}]
14 },{
15 "type":"event",
16 "name":"Event",
17 "inputs":[{"indexed":true,"name":"b","type":"uint256"}, {"indexed":false,"name":"c","type":"bytes32"}],
18 "anonymous":false
19 },{
20 "type":"event",
21 "name":"Event2",
22 "inputs":[{"indexed":true,"name":"b","type":"uint256"},{"indexed":false,"name":"c","type":"bytes32"}],
23 "anonymous":false
24}]
அனைத்தையும் காட்டு

இதன் பொருள் உங்களால் முடியும்:

  • ஸ்மார்ட் ஒப்பந்தத்திற்கு ஒரு பரிவர்த்தனையை அனுப்பி அதன் முறையை (method) இயக்கலாம்
  • EVM-ல் இயக்கப்படும் போது ஒரு முறை செயல்படுத்துவதற்குத் தேவைப்படும் கேஸை மதிப்பிட அழைக்கலாம்
  • ஒரு ஒப்பந்தத்தை டெப்ளாய் (deploy) செய்யலாம்
  • மற்றும் பல...

பயன்பாட்டுச் செயல்பாடுகள்

பயன்பாட்டுச் செயல்பாடுகள் (Utility functions) எத்தேரியத்துடன் உருவாக்குவதை சற்று எளிதாக்கும் பயனுள்ள குறுக்குவழிகளை உங்களுக்கு வழங்குகின்றன.

ETH மதிப்புகள் இயல்பாகவே Wei-ல் இருக்கும். 1 ETH = 1,000,000,000,000,000,000 WEI – அதாவது நீங்கள் நிறைய எண்களைக் கையாளுகிறீர்கள்! web3.utils.toWei உங்களுக்காக ஈதரை Wei ஆக மாற்றுகிறது.

மேலும் ethers-ல் இது இப்படி இருக்கும்:

1// ஒரு கணக்கின் இருப்பைப் பெறுதல் (முகவரி அல்லது ENS பெயர் மூலம்)
2balance = await provider.getBalance("ethers.eth")
3// { BigNumber: "2337132817842795605" }
4
5// பயனருக்காக வெளியீட்டை (output) நீங்கள் அடிக்கடி வடிவமைக்க (format) வேண்டியிருக்கும்
6// அவர்கள் மதிப்புகளை (wei-க்கு பதிலாக) ஈதரில் பார்க்க விரும்புவார்கள்
7ethers.utils.formatEther(balance)
8// '2.337132817842795605'

கிடைக்கும் நூலகங்கள்

Web3.js - எத்தேரியம் ஜாவாஸ்கிரிப்ட் API.

Ethers.js - ஜாவாஸ்கிரிப்ட் மற்றும் டைப்ஸ்கிரிப்ட்டில் முழுமையான எத்தேரியம் வாலட் செயலாக்கம் மற்றும் பயன்பாடுகள்.

The Graph - எத்தேரியம் மற்றும் IPFS தரவை அட்டவணைப்படுத்துவதற்கும் GraphQL-ஐப் பயன்படுத்தி அதைக் கோருவதற்குமான ஒரு நெறிமுறை.

Alchemy SDK - மேம்படுத்தப்பட்ட API-களுடன் Ethers.js-ஐச் சுற்றியுள்ள ரேப்பர் (Wrapper).

viem - எத்தேரியத்திற்கான டைப்ஸ்கிரிப்ட் இன்டர்ஃபேஸ்.

Codex - டஜன் கணக்கான செயின்களில் நிகழ்நேர, செறிவூட்டப்பட்ட பிளாக்செயின் தரவு API.

Drift - உள்ளமைக்கப்பட்ட கேச்சிங் (caching), ஹூக்ஸ் (hooks) மற்றும் சோதனை மாக்குகளுடன் (test mocks) கூடிய டைப்ஸ்கிரிப்ட் மெட்டா-நூலகம்.

மேலும் படிக்க

உங்களுக்கு உதவிய சமூக வளம் பற்றித் தெரியுமா? இந்தப் பக்கத்தைத் திருத்தி அதைச் சேர்க்கவும்!

டுடோரியல்கள்: எத்தேரியத்தில் ஜாவாஸ்கிரிப்ட் API-கள் & வெப்சாக்கெட்டுகள்

இந்தக் கட்டுரை பயனுள்ளதாக இருந்ததா?