#crypto #blockchain #native-token #token-flow #evm-chains

app inoutflow

命令行程序,用于计算目标钱包/合约地址的基于EVM的链(BSC、以太坊和Polygon)的原生代币的流入/流出

1个稳定版本

1.0.0 2022年5月5日

#880#crypto

MIT 许可证

14KB
122

inoutflow

一个命令行程序,用于计算并打印出基于EVM的链(BSC、以太坊和Polygon)的钱包/合约地址的原生代币的流入/流出

工作原理

它将涉及使用上游API平台(bscscan.com、etherscan.io或polygonscan.com)提供的3个相关API

  1. 获取常规交易列表
  2. 获取内部交易列表
  3. 获取地址的余额

以便了解原生代币(BNB、ETH或MATIC)和每种类型交易以及整个地址的最终余额。

技术提示

我们可以手动计算目标地址的余额,而无需请求余额API,通过计算常规和内部交易中的原生代币的流入/流出量,并从常规交易中减去费用。

我们不需要尝试从内部交易中获取费用,因为内部交易是常规交易的一部分,并且它的 gasPricegasUsed 字段不是作为API返回值的一部分提供的。因此,常规交易的费用就足够了。

简而言之,

Address balance = in/out of native-token flow of normal txs + in/out of native-token flow of internal txs + fees of normal txs

注意:我们不需要涉及ERC-20/BEP-20和ERC-721/BEP-721交易,因为它们也是常规交易的一部分,因为它们共享相同的交易哈希。只是对于这种类型的交易,它发送 0 原生代币但发送其他代币。所以常规交易的费用就涵盖了我们所需要的一切。

设置

  1. bscscan.cometherscan.iopolygonscan.com 上注册账户。
  2. 在第一步中为所有API平台创建新的API密钥。
  3. 定义以下环境变量
    • INOUTFLOW_BSCSCAN_APIKEY - 用于与Binance Smart Chain(BSC)一起使用
    • INOUTFLOW_ETHERSCAN_APIKEY - 用于与以太坊一起使用
    • INOUTFLOW_POLYGONSCAN_APIKEY - 用于与Polygon一起使用
  4. 可能需要source它,例如 source ~/.bash_aliases

用法

inoutflow --chain <CHAIN> <ADDRESS>

其中 --chain(或 -c)的可能值是 bscethereumpolygon。因此,输入地址将基于指定的链。

示例输出

  1. BSC上的钱包地址
$ inoutflow 0x5a52e96bacdabb82fd05763e25335261b270efcb --chain bsc
Found 194 txs!
- BNB outflow: 500000.0001 BNBs
- BNB inflow: 507000.07693536405 BNBs
- Net in/out balance: 7000.076835364045 BNBs

Found 25 internal txs!
- BNB outflow: 0 BNBs
- BNB inflow: 0.000000339984886578 BNBs
- Net in/out balance: 0.000000339984886578 BNBs

Total balance: 7000.052775939041 BNBs
  1. Ethereum上的钱包地址
$ inoutflow 0x49a2dcc237a65cc1f412ed47e0594602f6141936 --chain ethereum
Found 3930 txs!
- ETH outflow: 253655.5178577849 ETHs
- ETH inflow: 51001.49522086296 ETHs
- Net in/out balance: -202654.02263692193 ETHs

Found 482 internal txs!
- ETH outflow: 0 ETHs
- ETH inflow: 203349.21092720772 ETHs
- Net in/out balance: 203349.21092720772 ETHs

Total balance: 643.5772304060517 ETHs
  1. Polygon上的钱包地址
$ inoutflow 0xf89d7b9c864f589bbf53a82105107622b35eaa40 --chain polygon
Found 161 txs!
- MATIC outflow: 3258607.025878074 MATICs
- MATIC inflow: 0.001 MATICs
- Net in/out balance: -3258607.024878074 MATICs

Found 38 internal txs!
- MATIC outflow: 0 MATICs
- MATIC inflow: 4004106.7107583876 MATICs
- Net in/out balance: 4004106.7107583876 MATICs

Total balance: 745498.6568908329 MATICs

许可证

MIT,Wasin Thonkaew

依赖项

~15–26MB
~416K SLoC