Nft項(xiàng)目開(kāi)發(fā)流程
一、調(diào)研公鏈,了解對(duì)應(yīng)公鏈的合約發(fā)布、鏈碼測(cè)試、鏈碼正式部署、鏈碼正式調(diào)用流程。
例子:bsc公鏈(幣安智能鏈)
合約來(lái)源:github搜索。
在線(xiàn)編輯合約地址:https://remix.ethereum.org/
在線(xiàn)錢(qián)包:小狐貍。
額外了解:小狐貍錢(qián)包如何通過(guò)配置添加BSC公鏈,開(kāi)發(fā)時(shí)將BSC的主網(wǎng)和測(cè)試網(wǎng)全部添加到小狐貍中。
二、準(zhǔn)備相應(yīng)的智能合約,如erc20、erc721、erc1155、erc998
例子:BEP721nft,BEP1155NFT兩份智能合約。
1.將下載的合約文件導(dǎo)入remix中;
2.主要關(guān)注721協(xié)議和1155協(xié)議必須要實(shí)現(xiàn)的接口及上鏈、查詢(xún)、白名單、鑄幣人等接口方法,如果方法不全或不方便測(cè)試,可以修改或增加方法便于測(cè)試;
3.將合約方法檢查完后,選擇合適的版本進(jìn)行編譯,編譯報(bào)錯(cuò)的解決錯(cuò)誤問(wèn)題,未報(bào)錯(cuò)說(shuō)明編譯成功;
4.在remix的部署頁(yè)面上面選擇“InjectedWeb3”,拉起小狐貍的授權(quán)頁(yè)面進(jìn)行授權(quán),授權(quán)成功后,在remix部署頁(yè)面選擇要部署的主合約(如NFT721Token合約),選擇正確的合約后,會(huì)出現(xiàn)構(gòu)造函數(shù)輸入框,輸入?yún)?shù)name、symbol、address后點(diǎn)擊deploy按鈕進(jìn)行部署,此時(shí)會(huì)拉起小狐貍錢(qián)包進(jìn)行消費(fèi)確認(rèn),點(diǎn)擊確認(rèn)按鈕后等待部署上鏈。部署成功后,remix的部署頁(yè)面下面會(huì)顯示已部署合約的所有可調(diào)用的方法。
5.測(cè)試合約方法,主要測(cè)試授權(quán)、創(chuàng)作、鑄幣、查詢(xún)這些接口,測(cè)試完成后,代表合約部分已準(zhǔn)備完畢。
注意事項(xiàng):測(cè)試時(shí)小狐貍要選擇測(cè)試網(wǎng)絡(luò)。
三、根據(jù)業(yè)務(wù)流程進(jìn)行代碼開(kāi)發(fā)。
整個(gè)721nft流程說(shuō)明:
1.通過(guò)在線(xiàn)remix部署合約,獲得合約信息(合約id、發(fā)布人、時(shí)間等信息);
該步驟也可以由前端完成,前端sdk可以實(shí)現(xiàn)合約的編譯和部署。
2.將合約信息手動(dòng)錄入到數(shù)據(jù)庫(kù)中,后續(xù)業(yè)務(wù)開(kāi)發(fā)基于這個(gè)合約來(lái)完成業(yè)務(wù),合約id不能有誤。
3.用戶(hù)在頁(yè)面上輸入創(chuàng)建信息,點(diǎn)擊創(chuàng)建方法后,先經(jīng)過(guò)后端接口查詢(xún)當(dāng)前用戶(hù)是否是鑄幣人,如果不是,后端接口會(huì)調(diào)用合約的addMinter方法將用戶(hù)添加到鑄幣人列表中;
4.前端接收到后臺(tái)返回值后,根據(jù)返回接口判斷用戶(hù)是否能鑄幣(鏈上方法),若有權(quán)限,則前端調(diào)用合約的safeMint(鏈上方法)方法進(jìn)行鑄幣,該方法需要用戶(hù)的小狐貍錢(qián)包支付bnb進(jìn)行確認(rèn),支付成功后,前端得到交易hash,調(diào)用后端的鑄幣接口(后端鑄幣接口只是將鑄幣信息存入到數(shù)據(jù)庫(kù)中)。完成鑄幣信息的記錄。
5.用戶(hù)在收藏列表上架nft,該過(guò)程實(shí)際是將用戶(hù)持有的nft交易給平臺(tái)托管地址,這個(gè)過(guò)程需要用戶(hù)的小狐貍錢(qián)包支付交易礦工費(fèi)確認(rèn)。前端得到小狐貍的交易hash之后調(diào)用后端的上架接口(后端接口記錄上架信息,市場(chǎng)信息,并完成資產(chǎn)轉(zhuǎn)移)。
6.交易(步驟多,較為復(fù)雜)
A.驗(yàn)證交易價(jià)格;
B.記錄買(mǎi)家支付BNB的交易記錄;
C.平臺(tái)托管地址給作者打版權(quán)費(fèi)BNB(鏈上方法),并記錄流水;
D.平臺(tái)托管地址給賣(mài)家打BNB(鏈上方法),并記錄流水;
E.平臺(tái)給買(mǎi)家打nft(鏈上方法),并記錄流水;
F.平臺(tái)給買(mǎi)家打erc20(鏈上方法)的代幣,并記錄流水;
G.修改市場(chǎng)上nft的數(shù)量;
H.修改買(mǎi)家nft資產(chǎn)情況;
注意:上述步驟必須全部走完,如果交易失敗,也要有一條記錄,并在remark標(biāo)識(shí)一下。
7.下架,下架只是修改了狀態(tài),變成下架審核中,管理后臺(tái)審核下架內(nèi)容,若通過(guò),則從平臺(tái)托管地址將nft交易給賣(mài)家手上(鏈上方法)。
Nft721合約的核心方法:
1.getTotalSupply(獲取總鑄幣量);
2.tokenByIndex(獲取對(duì)應(yīng)下標(biāo)的tokenId);
3.addMinter(添加鑄幣人);
4.removeMinter(移除鑄幣人);
5.ownerof(根據(jù)tokenId獲取指定數(shù)量持有量);
6.SafeTransferFrom(交易);
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀(guān)點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。