For this contract https://bscscan.com/address/0xedfcb78e73f7ba6ad2d829bf5d462a0924da28ed#code There are eight source files which are known as "Solidity Multiple files format"
However neither the bscscan website: https://bscscan.com/address/0xedfcb78e73f7ba6ad2d829bf5d462a0924da28ed#code nor the bscscan API: https://api.bscscan.com/api?module=contract&action=getabi&address=0xedfcb78e73f7ba6ad2d829bf5d462a0924da28ed can get full ABI.
They only provide the ABI for the first source file.
How do I get the full and functional ABI to interact with?
That's an expected result. The ABI JSON is generated only for
publicandexternalfunctions, as well as for autogenerated functions frompublicproperties of the main contract and its parents.The imported contracts are usually called from or inherited by the main contract, but theoretically they can be unused as well.
Note: It doesn't need to be the first contract in the order, you pass the main contract name as one of the options for compilation.
In your example, the
AdminUpgradeabilityProxyis the main contract, deriving fromUpgradeabilityProxy, which derives fromProxy. So the ABI json contains allpublicandexternalfunctions and events from these three contracts.