tbtc - Where possible, a specific contract type should be used rather than address
Rather than storing addresses and then casting to the known contract type, it's better to use the best type available so the compiler can check for type safety.\\n`TBTCSystem.priceFeed` is of type `address`, but it could be type `IBTCETHPriceFeed` instead. Not only would this give a little more type safety when deploying new modules, but it would avoid repeated casts throughout the codebase of the form `IBTCETHPriceFeed(priceFeed)`, `IRelay(relay)`, `TBTCSystem()`, and others.\\n```\\nstruct Deposit {\\n\\n    // SET DURING CONSTRUCTION\\n    address TBTCSystem;\\n    address TBTCToken;\\n    address TBTCDepositToken;\\n    address FeeRebateToken;\\n    address VendingMachine;\\n    uint256 lotSizeSatoshis;\\n    uint8 currentState;\\n    uint256 signerFeeDivisor;\\n    uint128 undercollateralizedThresholdPercent;\\n    uint128 severelyUndercollateralizedThresholdPercent;\\n```\\n\\n```\\ncontract DepositFactory is CloneFactory, TBTCSystemAuthority{\\n\\n    // Holds the address of the deposit contract\\n    // which will be used as a master contract for cloning.\\n    address public masterDepositAddress;\\n    address public tbtcSystem;\\n    address public tbtcToken;\\n    address public tbtcDepositToken;\\n    address public feeRebateToken;\\n    address public vendingMachine;\\n    uint256 public keepThreshold;\\n    uint256 public keepSize;\\n```\\n\\nRemediation\\nWhere possible, use more specific types instead of `address`. This goes for parameter types as well as state variable types.
Resolution\\nThis issue has been addressed with https://github.com/keep-network/tbtc/issues/507 and keep-network/tbtc#542.
```\\nstruct Deposit {\\n\\n    // SET DURING CONSTRUCTION\\n    address TBTCSystem;\\n    address TBTCToken;\\n    address TBTCDepositToken;\\n    address FeeRebateToken;\\n    address VendingMachine;\\n    uint256 lotSizeSatoshis;\\n    uint8 currentState;\\n    uint256 signerFeeDivisor;\\n    uint128 undercollateralizedThresholdPercent;\\n    uint128 severelyUndercollateralizedThresholdPercent;\\n```\\n