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.
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:
- Aistriú Baisc: Aistrigh roinnt sócmhainní in aon ghlao amháin.
 - Iarmhéid Baisc: Faigh iarmhéideanna na sócmhainní iolracha in aon ghlao amháin.
 - Baisccheadú: Ceadaigh gach comhartha chuig seoladh.
 - Crúcaí: Faigh crúca comharthaí.
 - Tacaíocht NFT: Mura bhfuil sa soláthar ach 1, cuir mar NFT é.
 - Rialacha um Aistriú Sábháilte: Sraith rialacha maidir le haistriú slán.
 
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-202function transferFrom(address from, address to, uint256 value) external returns (bool);34// ERC-11555function safeBatchTransferFrom(6    address _from,7    address _to,8    uint256[] calldata _ids,9    uint256[] calldata _values,10    bytes calldata _data11) external;Taispeáin gach rudIs é 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
- Aistrigh 100 comhartha le haitheantas 3 ó 
_fromgo_to. - Aistrigh 200 comhartha le haitheantas 6 ó 
_fromgo_to. - Aistrigh 5 chomhartha le haitheantas 13 ó 
_fromgo_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-202function balanceOf(address owner) external view returns (uint256);34// ERC-11555function balanceOfBatch(6    address[] calldata _owners,7    uint256[] calldata _ids8) external view returns (uint256[] memory);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]Faomhadh Baisc
1// ERC-11552function setApprovalForAll(3    address _operator,4    bool _approved5) external;67function isApprovedForAll(8    address _owner,9    address _operator10) external view returns (bool);Taispeáin gach rudTá 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 _data7) external returns(bytes4);I bhfianaise na tacaíochta EIP-165, 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)"))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.
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í:
- Ní mór don ghlaoiteoir a bheith formheasta chun na comharthaí don seoladh 
_froma chaitheamh nó caithfidh an glaoiteoir a bheith cothrom le_from. - Caithfidh an glao aistrithe dul ar ais má
- Is é 0 an seoladh 
_to. - mura bhfuil fad 
_idsmar an gcéanna le fad_values. - tá aon iarmhéid(í) den sealbhóir(í) do chomhartha(í) in 
_idsníos ísle ná an méid(í) faoi seach in_valuesa seoladh chuig an bhfaighteoir. - má tharlaíonn aon earráid eile.
 
 - Is é 0 an seoladh 
 
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'.