Does a contract's constructor re-run every time it is called from an EOA or does the initialized state persist in the contract storage once it is created by the first msg.sender ?
If the first contract (token) calls and initializes another contract (faucet) in the constructor, is faucet re-initialized every time an EOA calls token ?
For example from the ethereum book:
import "Faucet.sol"
contract Token is mortal {
Faucet _faucet;
constructor(address _f) {
_faucet = Faucet(_f);
_faucet.withdraw(0.1 ether)
// If faucet has a total limit defined as a state variable (=100),
// will 100 be depleted every time an EOA calls token ?
// or, will it reinitialize as 100 and therefore only deplete to 99.9 ?
}
}