This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_1820 [2020/11/13 02:21] nick ↷ Links adapted because of a move operation |
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_1820 [2022/02/03 20:15] (current) 62.92.37.226 ↷ Links adapted because of a move operation |
||
---|---|---|---|
Line 18: | Line 18: | ||
=== Simple Summary === | === Simple Summary === | ||
- | : //This standard defines a universal registry smart contract where any address (contract or regular account) can register which interface it supports and which smart contract is responsible for its implementation.// | + | : //This standard defines a universal registry [[dido:public:ra:xapend:xapend.a_glossary:s:smart_contract|smart contract]] where any address (contract or regular account) can register which [[dido:public:ra:xapend:xapend.a_glossary:i:interface|interface]] it supports and which smart contract is responsible for its implementation.// |
: //This standard keeps backward compatibility with [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165| ERC165]].// | : //This standard keeps backward compatibility with [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165| ERC165]].// | ||
Line 31: | Line 31: | ||
: //Interfaces with zeroes (0) as the last 28 bytes are considered [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165|ERC165]] interfaces, and this registry SHALL forward the call to the contract to see if it implements the interface.// | : //Interfaces with zeroes (0) as the last 28 bytes are considered [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165|ERC165]] interfaces, and this registry SHALL forward the call to the contract to see if it implements the interface.// | ||
- | : //This contract also acts as an [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165|ERC165]] cache to reduce gas consumption.// | + | : //This contract also acts as an [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165|ERC165]] cache to reduce [[dido:public:ra:xapend:xapend.a_glossary:g:gas|gas]] consumption.// |
=== Motivation === | === Motivation === | ||
- | : //There have been different approaches to define pseudo-introspection in Ethereum. The first is [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165|ERC165]] which has the limitation that it cannot be used by regular accounts. The second attempt is [[ https://github.com/ethereum/EIPs/issues/672 |ERC672]] which uses reverse Ethereum Name Service (ENS)(( | + | : //There have been different approaches to define pseudo-introspection in [[dido:public:ra:xapend:xapend.a_glossary:e:ethereum|Ethereum]]. The first is [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:erc_0165|ERC165]] which has the limitation that it cannot be used by regular accounts. The second attempt is [[ https://github.com/ethereum/EIPs/issues/672 |ERC672]] which uses reverse Ethereum Name Service (ENS)(( |
- | Ethereum Name Servie, [[https://ens.domains/]] | + | Ethereum Name Service, [[https://ens.domains/]] |
)). Using reverse ENS has two issues. First, it is unnecessarily complicated, and second, ENS is still a centralized contract controlled by a ''multisig''. This ''multisig'' theoretically would be able to modify the system.// | )). Using reverse ENS has two issues. First, it is unnecessarily complicated, and second, ENS is still a centralized contract controlled by a ''multisig''. This ''multisig'' theoretically would be able to modify the system.// | ||