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