Embedded vs Linked Libraries
Embedded library
An embedded library is a library that contains only internal functions.
If a smart contract is consuming a library which have only internal functions, then the EVM simply embeds the library into the contract (hardcoded into contract at compile time).
Instead of using
delegatecall
to call a function, it simply usesJUMP
statement (normal method call). There is no need to separately deploy library in this scenario.
Linked Library
A linked library is a library that contains public or external functions.
The library needs to be deployed as a separate contract, and a unique address will be generated for it upon deployment.
This address needs to be linked with calling contract.
Last updated