public Task ExecuteAsync(RuntimeContext context)
        {
            if (context.Contracts.ContainsKey(Name))
            {
                throw new Exception($"The name '{Name}' already exists.");
            }
            if (!EthAddressParser.ValidateAddress(Address))
            {
                throw new Exception($"The address '{Address}' is invalid.");
            }

            context.Contracts.Add(Name, new EthContractDescriptor(Name, Address));

            Console.WriteLine($"Contract at '{Address}' registered as '{Name}'.");

            return(Task.CompletedTask);
        }
예제 #2
0
        public bool TryResolveContractReference(string reference, out string address)
        {
            if (Contracts.ContainsKey(reference))
            {
                address = Contracts[reference].ContractAddress;
                return(true);
            }

            if (EthAddressParser.ValidateAddress(reference))
            {
                address = reference;
                return(true);
            }

            address = null;
            return(false);
        }