Skip to content

Commit

Permalink
fix: convert EnsMiddleware to use new RpcRequest functions
Browse files Browse the repository at this point in the history
  • Loading branch information
ArtificialPB committed Jan 22, 2024
1 parent af8b60b commit 4579532
Showing 1 changed file with 11 additions and 23 deletions.
34 changes: 11 additions & 23 deletions ethers-ens/src/main/kotlin/io/ethers/ens/EnsMiddleware.kt
Original file line number Diff line number Diff line change
Expand Up @@ -217,23 +217,22 @@ class EnsMiddleware @JvmOverloads constructor(
data = Bytes(callbackData)
},
BlockId.LATEST,
).map {
return@map when {
)
.mapError { Error.FailedToResolve("Failed to resolve ens name: $ensName with resolver ${resolver.address}.") }
.andThen {
// Return different errors on empty address and failure to resolve
it.isError -> RpcResponse.error(Error.FailedToResolve("Failed to resolve ens name: $ensName with resolver ${resolver.address}."))
// TODO - handle differently
abiFunction.selector.contentEquals(ExtendedResolver.FUNCTION_ADDR.selector) &&
(AbiCodec.decode(AbiType.Address, it.resultOrThrow().value) as Address) == Address.ZERO ->
RpcResponse.error(
val isAddrCall = abiFunction.selector.contentEquals(ExtendedResolver.FUNCTION_ADDR.selector)
if (isAddrCall && (AbiCodec.decode(AbiType.Address, it.value) as Address) == Address.ZERO) {
return@andThen RpcResponse.error(
Error.UnknownEnsName(
resolver.address,
FastHex.encodeWithPrefix(nameHash),
),
)

else -> it
}
}.sendAwait()
}
RpcResponse.result(it)
}.sendAwait()
}
}

Expand All @@ -254,19 +253,8 @@ class EnsMiddleware @JvmOverloads constructor(

val address = registryContract.resolver(Bytes(nameHash))
.call(BlockId.LATEST)
.map {
return@map when {
it.isError -> RpcResponse.error(
Error.ResolvingResolver(
registryAddress,
FastHex.encodeWithPrefix(nameHash),
),
)

it.resultOrThrow() == Address.ZERO -> RpcResponse.error(Error.UnknownResolver)
else -> it
}
}
.mapError { Error.ResolvingResolver(registryAddress, FastHex.encodeWithPrefix(nameHash)) }
.andThen { if (it == Address.ZERO) RpcResponse.error(Error.UnknownResolver) else RpcResponse.result(it) }
.sendAwait()

if (address.error?.asTypeOrNull<Error.UnknownResolver>() != null) {
Expand Down

0 comments on commit 4579532

Please sign in to comment.