crytic / tealer

Static Analyzer for Teal
GNU Affero General Public License v3.0
61 stars 14 forks source link

Add support to run Tealer on contracts from algoexplorer #146

Closed S3v3ru5 closed 1 year ago

S3v3ru5 commented 1 year ago

Adds support to fetch contracts from Algoexplorer (https://algoexplorer.io/) and run tealer on them.

Runs on the application given it's id

$ tealer 991196662 --print-cfg
Fetching application using id "991196662"
Network: "MAINET"

CFG exported to file: cfg.dot

Runs on the logic signature(stateless contract) that signed the given transaction

$ tealer VFFVCSPFBK36ZN2FPDPDI6PFUO44OLZPBU6XPGOIGSR5L2XK6HFQ --print-cfg
Fetching logic-sig contract that signed the transaction "VFFVCSPFBK36ZN2FPDPDI6PFUO44OLZPBU6XPGOIGSR5L2XK6HFQ"
Network: "MAINET"

CFG exported to file: cfg.dot

Runs on the logic signature controlling a contract account

$ tealer D6DDUCPSDWD4IA2L3FL4ZC6NVKXGQYOU4LJQMHKV6NVCYHRURSFKYPFN5M --print-cfg --network mainnet
Fetching logic-sig of contract account "D6DDUCPSDWD4IA2L3FL4ZC6NVKXGQYOU4LJQMHKV6NVCYHRURSFKYPFN5M"
Network: "MAINET"

CFG exported to file: cfg.dot

Mainnet and Testnet are supported. Use --network to specify the Algorand network from which to fetch the contract.

$ tealer --help
...
options:
...
  --network NETWORK     Algorand network to fetch the contract from, ("mainnet" or "testnet"). defaults to
                        "mainnet".

Testnet example:

$ tealer 115884263 --network testnet --print-cfg
Fetching application using id "115884263"
Network: "TESTNET"

CFG exported to file: cfg.dot