欢迎光临散文网 会员登陆 & 注册

马蹄链DAPP代币合约流动性挖矿分红系统开发详细及方案(polygon马蹄链开发)

2023-03-11 10:09 作者:bili_33032327742  | 我要投稿

  Smart contract is a kind of computer program or transaction protocol,which records the information,events and behaviors of transaction terms,aiming at reducing the demand,arbitration and execution costs for trusted intermediaries.On the Chang'an chain,users can write smart contracts in high-level languages(Golang,Rust,solidity,TinyGo,and C++).After compilation,they are stored in the blockchain in the form of binary files,WASM,and EVM bytecodes.Users can trigger the execution of codes in smart contracts by sending transactions.


  args:Dictionary-来自事件的参数。


  event:String-事件名称。


  logIndex:Number-块中日志索引位置的整数。


  transactionIndex:Number-创建的交易索引位置日志的整数。


  transactionHash:String,32 Bytes-创建此日志的事务的哈希值。


  address:String,32 Bytes-此日志的来源地址。


  blockHash:String,32 Bytes-此日志所在块的哈希值。当它挂起时为null。


  blockNumber:Number-此日志所在的块号。当它挂起时为null


  如下,是一个简单的demo,大家应根据自己的业务场景,具体的去解析链上结果:


  def _filter_event_transfer(self,tx_receipt_event_log)->List[ORDER_TX_RES_DETAILS_LIKE]:


  """开发合约I59详细2OO7系统3O69


  事件日志的解码和整理


  :param tx_receipt_event_log:


  :return:


  """


  log_details:List[ORDER_TX_RES_DETAILS_LIKE]=[]


  if isinstance(tx_receipt_event_log,Tuple):开发流程:yy625019


  #assert len(tx_receipt_event_log)==2,"此函数解析交易,理应只得到2笔Transfer记录"


  if len(tx_receipt_event_log)!=2:#交易失败的情况:()


  self._logger.error("事件日志函数解析交易,理应只得到2笔Transfer记录")


  for d in tx_receipt_event_log:


  if d.get("event")=="Transfer":


  coin_name:str=self.coin_name_to_addr_dict_reverse[d["address"]]


  transfer_vol:str=str(self.from_wei(d["args"]["value"],decimals=self.coin_decimals_dict[coin_name]))


  from_addr:str=d["args"]["from"]


  to_addr:str=d["args"]["to"]


  if from_addr in self.account_addr_list:#如果是账号的地址


  print(f"是账号的地址{from_addr}:{coin_name}减少{transfer_vol}")


  order_res:ORDER_TX_RES_DETAILS_LIKE={"coin_name":coin_name,"side":"sell","vol":transfer_vol,"account_addr":from_addr}


  log_details.append(order_res)


  elif from_addr in self.pair_name_to_addr_dict.values():#如果是pair合约的地址


  print(f"是pair合约的地址{from_addr}:{coin_name}减少{transfer_vol}")


  else:


  print(f"未知地址{from_addr}:{coin_name}减少{transfer_vol}")


  if to_addr in self.account_addr_list:#如果是账号的地址


  print(f"是账号的地址{to_addr}:{coin_name}增加{transfer_vol}")


  order_res:ORDER_TX_RES_DETAILS_LIKE={"coin_name":coin_name,"side":"buy","vol":transfer_vol,"account_addr":to_addr}


  log_details.append(order_res)


  elif to_addr in self.pair_name_to_addr_dict.values():#如果是pair合约的地址


  print(f"是pair合约的地址{to_addr}:{coin_name}增加{transfer_vol}")


  else:


  print(f"未知地址{to_addr}:{coin_name}增加{transfer_vol}")


  return log_details


马蹄链DAPP代币合约流动性挖矿分红系统开发详细及方案(polygon马蹄链开发)的评论 (共 条)

分享到微博请遵守国家法律