广州列举网 > 商务服务 > 网站/软件服务 >   深入分析definftlpdapppi质押挖矿分
广州
[切换城市]

  深入分析definftlpdapppi质押挖矿分

更新时间:2023-05-10 11:19:57 浏览次数:44次
区域: 广州 > 广州周边
类别:软件开发
地址:广东省广州市天河区
1.合约调用
  
  参数说明
  
  contractName:合约名称
  
  method:合约方法
  
  txId:交易ID格式要求:长度为64字节,字符在a-z0-9可为空,若为空字符串,将自动生成txId
  
  kvs:合约参数
  
  timeout:超时时间,单位:s,若传入-1,将使用默认超时时间:10s
  
  withSyncResult:是否同步获取交易执行结果当为true时,若成功调用,common.TxRes***ntractResult.Result为common.TransactionInfo当为false时,若成功调用,common.TxRes***ntractResult为空,可以通过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:=c***rgeContractManageSignedPayload([][]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:=c***vokeContract(contractName,method,txId,params,-1,withSyncResult)if err!=nil{return err}if res***de!=common.TxStatusCode_SUCCESS{return fmt.Errorf("invoke contract failed,[code:%d]/[msg:%s]n",res***de,res***ssage)}if!withSyncResult{fmt.Printf("invoke contract success,resp:[code:%d]/[msg:%s]/[txId:%s]n",res***de,res***ssage,res***ntractResult.Result)}else{fmt.Printf("invoke contract success,resp:[code:%d]/[msg:%s]/[contractResult:%s]n",res***de,res***ssage,res***ntractResult)}return nil}
  
  4.创建及调用evm合约
  
  sdk-go/examples/user_contract_evm_balance/main.go(https://git.chain***.cn/chainmaker/sdk-go/-/blob/master/examples/user_contract_evm_balance/main.go)
广州网站/软件服务相关信息
注册时间:2023年04月27日
UID:745087
---------- 认证信息 ----------
手机已认证
查看用户主页