/// <inheritdoc/>
        public async Task DeployContractAsync(ContractDto contractDto)
        {
            // get runner
            var runner = _smartContractRunnerContainer.GetRunner(contractDto.SmartContractRegistration.Category);
            await Task.Run(() => runner.CodeCheck(contractDto.SmartContractRegistration.Code.ToByteArray(), contractDto.IsPrivileged));

            if (contractDto.ContractName != null)
            {
                _smartContractAddressService.SetAddress(contractDto.ContractName, contractDto.ContractAddress);
            }
            await _smartContractExecutiveService.SetContractInfoAsync(contractDto.ContractAddress,
                                                                      contractDto.BlockHeight);

            //Todo New version metadata handle it
//            var contractType = runner.GetContractType(registration);
//            var contractTemplate = runner.ExtractMetadata(contractType);
//            await _functionMetadataService.DeployContract(contractAddress, contractTemplate);
        }