深入分析defi/nft/lp/dapp/pi質押挖礦分紅系統開發詳細方案及邏輯原始碼
1.合約呼叫
引數說明
contractName:合約名稱
method:合約方法
txId:交易ID格式要求:長度為64位元組,字元在a-z0-9可為空,若為空字串,將自動生成txId
kvs:合約引數
timeout:超時時間,單位:s,若傳入-1,將使用預設超時時間:10s。創作及開發:wwqqyy420
withSyncResult:是否同步獲取交易執行結果當為true時,若成功呼叫,common.TxResponse.ContractResult.Result為common.TransactionInfo當為false時,若成功呼叫,common.TxResponse.ContractResult為空,可以透過common.TxResponse.TxId查詢交易結果
limit:transaction limitation,執行交易時的資源消耗上限,設為nil則不設定上限
2.部署wasm合約
下文,將演示透過sdk部署wasm合約,
sdk_user_contract_claim_test.go
func testUserContractClaimCreate(ttesting.T,clientChainClient,admin1,admin2,admin3,admin4*ChainClient,withSyncResult bool,isIgnoreSameContract bool){resp,err:=createUserContract(client,admin1,admin2,admin3,admin4,claimContractName,claimVersion,claimByteCodePath,common.RuntimeType_WASMER,
[]common.KeyValuePair{},withSyncResult)if!isIgnoreSameContract{require.Nil(t,err)}fmt.Printf("CREATE claim contract resp:%+vn",resp)}func createUserContract(clientChainClient,admin1,admin2,admin3,admin4ChainClient,contractName,version,byteCodePath string,runtime common.RuntimeType,kvs[]common.KeyValuePair,withSyncResult bool)(*common.TxResponse,error){payloadBytes,err:=
client.CreateContractCreatePayload(contractName,version,byteCodePath,runtime,kvs)if err!=nil{return nil,err}//各組織Admin許可權使用者簽名signedPayloadBytes1,err:=admin1.SignContractManagePayload(payloadBytes)if err!=nil{return nil,err}signedPayloadBytes2,err:=admin2.SignContractManagePayload(payloadBytes)if err!=nil{return nil,err}signedPayloadBytes3,err:=
admin3.SignContractManagePayload(payloadBytes)if err!=nil{return nil,err}signedPayloadBytes4,err:=admin4.SignContractManagePayload(payloadBytes)if err!=nil{return nil,err}//收集併合並簽名mergeSignedPayloadBytes,err:=client.MergeContractManageSignedPayload([][]byte{signedPayloadBytes1,signedPayloadBytes2,signedPayloadBytes3,signedPayloadBytes4})if err!=nil{return nil,err}//傳送建立合約請求resp,err:=
client.SendContractManageRequest(mergeSignedPayloadBytes,createContractTimeout,withSyncResult)if err!=nil{return nil,err}err=checkProposalRequestResp(resp,true)if err!=nil{return nil,err}return resp,nil
3.呼叫wasm合約
下文,將演示透過sdk呼叫wasm合約,
sdk_user_contract_claim_test.go
func testUserContractClaimInvoke(clientChainClient,method string,withSyncResult bool)(string,error){curTime:=fmt.Sprintf("%d",CurrentTimeMillisSeconds())fileHash:=uuid.GetUUID()params:=map[string]string{"time":curTime,"file_hash":fileHash,"file_name":fmt.Sprintf("file_%s",curTime),}err:=invokeUserContract(client,claimContractName,method,"",params,withSyncResult)if err!=nil{return"",err}return fileHash,nil}func invokeUserContract(clientChainClient,contractName,method,txId string,params map[string]string,withSyncResult bool)error{resp,err:=client.InvokeContract(contractName,method,txId,params,-1,withSyncResult)if err!=nil{return err}if resp.Code!=common.TxStatusCode_SUCCESS{return fmt.Errorf("invoke contract failed,[code:%d]/[msg:%s]n",resp.Code,resp.Message)}if!withSyncResult{fmt.Printf("invoke contract success,resp:[code:%d]/[msg:%s]/[txId:%s]n",resp.Code,resp.Message,resp.ContractResult.Result)}else{fmt.Printf("invoke contract success,resp:[code:%d]/[msg:%s]/[contractResult:%s]n",resp.Code,resp.Message,resp.ContractResult)}return nil}
4.建立及呼叫evm合約
sdk-go/examples/user_contract_evm_balance/main.go()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029396/viewspace-2951148/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LP丨DAPP智慧合約質押挖礦分紅系統開發詳細方案及邏輯APP
- dapp/defi/lp流動性質押挖礦分紅系統開發(開發規則)丨詳細及原始碼APP原始碼
- Ippswap孵化器/LP算力分紅/defi質押挖礦/系統開發詳細邏輯及功能(原始碼案例)原始碼
- dapp/lp/defi代幣合約質押挖礦分紅系統開發詳細及規則丨原始碼案例APP原始碼
- dapp/defi智慧合約流動性LP質押挖礦分紅系統開發方案原始碼APP原始碼
- dapp/defi智慧合約流動性LP質押挖礦分紅系統開發(開發程式)及方案原始碼APP原始碼
- DAPP丨LP雙幣質押流動性挖礦分紅系統開發(開發詳細及方案)原始碼案例APP原始碼
- defi/dapp/lp/ido質押流動性挖礦分紅系統開發(案例原始碼)APP原始碼
- DAPP流動性質押挖礦NFT鑄造分紅系統開發詳細分析丨原始碼方案APP原始碼
- DAPP鏈上合約質押挖礦分紅開發原理丨DAPP鏈上合約質押挖礦分紅系統開發邏輯及方案APP
- DAO代幣流動性質押挖礦分紅系統開發(開發詳細)及邏輯原始碼原始碼
- defi/dapp/lp/ido質押流動性挖礦分紅系統開發(案例及成熟)丨原始碼APP原始碼
- ULAB質押挖礦系統技術開發丨Defi質押挖礦dapp丨質押挖礦分紅詳情APP
- NFT雙幣質押挖礦dapp系統開發邏輯APP
- DeFi預售代幣LP質押挖礦分紅系統開發詳情
- DAPP智慧合約LP流動性質押挖礦分紅系統開發詳細及功能丨原始碼案例APP原始碼
- (NFT+DEFI)LP流動性挖礦邏輯系統開發(原始碼部署)原始碼
- Defi+NFT質押流動性挖礦系統開發/LP質押挖礦功能開發解析
- 雲算力質押挖礦系統開發(邏輯及案例)丨雲算力質押挖礦系統開發(詳細及原始碼)原始碼
- LP/defi流動性質押挖礦開發功能丨DAPP系統丨defi丨NFT丨LPAPP
- NFT質押LP挖礦系統開發技術方案
- DeFi流動性質押挖礦系統開發及馬蹄鏈質押挖礦詳細開發方案
- Defi /LP/NFT質押分紅系統開發技術詳情案例
- DAPP/Defi代幣預售LP質押挖礦分紅系統技術開發解析APP
- DAPP/LP代幣合約流動性質押挖礦分紅系統開發(規則及詳細)原始碼部署APP原始碼
- DAPP智慧合約理財質押挖礦分紅系統開發詳細需求及原始碼部署APP原始碼
- dapp/defi/ippswap孵化器質押LP算力分紅挖礦系統開發/規則及玩法/原始碼部署APP原始碼
- defi/dapp/lp/ulab質押挖礦開發正式版丨ulab質押挖礦系統開發技術詳細及程式碼說明APP
- PIL派鏈NFT鑄造質押挖礦分紅開發功能丨PIL派鏈NFT鑄造質押挖礦分紅系統開發詳細
- DAPP/LP代幣鑄造質押挖礦系統開發/Defi/LP/dapp/功能詳情APP
- dapp/defi流動性lp代幣質押挖礦系統開發技術詳細丨原始碼案例APP原始碼
- defi質押LP流動性挖礦dapp系統開發(模式詳情)LP流動性挖礦系統開發APP模式
- LP流動性做市質押分紅挖礦dapp系統開發合約底層邏輯APP
- ULAB質押挖礦系統開發(方案及邏輯)
- DAPP智慧合約LP質押分紅系統開發原始碼詳情方案APP原始碼
- DAPP智慧合約流動性質押挖礦系統模式開發/DEFI/DAPP/NFT/LPAPP模式
- Defi代幣質押持幣生息系統技術開發/原始碼/質押挖礦dapp/NFT原始碼APP
- SolaRoad索拉迪/流動性質押挖礦/礦池算力分紅/系統開發/詳細案例/方案邏輯/原始碼詳情原始碼