protected VersionedContract(IDictionary <UInt256, T> versions, ICache <Keccak, UInt256> cache, long activation)
 {
     _versions = versions ?? throw new ArgumentNullException(nameof(versions));
     _versionSelectorContract = versions.Values.Last();
     Activation     = activation;
     _versionsCache = cache ?? throw new ArgumentNullException(nameof(cache));
 }