深入分析 defi/nft/lp/dapp/pi 质押分红系统详细方案及逻辑源码

   2023-12-17 28

1. 合约调用
  
  参数说明
  
  contractName: 合约名称
  
  method: 合约方法
  
  txId: 交易 ID 格式要求:长度为 64 字节,字符在 a-z0-9 可为空,若为系统-176搭建-0206+可电可微-5616空字符串,将自动生成 txId
  
  kvs: 合约参数
  
  timeout: 超时时间,单位:s,若传入 - 1,将使用默认超时时间:10s
  
  withSyncResult: 是否同步获取交易执行结果当为 true 时,若成功调用,common.TxResponse.ContractResult.Result 为 common.TransactionInfo 当为 false 时,若成功调用,common.TxResponse.ContractResult 为空,可以通过 common.TxResponse.TxId 查询交易结果,创作及开发 ww
  
  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{re(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=checkProposalRe(resp,true)if err!=nil{return nil,err}return resp,nil
  

核心提示:1. 合约调用    参数说明    contractName: 合约名称    method: 合约方法    txId: 交易 ID 格式要求:长度为
 
标签: 商务服务,软件开发,APP开发
反对 0举报 0 收藏 0 打赏 0
 
同类新闻
  • 联系人:何经理
  • 地址:广州市天河区珠村西横路5号1栋101-312
  • 手机:19927739756
我们的产品