keep-tecdsa - If caller sends more than is contained in the signer subsidy pool, the value is burned
The signer subsidy pool in `BondedECDSAKeepFactory` tracks funds sent to the contract. Each time a keep is opened, the subsidy pool is intended to be distributed to the members of the new keep:\\n```\\n// If subsidy pool is non-empty, distribute the value to signers but\\n// never distribute more than the payment for opening a keep.\\nuint256 signerSubsidy = subsidyPool < msg.value\\n    ? subsidyPool\\n    : msg.value;\\nif (signerSubsidy > 0) {\\n    subsidyPool -= signerSubsidy;\\n    keep.distributeETHToMembers.value(signerSubsidy)();\\n}\\n```\\n\\nThe tracking around subsidy pool increases is inconsistent, and can lead to sent value being burned. In the case that `subsidyPool` contains less Ether than is sent in `msg.value`, `msg.value` is unused and remains in the contract. It may or may not be added to `subsidyPool`, depending on the return status of the random beacon:\\n```\\n(bool success, ) = address(randomBeacon).call.gas(400000).value(msg.value)(\\n    abi.encodeWithSignature(\\n        "requestRelayEntry(address,string,uint256)",\\n        address(this),\\n        "setGroupSelectionSeed(uint256)",\\n        callbackGas\\n    )\\n);\\nif (!success) {\\n    subsidyPool += msg.value; // beacon is busy\\n}\\n```\\n
Rather than tracking the `subsidyPool` individually, simply distribute `this.balance` to each new keep's members.
```\\n// If subsidy pool is non-empty, distribute the value to signers but\\n// never distribute more than the payment for opening a keep.\\nuint256 signerSubsidy = subsidyPool < msg.value\\n    ? subsidyPool\\n    : msg.value;\\nif (signerSubsidy > 0) {\\n    subsidyPool -= signerSubsidy;\\n    keep.distributeETHToMembers.value(signerSubsidy)();\\n}\\n```\\n