EOS合约开发第十三章-序列化

本文详细介绍了EOS对象的序列化与反序列化过程,包括EOS如何在合约调用和请求响应中进行序列化操作,以及如何使用EOS标准库的宏EOSLIB_SERIALIZE来支持对象的序列化和反序列化。同时,给出了一个示例来演示对象序列化的实际应用。
摘要由CSDN通过智能技术生成

EOS对象序列化

一、对象的序列化支持

EOS需要对外部可访问对象进行序列化和反序列化,在合约调用发起时,需要将请求action的参数(json格式描述)根据abi进行序列化,发送到eos的action请求的参数是序列化的对象,eos收到请求后需要将其反序列化。在eos请求表数据时,需要对表数据进行反序列化并输出到请求的应答中。

对象的序列化和反序列化主要应用在请求的解析和请求应答的格式化中,在前后端的交互过程中被使用。

eos外部可访问对象都需要能进行序列化和反序列化,eos标准库定义了宏EOSLIB_SERIALIZE来实现对一个对象的序列化和反序列化支持,以下是对一个外部可访问对象的序列化支持:

   /**
    * @brief Data structure for movement
    */
   struct movement {
      uint32_t    row;
      uint32_t    column;

      EOSLIB_SERIALIZE( movement, (row)(column) )
   };

   /**
    * @brief Action to make movement
    */
   struct move {
      account_name   challenger;
      account_name   host;
      account_name   by; // the account who wants to make the move
      movement       mvt;

      EOSLIB_SERIALIZE( move, (challenger)(host)(by)(mvt) )
   };

二、对象反序列化

在执行action时ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值