Consensys / surya

A set of utilities for exploring Solidity contracts
Apache License 2.0
1.07k stars 118 forks source link

Cannot read property 'mul' of undefined #136

Closed maurelian closed 4 years ago

maurelian commented 4 years ago

To repro:

  1. git clone https://github.com/arcadeum/niftyswap
  2. cd niftyswap
  3. surya ftrace -i NiftyswapExchange::_baseToToken all contracts/exchange/NiftyswapExchange.sol

Output is:

/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/node_modules/yargs/yargs.js:1109
      else throw err
           ^

TypeError: Cannot read property 'mul' of undefined
    at constructCallTree (/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/lib/ftrace.js:604:49)
    at /Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/lib/ftrace.js:656:13
    at Array.forEach (<anonymous>)
    at constructCallTree (/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/lib/ftrace.js:635:34)
    at /Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/lib/ftrace.js:656:13
    at Array.forEach (<anonymous>)
    at constructCallTree (/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/lib/ftrace.js:635:34)
    at ftrace (/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/lib/ftrace.js:237:3)
    at Object.require.usage.command.command.command.command.command.command.command [as handler] (/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/bin/surya:157:17)
    at Object.runCommand (/Users/primary/.nvm/versions/node/v10.18.0/lib/node_modules/surya/node_modules/yargs/lib/command.js:235:44)

I tested all other surya commands and they work fine on this contract.

tintinweb commented 4 years ago

fixed with #137

⇒  surya ftrace -i NiftyswapExchange::_baseToToken all contracts/exchange/NiftyswapExchange.sol
└─ NiftyswapExchange::_baseToToken
   ├─ NiftyswapExchange::_getTokenReserves | [Int] 🔒   
   │  ├─ IERC1155::balanceOf | [Ext] ❗️   
   │  └─ IERC1155::balanceOfBatch | [Pub] ❗️   
   ├─ NiftyswapExchange::getBuyPrice | [Ext] ❗️   
   │  ├─ _assetSoldReserve::mul | [Int] 🔒   
   │  └─ _assetBoughtReserve::sub | [Int] 🔒   
   ├─ totalRefundBaseTokens::sub | [Int] 🔒   
   ├─ baseReserve::add | [Int] 🔒   
   ├─ IERC1155::safeTransferFrom | [Pub] ❗️  🛑 
   └─ IERC1155::safeBatchTransferFrom | [Pub] ❗️  🛑