MYKEY Docs
中文English
中文
中文
  • 简介
  • 基于MYKEY的第三方授权登录
    • 验签代码示例
    • 更多MYKEY登录的技术原理和流程
  • 接入MYKEY
    • 多种方式接入MYKEY
    • Mobile H5页面接入
      • ETH
      • EOS
      • JS功能扩展
    • MYKEY Android SDK接入
      • 环境准备
      • 初始化SDK
      • 认证
      • 签名
      • 转账
      • 合约调用
    • MYKEY iOS SDK接入
      • 环境准备
      • 初始化SDK
      • 认证
      • 签名
      • 转账
      • 合约调用
    • Web应用扫码接入
    • SimpleWallet协议接入
    • Deeplink协议接入
  • 深入MYKEY
    • 深入MYKEY账户
    • 类和方法定义
      • Android类
      • iOS类
    • 错误码
    • 识别MYKEY合约充值
      • ETH充值
      • EOS充值
    • MYKEY白皮书
  • KEY ID
    • KEYID ETH合约介绍
      • 创建账户模块
      • 数据存储模块
      • 逻辑模块
      • 逻辑管理模块
    • 账户恢复机制
    • KEYID合约升级流程
    • KEYID合约升级记录
      • ETH
        • KEY ID以太坊合约升级保护期参数调整公告
        • KEY ID以太坊逻辑合约模块升级公告
        • KEY ID以太坊合约升级保护期参数调整公告
        • KEY ID以太坊 AccountLogic/DualsigsLogic 合约升级公告
        • KEY ID以太坊 DappLogic 合约升级公示
  • 开发资源
    • ETH
    • EOS
  • 加入我们
    • 项目提交上架
    • 开发者社区
Powered by GitBook
On this page
  • 交易所识别
  • DAPP识别
  • MYKEY转账举例

Was this helpful?

  1. 深入MYKEY
  2. 识别MYKEY合约充值

EOS充值

PreviousETH充值NextMYKEY白皮书

Last updated 5 years ago

Was this helpful?

MYKEY用户的交易,通过MYKEY服务端的Postman账户(携带用户签名)上链, 用户的充值是内部交易,在区块链浏览器上会显示在交易详情中。

下面会介绍如何从程序端识别合约充值:

交易所识别

推荐使用官方的工具history-tool, 将交易中所有的action trace存储到数据库中。从而不需要区分普通交易和合约交易,统一处理。

对比mongo插件,history-tool效率更高,支持PostgreSQL/RocksDB。

编译安装步骤(fill-pg为例)

  1. 代码: 注意: 当前版本(0.2.0)会写一些数据量很大但是我们又不需要的表(action_trace_authorization和action_trace_auth_sequence),由于没有配置,所以只能在编译前修改源码,注释掉往这2个表的写入(可以减少一半以上数据量)

  2. 编译: 参考. 注意编译比较慢, 尽量8核16G内存

  3. 运行环境缺少.so 编译完成后把fill-pg复制到需要运行的环境,如果启动报缺少.so, 运行lddfill−pglddfill-pg查看缺少什么

  4. 启动: 第一次启动需要参数--fpg-create 创建数据库和表结构

  5. pg维护(数据清理) action_trace表的数据量很大,按500aps算,一天超过4000万数据。因此需要根据block_num对action_trace表做partition,清理历史数据的时候drop掉最老的partition.

在action_trace表中,按照block_num顺序处理,act_account中过滤出关注的token,识别出目标地址是交易所充值地址的action。

由于存在微分叉,当block_num低于不可逆块时,才可以判定交易成功。(pg会修复微分叉的交易)

DAPP识别

history-tool部署维护较重,DAPP方建议使用dfuse的graphql接口来查询/监听交易action。

如果已有交易id,可以使用/v0/search/transactions来获取交易中所有的action和其他交易详情。

MYKEY转账举例

识别出转账交易,从中提取出data就行:

比如账号 mykeyhulu511 转 nowwearegoin 0.2826 EOS,交易ID为:

https://github.com/EOSIO/history-tools
https://github.com/EOSIO/history-tools/blob/4859e331588676b5c45ef0b393ce9cdf72375b13/src/fill_pg_plugin.cpp#L777-L782
https://eosio.github.io/history-tools/build-ubuntu-1804.html
https://docs.dfuse.io/reference/eosio/graphql/
https://eosq.app/tx/ad0e029edf6c8e3ae84b586f36737170fc27c5d995f1564422112050464b48cc