Téigh ar aghaidh chuig an bpríomhábhar
Change page

ERC-1155 Caighdeán Ilchomhartha

Réamhrá

Comhéadan caighdeánach do chonarthaí a bhainistíonn cineálacha éagsúla comharthaí. Féadfar a áireamh i gconradh imlonnaithe aonair aon teaglam de chomharthaí inmhalartacha, de chomharthaí neamh-idirmhalartacha nó de chumraíochtaí eile (m.sh. comharthaí leath-idirmhalartacha).

Cad is brí le Caighdeán Ilchomhartha?

Is smaoineamh simplí é a fhéachann le comhéadan conartha cliste a chruthú a fhéadfaidh ionadaíocht agus rialú a dhéanamh ar líon ar bith de chineálacha comharthaí idirmhalartacha agus neamh-inmhalartacha. Ar an mbealach seo, is féidir le comhartha ERC-1155 na feidhmeanna céanna a dhéanamh le ERC-20 agus comhartha ERC-721, agus fiú an dá cheann ag an am céanna. Feabhsaíonn sé feidhmiúlacht na gcaighdeán ERC-20 agus ERC-721 araon, rud a fhágann go bhfuil sé níos éifeachtaí agus ag ceartú earráidí cur chun feidhme soiléir.

Tá cur síos iomlán ar an chomhartha ERC-1155 i EIP-1155(opens in a new tab).

Réamhriachtanais

Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús faoi caighdeáin chomharthaí, ERC-20, agus ERC-721.

Feidhmeanna agus Gnéithe ERC-1155:

Aistrithe Baisc

Oibríonn an t-aistriú baisc an-chosúil le haistrithe rialta ERC-20. Breathnaímid ar an bhfeidhm rialta transferFrom ERC-20:

1// ERC-20
2function transferFrom(address from, address to, uint256 value) external returns (bool);
3
4// ERC-1155
5function safeBatchTransferFrom(
6 address _from,
7 address _to,
8 uint256[] calldata _ids,
9 uint256[] calldata _values,
10 bytes calldata _data
11) external;
Taispeáin gach rud
Cóip

Is é an t-aon difríocht atá in ERC-1155 ná go n-aimsímid na luachanna mar eagar agus go dtugaimid raon aitheantais freisin. Mar shampla nuair a thugtar ids=[3, 6, 13] agus luacha=[100, 200, 5], is iad na haistrithe a bheidh mar thoradh orthu

  1. Aistrigh 100 comhartha le haitheantas 3 ó _from go _to.
  2. Aistrigh 200 comhartha le haitheantas 6 ó _from go _to.
  3. Aistrigh 5 chomhartha le haitheantas 13 ó _from go _to.

In ERC-1155 níl againn ach transferFrom, gan transfer. Chun é a úsáid mar transfer rialta, socraigh an seoladh ón seoladh go dtí an seoladh atá ag glaoch ar an bhfeidhm.

Iarmhéid Baisc

Tá feidhm chomhpháirtíochta ag an nglao ERC-20 balanceOf faoi seach le tacaíocht bhaisc. Mar mheabhrúchán, seo é an leagan ERC-20:

1// ERC-20
2function balanceOf(address owner) external view returns (uint256);
3
4// ERC-1155
5function balanceOfBatch(
6 address[] calldata _owners,
7 uint256[] calldata _ids
8) external view returns (uint256[] memory);
Cóip

Níos simplí fós don ghlao iarmhéid, is féidir linn iarmhéideanna iolracha a aisghabháil in aon ghlao amháin. Gabhaimid thar raon na n-úinéirí, agus ina dhiaidh sin an raon de chomharthaí aitheantais.

Mar shampla nuair a thugtar _ids=[3, 6, 13] agus _owners=[0xbeef..., 0x1337..., 0x1111...], is é an luach tuairisceáin

1[
2 balanceOf(0xbeef...),
3 balanceOf(0x1337...),
4 balanceOf(0x1111...)
5]
Cóip

Faomhadh Baisc

1// ERC-1155
2function setApprovalForAll(
3 address _operator,
4 bool _approved
5) external;
6
7function isApprovedForAll(
8 address _owner,
9 address _operator
10) external view returns (bool);
Taispeáin gach rud
Cóip

Tá na formheasanna beagán difriúil ná ERC-20. In ionad méideanna sonracha a fhormheas, socraíonn tú oibreoir atá ceadaithe nó neamhcheadaithe trí setApprovalForAll.

Is féidir an stádas reatha a léamh trí isApprovedForAll. Mar a fheiceann tú, is oibríocht uile-nó-rada ar bith é. Ní féidir leat a shainiú cé mhéad comharthaí atá le formheas nó fiú cén aicme chomharthaí.

Tá sé seo deartha d'aon ghnó ar mhaithe le simplíocht. Ní féidir leat gach rud a fhormheas ach le haghaidh aon seoladh amháin.

Faigh Crúca

1function onERC1155BatchReceived(
2 address _operator,
3 address _from,
4 uint256[] calldata _ids,
5 uint256[] calldata _values,
6 bytes calldata _data
7) external returns(bytes4);
Cóip

I bhfianaise na tacaíochta EIP-165(opens in a new tab), faigheann tacaíochtaí ERC-1155 crúcaí le haghaidh conarthaí cliste amháin. Ní mór don fheidhm crúca luach draíochta beart4 réamhshainithe a thabhairt ar ais a thugtar mar:

1bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))
Cóip

Nuair a thugann an conradh fála an luach seo ar ais, glactar leis go nglacann an conradh leis an aistriú agus go bhfuil a fhios aige conas na comharthaí ERC-1155 a láimhseáil. Go hiontach, níl a thuilleadh comharthaí greamaithe i gconradh!

Tacaíocht NFT

Nuair nach bhfuil sa soláthar ach ceann amháin, is chomhartha neamh-inmhalartach (NFT) an comhartha go bunúsach. Agus mar atá caighdeánach do ERC-721, is féidir leat URL meiteashonraí a shainiú. Is féidir le cliaint an URL a léamh agus a mhodhnú, féach anseo(opens in a new tab).

Riail Aistrithe Sábháilte

Táimid tar éis tagairt a dhéanamh do roinnt rialacha maidir le haistriú sábháilte cheana sna mínithe roimhe seo. Ach féachaimis ar na rialacha is tábhachtaí:

  1. Ní mór don ghlaoiteoir a bheith formheasta chun na comharthaí don seoladh _from a chaitheamh nó caithfidh an glaoiteoir a bheith cothrom le _from.
  2. Caithfidh an glao aistrithe dul ar ais má
    1. Is é 0 an seoladh _to.
    2. mura bhfuil fad _ids mar an gcéanna le fad _values.
    3. tá aon iarmhéid(í) den sealbhóir(í) do chomhartha(í) in _ids níos ísle ná an méid(í) faoi seach in _values a seoladh chuig an bhfaighteoir.
    4. má tharlaíonn aon earráid eile.

Nóta: Tá gach feidhm bhaisc lena n-áirítear an crúca ann freisin mar leaganacha gan bhaisc. Déantar é seo ar mhaithe le héifeachtacht gáis, agus is dócha gurb é an bealach is coitianta a úsáidtear go fóill má táthar ag smaoineamh ar shócmhainn amháin a aistriú. Táimid tar éis iad a fhágáil amach ar mhaithe le simplíocht sna míniúcháin, lena n-áirítear rialacha um aistriú sábháilte. Tá na hainmneacha comhionann, ach bain an 'Batch'.

Tuilleadh léitheoireachta

An raibh an t-alt seo cabhrach?

OSZAR »