Skip to content

Commit da9a3c6

Browse files
authored
Utils.GetSocialProfiles // ENS, Farcaster & Lens (#83)
1 parent 17f87c5 commit da9a3c6

File tree

6 files changed

+376
-120
lines changed

6 files changed

+376
-120
lines changed

Thirdweb.Console/Program.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@
3535

3636
#endregion
3737

38+
#region Get Social Profiles
39+
40+
// var socialProfiles = await Utils.GetSocialProfiles(client, "joenrv.eth");
41+
// Console.WriteLine($"Social Profiles: {socialProfiles}");
42+
43+
#endregion
44+
3845
#region AA 0.6
3946

4047
// var smartWallet06 = await SmartWallet.Create(

Thirdweb.Tests/Thirdweb.Utils/Thirdweb.Utils.Tests.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,4 +612,49 @@ public async Task IsDeployed_ReturnsFalse_WhenContractIsNotDeployed()
612612

613613
Assert.False(isDeployed);
614614
}
615+
616+
[Fact(Timeout = 120000)]
617+
public async Task GetSocialProfiles_WithENS()
618+
{
619+
var socialProfiles = await Utils.GetSocialProfiles(this.Client, "joenrv.eth");
620+
621+
Assert.NotNull(socialProfiles);
622+
Assert.True(socialProfiles.EnsProfiles.Count > 0);
623+
}
624+
625+
[Fact(Timeout = 120000)]
626+
public async Task GetSocialProfiles_WithAddress()
627+
{
628+
var address = "0x2247d5d238d0f9d37184d8332aE0289d1aD9991b";
629+
var socialProfiles = await Utils.GetSocialProfiles(this.Client, address);
630+
631+
Assert.NotNull(socialProfiles);
632+
Assert.True(socialProfiles.EnsProfiles.Count > 0);
633+
}
634+
635+
[Fact(Timeout = 120000)]
636+
public async Task GetSocialProfiles_ThrowsException_WhenInputIsInvalid()
637+
{
638+
var invalidInput = "invalid_input";
639+
var exception = await Assert.ThrowsAsync<ArgumentException>(async () => await Utils.GetSocialProfiles(this.Client, invalidInput));
640+
641+
Assert.Contains("Invalid address or ENS.", exception.Message);
642+
}
643+
644+
[Fact(Timeout = 120000)]
645+
public async Task GetSocialProfiles_ThrowsException_WhenInputIsNull()
646+
{
647+
var exception = await Assert.ThrowsAsync<ArgumentNullException>(async () => await Utils.GetSocialProfiles(this.Client, null));
648+
649+
Assert.Equal("addressOrEns", exception.ParamName);
650+
}
651+
652+
[Fact(Timeout = 120000)]
653+
public async Task GetSocialProfiles_ThrowsException_InvalidAuth()
654+
{
655+
var client = ThirdwebClient.Create("a");
656+
var exception = await Assert.ThrowsAsync<Exception>(async () => await Utils.GetSocialProfiles(client, "joenrv.eth"));
657+
658+
Assert.Contains("Failed to fetch social profiles", exception.Message);
659+
}
615660
}

Thirdweb/Thirdweb.Utils/Constants.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public static class Constants
2323
internal const string FALLBACK_IPFS_GATEWAY = "https://ipfs.io/ipfs/";
2424
internal const string PIN_URI = "https://storage.thirdweb.com/ipfs/upload";
2525
internal const string ENS_REGISTRY_ADDRESS = "0xce01f8eee7E479C928F8919abD53E553a36CeF67";
26+
internal const string SOCIAL_API_URL = "https://social.thirdweb.com";
2627

2728
internal const string ENTRYPOINT_V06_ABI =
2829
/*lang=json,strict*/

Thirdweb/Thirdweb.Utils/ThirdwebChainData.cs

Lines changed: 0 additions & 118 deletions
This file was deleted.

0 commit comments

Comments
 (0)