Skip to content

Commit

Permalink
fix ens reverse
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhongFuze committed Mar 19, 2024
1 parent b53eb3c commit 909586f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 52 deletions.
12 changes: 9 additions & 3 deletions src/config/tdb/migrations/LoadingJob_SocialGraph.gsql
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ CREATE OR REPLACE QUERY upsert_isolated_vertex(STRING vertex_str) FOR GRAPH Soci
v.profile_url = profile_url,
v.avatar_url = avatar_url,
v.updated_at = to_datetime(updated_at),
v.expired_at = to_datetime(expired_at),
IF datetime_diff(to_datetime(expired_at), v.expired_at) > 0 THEN
v.expired_at = to_datetime(expired_at)
END,
v.reverse = v.reverse OR reverse,
IF uid != "" THEN
v.uid = uid
Expand Down Expand Up @@ -152,7 +154,9 @@ CREATE OR REPLACE QUERY upsert_hyper_vertex(STRING from_str, STRING to_str) FOR
v.profile_url = profile_url,
v.avatar_url = avatar_url,
v.updated_at = to_datetime(updated_at),
v.expired_at = to_datetime(expired_at),
IF datetime_diff(to_datetime(expired_at), v.expired_at) > 0 THEN
v.expired_at = to_datetime(expired_at)
END,
v.reverse = v.reverse OR reverse,
IF uid != "" THEN
v.uid = uid
Expand Down Expand Up @@ -233,7 +237,9 @@ CREATE OR REPLACE QUERY upsert_hyper_vertex(STRING from_str, STRING to_str) FOR
v.profile_url = profile_url,
v.avatar_url = avatar_url,
v.updated_at = to_datetime(updated_at),
v.expired_at = to_datetime(expired_at),
IF datetime_diff(to_datetime(expired_at), v.expired_at) > 0 THEN
v.expired_at = to_datetime(expired_at)
END,
v.reverse = v.reverse OR reverse,
IF uid != "" THEN
v.uid = uid
Expand Down
12 changes: 3 additions & 9 deletions src/upstream/ens_reverse/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,24 +41,18 @@ impl Fetcher for ENSReverseLookup {
// our cache should also be cleared.
// Reach this by setting `display_name` into `Some("")`.
let reverse_ens = record.reverse_record.clone().unwrap_or("".into());
if reverse_ens == "" {
return Ok(vec![]);
}
info!("ENS Reverse record: {} => {}", wallet, reverse_ens);

let mut eth_identity = Identity::default();
eth_identity.uuid = Some(Uuid::new_v4());
eth_identity.platform = Platform::Ethereum;
eth_identity.identity = wallet.clone();
eth_identity.display_name = Some(reverse_ens.clone());
let cli = make_http_client();
create_isolated_vertex(&cli, &eth_identity).await?;

// If reverse lookup record reverse_record is None
// Do not save the reverse_resolve_record
if record.reverse_record.is_none() {
if reverse_ens == "" {
return Ok(vec![]);
}
info!("ENS Reverse record: {} => {}", wallet, reverse_ens);

eth_identity.reverse = Some(true); // ethereum and primary ens remain same value
let ens_domain = Identity {
uuid: Some(Uuid::new_v4()),
Expand Down
4 changes: 2 additions & 2 deletions src/upstream/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,20 +158,20 @@ pub async fn fetch_many(targets: Vec<Target>, round: Option<u16>) -> Result<Vec<
/// Returns amount of identities just fetched for next iter.
pub async fn fetch_one(target: &Target) -> Result<Vec<Target>, Error> {
let mut up_next: TargetProcessedList = join_all(vec![
Farcaster::fetch(target),
Aggregation::fetch(target),
SybilList::fetch(target),
Keybase::fetch(target),
ProofClient::fetch(target),
Rss3::fetch(target),
Knn3::fetch(target),
TheGraph::fetch(target),
ENSReverseLookup::fetch(target),
DotBit::fetch(target),
UnstoppableDomains::fetch(target),
Farcaster::fetch(target),
SpaceId::fetch(target),
Lens::fetch(target),
Crossbell::fetch(target),
TheGraph::fetch(target),
])
.await
.into_iter()
Expand Down
42 changes: 4 additions & 38 deletions src/upstream/the_graph/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@ use crate::error::Error;
use crate::tigergraph::edge::{Hold, Resolve};
use crate::tigergraph::upsert::create_contract_to_identity_resolve_record;
use crate::tigergraph::upsert::create_identity_domain_resolve_record;
use crate::tigergraph::upsert::create_identity_domain_reverse_resolve_record;
use crate::tigergraph::upsert::create_identity_to_contract_hold_record;
use crate::tigergraph::upsert::create_identity_to_contract_reverse_resolve_record;
use crate::tigergraph::upsert::create_identity_to_identity_hold_record;
use crate::tigergraph::vertex::{Contract, Identity};
use crate::upstream::{
ens_reverse::fetch_record, Chain, ContractCategory, DataFetcher, DataSource, DomainNameSystem,
Fetcher, Platform, Target, TargetProcessedList,
Chain, ContractCategory, DataFetcher, DataSource, DomainNameSystem, Fetcher, Platform, Target,
TargetProcessedList,
};
use crate::util::{make_http_client, naive_now, parse_timestamp};
use async_trait::async_trait;
Expand Down Expand Up @@ -267,7 +265,7 @@ async fn perform_fetch(target: &Target) -> Result<TargetProcessedList, Error> {

for domain in merged_domains.into_iter() {
// Create own record
let (contract, mut ens_domain) = create_or_update_own(&cli, &domain).await?;
let (contract, ens_domain) = create_or_update_own(&cli, &domain).await?;

// Deal with resolve target.
let resolved_address = domain.resolved_address.map(|r| r.id);
Expand All @@ -277,7 +275,7 @@ async fn perform_fetch(target: &Target) -> Result<TargetProcessedList, Error> {
if !address.starts_with("0x000000000000000000000000000000000000") {
// Create resolve record
debug!(?target, address, domain = domain.name, "TheGraph: Resolved");
let mut resolve_target = Identity {
let resolve_target = Identity {
uuid: Some(Uuid::new_v4()),
platform: Platform::Ethereum,
identity: address.clone(),
Expand All @@ -301,38 +299,6 @@ async fn perform_fetch(target: &Target) -> Result<TargetProcessedList, Error> {
updated_at: naive_now(),
};

// Find reverse resolve target here
let record = fetch_record(&address).await?;
if !record.reverse_record.is_none() {
let reverse_ens = record.reverse_record.clone().unwrap_or("".into());
if reverse_ens == domain.name {
resolve_target.display_name = Some(reverse_ens.clone());
resolve_target.reverse = Some(true);
ens_domain.reverse = Some(true);
let reverse = Resolve {
uuid: Uuid::new_v4(),
source: DataSource::TheGraph,
system: DomainNameSystem::ENS,
name: reverse_ens.clone(),
fetcher: DataFetcher::RelationService,
updated_at: naive_now(),
};
create_identity_domain_reverse_resolve_record(
&cli,
&resolve_target,
&ens_domain,
&reverse,
)
.await?;
create_identity_to_contract_reverse_resolve_record(
&cli,
&resolve_target,
&contract,
&reverse,
)
.await?;
}
}
// regular resolved address
create_identity_domain_resolve_record(
&cli,
Expand Down

0 comments on commit 909586f

Please sign in to comment.