Definicija
ABI encoding je mehanizam koji pretvara ljudski čitljive potpise funkcija i strukturirane podatke u niskonivojsku binarnu reprezentaciju definisanu Application Binary Interface-om (ABI). On tačno određuje kako su argumenti, povratne vrednosti i složeni tipovi podataka raspoređeni u bajtovima, tako da ih smart contract-i i eksterni pozivaoci tumače na dosledan način. Prateći ABI pravila, različiti alati, wallet-i i aplikacije mogu da komuniciraju sa istim contract-om bez nejasnoća u vezi sa formatiranjem podataka.
Ovo kodiranje je ključno za pozive contract-a, event log-ove i formate skladištenja podataka na mnogim platformama za smart contract-e. Ono obezbeđuje da, kada se funkcija pozove, contract dobije svoje parametre u predvidivom redosledu i veličini, i da se vraćene vrednosti ispravno dekodiraju. Bez ABI encoding-a, on-chain i off-chain komponente ne bi imale zajednički jezik za razmenu strukturiranih podataka sa smart contract-ima.
Kontekst i upotreba
ABI encoding je obično definisan zajedno sa ABI specifikacijom, koja navodi funkcije, event-e i tipove podataka koje smart contract izlaže. Kada transakcija cilja funkciju contract-a, call data polje se konstruiše korišćenjem ABI encoding-a kako bi contract mogao da identifikuje funkciju i parsira njene ulaze. Ista pravila važe i pri dekodiranju event log-ova ili tumačenju podataka vraćenih iz izvršavanja contract-a.
U praksi, ABI encoding deluje kao bridge između jezika višeg nivoa i niskonivojske virtuelne mašine koja izvršava smart contract-e. On omogućava da on-chain logika i off-chain aplikacije dele zajednički, deterministički format podataka, smanjujući greške izazvane neusaglašenim tipovima ili redosledom. Ovaj termin je usko povezan sa samim ABI-jem, koji definiše šemu koje mehanizam kodiranja mora da se pridržava.