public SupplyContractRepository(string address, Web3 web3, INethereumLogger nethereumLogger)
        {
            _web3     = web3 ?? throw new ArgumentNullException(nameof(web3));
            _contract = new BaseContract(address, web3).Contract;

            _nethereumLogger = nethereumLogger ?? throw new ArgumentNullException(nameof(nethereumLogger));
        }
        public SupplyContractRepository(INethereumLogger nethereumLogger)
        {
            _nethereumLogger = nethereumLogger ?? throw new ArgumentNullException(nameof(nethereumLogger));

            var address = AppSettingsProvider.ContractAddress ?? throw new ArgumentNullException(nameof(AppSettingsProvider.ContractAddress));

            _web3     = new Web3(AppSettingsProvider.InfuraApiAddress);
            _contract = new BaseContract(address, _web3).Contract;
        }
 public SupplyBlockchain(string url, string address, INethereumLogger nethereumLogger)
 {
     _url = url;
     SupplyChainContract = new SupplyContractRepository(address, Web3Api, nethereumLogger);
 }