Ejemplo n.º 1
0
        public async ValueTask <(string Registrant, ulong TimeToLive, string Resolver, string Contract)> ResolveAsync(string Domain)
        {
            if (!Domain.EndsWith(".eth", StringComparison.InvariantCultureIgnoreCase))
            {
                throw new NotImplementedException($"Only .ETH Top-Level Domain is Supported.");
            }

            var NameHashString = EnsUtil.GetNameHash(Domain);

            var NameHashBytes = NameHashString.HexToByteArray();

            var TimeToLive = await GetTimeToLiveAsync(NameHashBytes);

            var ResolverFunction = new ResolverFunction()
            {
                Node = NameHashBytes
            };

            //get the resolver address from ENS
            var Resolver = await ENSRegistryService.ResolverQueryAsync(ResolverFunction);

            var OwnerFunction = new OwnerFunction()
            {
                Node = NameHashBytes
            };

            var Registrant = await ENSRegistryService.OwnerQueryAsync(OwnerFunction);

            var ResolverService = new PublicResolverService(Web3, Resolver);

            //and get the address from the resolver
            var Contract = await ResolverService.AddrQueryAsync(NameHashBytes);

            return(Registrant, TimeToLive, Resolver, Contract);
        }
Ejemplo n.º 2
0
        public Task <string> ResolverQueryAsync(byte[] node, BlockParameter blockParameter = null)
        {
            var resolverFunction = new ResolverFunction();

            resolverFunction.Node = node;

            return(ContractHandler.QueryAsync <ResolverFunction, string>(resolverFunction, blockParameter));
        }
Ejemplo n.º 3
0
        public async Task <string> ResolveAsync(string Domain)
        {
            var NameHashString = EnsUtil.GetNameHash(Domain);

            var NameHashBytes = NameHashString.HexToByteArray();

            var ResolverFunction = new ResolverFunction()
            {
                Node = NameHashBytes
            };

            //get the resolver address from ENS
            var ResolverAddress = await ENSRegistryService.ResolverQueryAsync(ResolverFunction);

            var ResolverService = new PublicResolverService(Web3, ResolverAddress);

            //and get the address from the resolver
            var Address = await ResolverService.AddrQueryAsync(NameHashBytes);

            return(Address);
        }
Ejemplo n.º 4
0
 public Task <string> ResolverQueryAsync(ResolverFunction resolverFunction, BlockParameter blockParameter = null)
 {
     return(ContractHandler.QueryAsync <ResolverFunction, string>(resolverFunction, blockParameter));
 }