摘要:筆者看了官方的多個(gè)合約模版,于是準(zhǔn)備部署一個(gè)簡單的比較數(shù)字大小的合約。部署合約部署合約其實(shí)就是發(fā)起交易,在交易中帶上合約程序。到此,發(fā)布和解鎖合約就全部完成啦。
發(fā)行資產(chǎn)
在比原鏈上發(fā)行資產(chǎn)比較方便快捷,使用節(jié)點(diǎn)的dashboard圖形界面操作就可以,先在 “資產(chǎn)”一欄新建資產(chǎn)
新建完資產(chǎn),需要上鏈,否則區(qū)塊不認(rèn)識你這個(gè)資產(chǎn),那么在交易中的高級交易進(jìn)行issue,點(diǎn)擊Add action,總共三個(gè)action分別是 Issue、Control with address、Spend from account
輸入賬戶的密碼,等待交易確認(rèn),一旦確認(rèn)成功資產(chǎn)就會(huì)發(fā)到剛才指定的地址上??梢灾话l(fā)一個(gè)地址,也可以發(fā)到多個(gè)地址,添加多個(gè)Control with address 即可。
編譯合約編譯合約通過api進(jìn)行編譯,準(zhǔn)備好postman或者其他可以post的工具,筆者使用的是postman。
筆者看了官方的多個(gè)合約模版,于是準(zhǔn)備部署一個(gè)簡單的比較數(shù)字大小的合約。即是編譯合約時(shí)會(huì)指定數(shù)值,如果解鎖合約的人帶上大于此數(shù)值則可以獲得合約里的資產(chǎn)。
筆者的合約代碼如下:
contract equals(target:Integer) locks value{ clause reveal(current:Integer){ verify current >= target unlock value } }
寫好了合約代碼,接下來通過 compile 的api 對合約進(jìn)行編譯
編譯后會(huì)返回一個(gè)status 成功或者失敗,和一串 data,都是為json格式的數(shù)據(jù),主要需要 data里面的 program,即是該編譯完成的合約程序,在部署合約時(shí)需要用到。
部署合約部署合約其實(shí)就是 發(fā)起交易,在交易中帶上合約程序。通過api發(fā)起交易主要有三個(gè)步驟,先 build → sign → submit,分別對應(yīng)的api是 build-transaction、sign-transaction、submit-transaction。
build-transaction sign-transactionbuild-transaction 返回的數(shù)據(jù),全部需要用到,即是 data 的所有數(shù)據(jù),對該打包好的數(shù)據(jù)進(jìn)行簽名,需要?jiǎng)?chuàng)建賬號的密鑰密碼。
如果簽名成功的話,要看返回的json里面有個(gè)sign_complete字段,此字段為true才代表成功,方可進(jìn)行submit-transaction。
submit-transaction獲取 sign-transaction 簽名成功返回的 raw_transaction 字段數(shù)據(jù),進(jìn)行提交交易。
如果提交成功的話,會(huì)返回交易哈希即tx_id,可以通過 get-transaction 獲取該交易的詳情。
在此合約就部署完成啦,對應(yīng)數(shù)量的資產(chǎn)也已經(jīng)被鎖在合約里面了,等待解鎖合約,解鎖成功的人可以獲得合約里的資產(chǎn)。
通過 list-unspent-outputs 獲取未花費(fèi)的合約詳情,在解鎖合約的時(shí)候也需要用到這個(gè) unspent-output id。
這里的id 可以在 get-transaction 的outputs 中找到,在outputs中找到 control_program 為剛才部署的合約program,則此筆交易的id就是這個(gè)合約的unpsent-output。
根據(jù)以上獲得的unspent-output來解鎖合約,其實(shí)解鎖合約也是發(fā)起交易,和發(fā)布合約不同的是不需要編譯,只需要build、sign、submit即可。build這里比較不一樣,筆者解鎖合約時(shí)在此處踩過太多的坑~~
根據(jù)以上的參數(shù)進(jìn)行build-transaction即可,注意value需要轉(zhuǎn)為十六進(jìn)制!!如果符號合約條件即可解鎖成功,否則區(qū)塊確認(rèn)解鎖合約的交易時(shí)會(huì)失敗。
sign-transaction和submit-transaction 參考部署合約的就可以,完全是一樣的。到此,發(fā)布和解鎖合約就全部完成啦。學(xué)會(huì)了嗎,快去實(shí)踐哦,有問題也可以聯(lián)系筆者哦@小胖子
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/24310.html
摘要:結(jié)語當(dāng)前猜謎合約提供了體驗(yàn)版本,有興趣的朋友可以做一個(gè)口令紅包,簡化一下用戶操作和體驗(yàn)。 準(zhǔn)備工作: 1、安裝全節(jié)點(diǎn)錢包V1.0.5以上并同步完成; 2、已經(jīng)發(fā)行一種資產(chǎn),發(fā)行資產(chǎn)的方法具體見文章《如何在Bytom上發(fā)布資產(chǎn)?》 3、準(zhǔn)備好一些BTM作為手續(xù)費(fèi); 設(shè)置謎語(鎖定資產(chǎn)): 1、打開錢包,點(diǎn)擊Equity合約按鈕; showImg(https://segmentfault....
摘要:比原協(xié)議概述比原鏈技術(shù)社區(qū)最近提出了一套資產(chǎn)規(guī)范提議,該提議允許在類型的交易中實(shí)現(xiàn)標(biāo)準(zhǔn)資產(chǎn)。且在整個(gè)資產(chǎn)列表中,支持協(xié)議的資產(chǎn)排序是靠前的。如下圖以上就是協(xié)議在中的具體展示。 showImg(https://segmentfault.com/img/bVbrIJs?w=1166&h=712); 比原BMIP002協(xié)議 概述 比原鏈技術(shù)社區(qū)最近提出了一套資產(chǎn)規(guī)范提議,該提議允許在issu...
摘要:儲蓄分紅合約簡介儲蓄分紅合約指的是項(xiàng)目方發(fā)起了一個(gè)鎖倉計(jì)劃即儲蓄合約和取現(xiàn)合約,用戶可以在準(zhǔn)備期自由選擇鎖倉金額參與該計(jì)劃,等到鎖倉到期之后還可以自動(dòng)獲取鎖倉的利潤。 儲蓄分紅合約簡介 儲蓄分紅合約指的是項(xiàng)目方發(fā)起了一個(gè)鎖倉計(jì)劃(即儲蓄合約和取現(xiàn)合約),用戶可以在準(zhǔn)備期自由選擇鎖倉金額參與該計(jì)劃,等到鎖倉到期之后還可以自動(dòng)獲取鎖倉的利潤。用戶可以在準(zhǔn)備期內(nèi)(dueBlockHeight...
摘要:流程總結(jié)就是下載安裝插件錢包,如果自己的不需要跳過這一步。然后將編譯后的合約參數(shù)配置在的配置文件,如下圖全紅部分是測試網(wǎng)合約配置參數(shù)調(diào)用插件錢包。開發(fā)出優(yōu)秀的應(yīng)用。 安裝使用插件錢包 1. 打開Google瀏覽器的應(yīng)用商店,搜索Bystore showImg(https://segmentfault.com/img/bVbq0Ol?w=2554&h=1312); 下載鏈接:http:/...
閱讀 1162·2021-09-22 15:43
閱讀 2358·2021-09-22 15:32
閱讀 4530·2021-09-22 15:11
閱讀 2227·2019-08-30 15:55
閱讀 2599·2019-08-30 15:54
閱讀 995·2019-08-30 15:44
閱讀 1107·2019-08-29 13:26
閱讀 803·2019-08-29 12:54