Ruka hadi kwenye maudhui makuu
Change page

ERC-223 ishara kiwango

Ukurasa ulisasishwa mwisho: 6 Septemba 2025

Utangulizi

ERC-223 ni nini?

ERC-223 ni kiwango kwa ishara badilisha, sawa na kiwango ERC-20. Tofauti kuu ni kwamba ERC-223 hufafanua si tu ishara API lakini pia hoja kwa ajili ya kuhamisha ishara kutoka wa tuma kwa mpokeaji. Anzisha mfano wa mawasiliano ambayo kuruhusu uhamisho wa ishara shughulika kwa upande wa mpokeaji.

Tofauti kutoka ERC-20

ERC-223 shughulika baadhi ya mapungufu ya ERC-20 na kuanzisha njia mpya ya mwingiliano kati ya mkataba ishara na mkataba ambayo inaweza kupokea ishara. Kuna jambo machache ambayo inawezekana na ERC-223 lakini si na ERC-20:

  • Usimamizi wa uhamisho wa ishara kwa upande wa mpokeaji: Wapokeaji wanaweza kugundua kuwa ishara ya ERC-223 imewekwa.
  • Kukataliwa kwa ishara vibaya walio tuma: Ikiwa mtumiaji tuma ishara za ERC-223 kwa mkataba ambao hakuna kupokea ishara, mkataba unaweza kukataa shughuli hiyo, kuzuia kupoteza wa ishara.
  • Metadata katika uhamisho: ERC-223 ishara inaweza ni pamoja na metadata, kuruhusu taarifa arbitrary kuwa masharti ya ishara shughuli.

Mahitaji ya awali

Mwili

ERC-223 ni ishara ya kiwango ambacho kutekeleza API kwa ishara ndani ya mikataba erevu. Pia kutangaza API kwa ajili ya mikataba ambayo kuhitaji kupokea ERC-223 ishara. Mikataba ambayo haina msaada ERC-223 mpokeaji API haiwezi kupokea ERC-223 ishara, kuzuia makosa ya mtumiaji.

Kama mkataba erevu kutekeleza mbinu kufuatia na matukio inaweza kuitwa ERC-223 sambamba ishara mkataba. Mara kupelekwa, ni itakuwa na jukumu la kufuatilia ishara iliyoundwa kwenye Ethereum.

Mkataba si wajibu wa kuwa na kazi hizi tu na muumba unaweza kuongeza kipengele kingine chochote kutoka viwango vya ishara tofauti na mkataba huu. Kwa mfano, kubali na kuhamisha Kutoka kazi si sehemu ya kiwango ERC-223 lakini kazi hizi inaweza kutekelezwa kama ni lazima.

Kutoka EIP-223 (opens in a new tab):

Mbinu

ERC-223 ishara lazima kutekeleza mbinu kufuatia:

function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transfer(address _to, uint256 _value, bytes calldata _data) public returns (bool success)

Mkataba ambayo inadhaniwa kupokea ERC-223 ishara lazima kutekeleza mbinu kufuatia:

function tokenReceived(address _from, uint _value, bytes calldata _data)

Kama ERC-223 ishara ni alimtuma kwa mkataba kwamba haina kutekeleza ishara pokewa(..) kazi basi uhamisho lazima kushindwa na ishara lazima si kuhamisha kutoka usawa wa alio tuma.

Matukio

event Transfer(address indexed _from, address indexed _to, uint256 _value, bytes calldata _data)

Mfano

API ya ERC-223 ishara ni sawa na ile ya ERC-20, hivyo kutoka UI maendeleo mtazamo hakuna tofauti. Tofauti pekee hapa ni kwamba ERC-223 ishara haiwezi kuwa na 'kubali' + 'uhamisho kutoka' kazi kama haya ni hiari kwa ajili ya kiwango hiki.

Mifano ya Solidity

Mfano ufuatao unaonyesha jinsi ya msingi ERC-223 ishara mkataba kazi:

Sasa tunataka mkataba mwingine kukubali amana ya ishara ya A kwa kudhani kwamba ishara ya A ni ishara ya ERC-223. Mkataba lazima kukubali tu ishara A na kukataa ishara nyingine yoyote. Wakati mkataba anapata ishara A ni lazima kutoa tukio la 'amana()' na kuongeza thamani ya ndani 'amana' kutofautiana.

Hapa ni nambari:

Maswali yanayoulizwa mara kwa mara

Nini kutokea kama sisi tuma baadhi ya ishara B kwa mkataba?

Mkataba utashindwa, na uhamisho wa ishara hakuna kutokea. Ishara kurudi kwenye anwani ya aliye tuma.

Tunaweza aje kuweka amana kwa mkataba huu?

Wito uhamisho (anwani,uint256) au uhamisho (anwani,uint256,bytes) kazi ya ERC-223 ishara, kutaja anwani ya Mpokeaji Mkataba.

Nini kutokea kama sisi kuhamisha ERC-20 ishara ya mkataba huu?

Kama ishara ERC-20 ni alimtuma kwa Mpokeaji mkataba, ishara itakuwa na uhamisho, lakini uhamisho itakuwa si kujulikana (hakuna amana() tukio itakuwa ya kutolewa, na amana thamani hakuna badiliko). Hakuna kwenye ERC-20 amana haiwezi kuchuja au kuzuia.

Nini kama tunataka kutekeleza baadhi ya kazi baada ya amana ishara ni kukamilika?

Kuna njia nyingi za kufanya hivyo. Katika mfano huu kufuata njia ambayo kufanya ERC-223 uhamisho sawa na uhamisho Ether:

Wakati Mpokeaji Mkataba atapokea ERC-223 ishara ya mkataba elekez kazi mwandiko wa fumbo kama _takwimukigezo ya shughuli ishara, sawa na jinsi shughuli Ether kanuni wito kazi kama shughuli takwimu. Soma sehemu ya data kwa habari zaidi.

Katika mfano hapo juu ERC-223 ishara lazima uhamisho kwa anwani ya Mpokeaji Mkataba na uhamisho(anwani,uin256,bytes wito takwimu _takwimu) kazi. Kama takwimu kigezo itakuwa 0xc2985578 (saini ya foo() kazi) basi kazi foo() itaitwa baada ya amana ishara ni kupokea na tukio Foo() itakuwa kuacha.

Vigezo inaweza mwandiko wa fumbo katika takwimu ya uhamisho ishara kama, kwa mfano tunaweza wito bar () kazi na 12345 thamani kwa _baadhi Idadi . Katika kesi hii takwimu lazima 0x0423a13200000000000000000000000000000000000000000000000000000000000004d2' ambapo '0x0423a132 ni saini ya kazi ya bar(uint256) na 00000000000000000000000000000000000000000000000000000000000004d2 ni 12345 kama uint256.

Vizuizi

Wakati ERC-223 kushughulikia suala kadhaa kupatikana katika kiwango ERC-20, ni si bila mapungufu yake mwenyewe:

  • Kupitishwa na tangamano: ERC-223 bado haijatumiwa sana, ambayo inaweza kupunguza tangamano wao na zana na majukwaa yaliyomo.
  • Nyuma tangamano: ERC-223 si nyuma sambamba na ERC-20, maana yake ni kwamba kuwa ERC-20 mikataba na zana si kazi na ERC-223 ishara bila marekebisho.
  • Gharama za gesi: ukaguzi wa ziada na utendaji katika uhamisho wa ERC-223 unaweza kusababisha gharama za juu za gesi ikilinganishwa na shughuli za ERC-20.

Masomo zaidi

Je, makala haya yalikuwa ya msaada?