1
1
// using System.Numerics;
2
+ using System . Numerics ;
2
3
using Thirdweb . AI ;
3
4
4
5
namespace Thirdweb . Tests . AI ;
5
6
6
7
public class NebulaTests : BaseTests
7
8
{
8
- // private const string NEBULA_TEST_CONTRACT = "0xe2cb0eb5147b42095c2FfA6F7ec953bb0bE347D8";
9
- // private const string NEBULA_TEST_USDC_ADDRESS = "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238";
10
- // private const int NEBULA_TEST_CHAIN = 11155111;
9
+ private const string NEBULA_TEST_USDC_ADDRESS = "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238" ;
10
+
11
+ private const string NEBULA_TEST_CONTRACT = "0xe2cb0eb5147b42095c2FfA6F7ec953bb0bE347D8" ;
12
+
13
+ private const int NEBULA_TEST_CHAIN = 11155111 ;
11
14
12
15
public NebulaTests ( ITestOutputHelper output )
13
16
: base ( output ) { }
@@ -33,104 +36,58 @@ public async Task Create_ResumesSession()
33
36
Assert . Equal ( sessionId , nebula . SessionId ) ;
34
37
}
35
38
36
- // [Fact(Timeout = 120000)]
37
- // public async Task Chat_Single_ReturnsResponse()
38
- // {
39
- // var nebula = await ThirdwebNebula.Create(this.Client);
40
- // var response = await nebula.Chat(
41
- // message: "What's the symbol of this contract?",
42
- // context: new NebulaContext(contractAddresses: new List<string> { NEBULA_TEST_CONTRACT }, chainIds: new List<BigInteger> { NEBULA_TEST_CHAIN })
43
- // );
44
- // Assert.NotNull(response);
45
- // Assert.NotNull(response.Message);
46
- // Assert.Contains("CAT", response.Message);
47
- // }
48
-
49
- // [Fact(Timeout = 120000)]
50
- // public async Task Chat_Single_NoContext_ReturnsResponse()
51
- // {
52
- // var nebula = await ThirdwebNebula.Create(this.Client);
53
- // var response = await nebula.Chat(message: $"What's the symbol of this contract: {NEBULA_TEST_CONTRACT} (Sepolia)?");
54
- // Assert.NotNull(response);
55
- // Assert.NotNull(response.Message);
56
- // Assert.Contains("CAT", response.Message);
57
- // }
58
-
59
- // [Fact(Timeout = 120000)]
60
- // public async Task Chat_Multiple_ReturnsResponse()
61
- // {
62
- // var nebula = await ThirdwebNebula.Create(this.Client);
63
- // var response = await nebula.Chat(
64
- // messages: new List<NebulaChatMessage>
65
- // {
66
- // new("What's the symbol of this contract?", NebulaChatRole.User),
67
- // new("The symbol is CAT", NebulaChatRole.Assistant),
68
- // new("What's the name of this contract?", NebulaChatRole.User),
69
- // },
70
- // context: new NebulaContext(contractAddresses: new List<string> { NEBULA_TEST_CONTRACT }, chainIds: new List<BigInteger> { NEBULA_TEST_CHAIN })
71
- // );
72
- // Assert.NotNull(response);
73
- // Assert.NotNull(response.Message);
74
- // Assert.Contains("CatDrop", response.Message, StringComparison.OrdinalIgnoreCase);
75
- // }
39
+ [ Fact ( Timeout = 120000 ) ]
40
+ public async Task Chat_Single_ReturnsResponse ( )
41
+ {
42
+ var nebula = await ThirdwebNebula . Create ( this . Client ) ;
43
+ var response = await nebula . Chat ( message : $ "What's the symbol of this contract { NEBULA_TEST_CONTRACT } ?", context : new NebulaContext ( chainIds : new List < BigInteger > ( ) { NEBULA_TEST_CHAIN } ) ) ;
44
+ Assert . NotNull ( response ) ;
45
+ Assert . NotNull ( response . Message ) ;
46
+ Assert . Contains ( "CAT" , response . Message ) ;
47
+ }
76
48
77
- // [Fact(Timeout = 120000)]
78
- // public async Task Chat_UnderstandsWalletContext()
79
- // {
80
- // var wallet = await PrivateKeyWallet.Generate(this.Client);
81
- // var expectedAddress = await wallet.GetAddress();
82
- // var nebula = await ThirdwebNebula.Create(this.Client);
83
- // var response = await nebula.Chat(message: "What is my wallet address?", wallet: wallet);
84
- // Assert.NotNull(response);
85
- // Assert.NotNull(response.Message);
86
- // Assert.Contains(expectedAddress, response.Message);
87
- // }
49
+ [ Fact ( Timeout = 120000 ) ]
50
+ public async Task Chat_Single_NoContext_ReturnsResponse ( )
51
+ {
52
+ var nebula = await ThirdwebNebula . Create ( this . Client ) ;
53
+ var response = await nebula . Chat ( message : $ "What's the symbol of this contract: { NEBULA_TEST_CONTRACT } (Sepolia)?") ;
54
+ Assert . NotNull ( response ) ;
55
+ Assert . NotNull ( response . Message ) ;
56
+ Assert . Contains ( "CAT" , response . Message ) ;
57
+ }
88
58
89
- // [Fact(Timeout = 120000)]
90
- // public async Task Execute_ReturnsMessageAndReceipt()
91
- // {
92
- // var signer = await PrivateKeyWallet.Generate(this.Client);
93
- // var wallet = await SmartWallet.Create(signer, NEBULA_TEST_CHAIN);
94
- // var nebula = await ThirdwebNebula.Create(this.Client);
95
- // var response = await nebula.Execute(
96
- // new List<NebulaChatMessage>
97
- // {
98
- // new("What's the address of vitalik.eth", NebulaChatRole.User),
99
- // new("The address of vitalik.eth is 0xd8dA6BF26964aF8E437eEa5e3616511D7G3a3298", NebulaChatRole.Assistant),
100
- // new("Approve 1 USDC to them", NebulaChatRole.User),
101
- // },
102
- // wallet: wallet,
103
- // context: new NebulaContext(contractAddresses: new List<string>() { NEBULA_TEST_USDC_ADDRESS })
104
- // );
105
- // Assert.NotNull(response);
106
- // Assert.NotNull(response.Message);
107
- // Assert.NotNull(response.TransactionReceipts);
108
- // Assert.NotEmpty(response.TransactionReceipts);
109
- // Assert.NotNull(response.TransactionReceipts[0].TransactionHash);
110
- // Assert.True(response.TransactionReceipts[0].TransactionHash.Length == 66);
111
- // }
59
+ [ Fact ( Timeout = 120000 ) ]
60
+ public async Task Chat_UnderstandsWalletContext ( )
61
+ {
62
+ var wallet = await PrivateKeyWallet . Generate ( this . Client ) ;
63
+ var expectedAddress = await wallet . GetAddress ( ) ;
64
+ var nebula = await ThirdwebNebula . Create ( this . Client ) ;
65
+ var response = await nebula . Chat ( message : "What is my wallet address?" , wallet : wallet ) ;
66
+ Assert . NotNull ( response ) ;
67
+ Assert . NotNull ( response . Message ) ;
68
+ Assert . Contains ( expectedAddress , response . Message ) ;
69
+ }
112
70
113
- // [Fact(Timeout = 120000)]
114
- // public async Task Execute_ReturnsMessageAndReceipts()
115
- // {
116
- // var signer = await PrivateKeyWallet.Generate(this.Client);
117
- // var wallet = await SmartWallet.Create(signer, NEBULA_TEST_CHAIN);
118
- // var nebula = await ThirdwebNebula.Create(this.Client);
119
- // var response = await nebula.Execute(
120
- // new List<NebulaChatMessage>
121
- // {
122
- // new("What's the address of vitalik.eth", NebulaChatRole.User),
123
- // new("The address of vitalik.eth is 0xd8dA6BF26964aF8E437eEa5e3616511D7G3a3298", NebulaChatRole.Assistant),
124
- // new("Approve 1 USDC to them", NebulaChatRole.User),
125
- // },
126
- // wallet: wallet,
127
- // context: new NebulaContext(contractAddresses: new List<string>() { NEBULA_TEST_USDC_ADDRESS })
128
- // );
129
- // Assert.NotNull(response);
130
- // Assert.NotNull(response.Message);
131
- // Assert.NotNull(response.TransactionReceipts);
132
- // Assert.NotEmpty(response.TransactionReceipts);
133
- // Assert.NotNull(response.TransactionReceipts[0].TransactionHash);
134
- // Assert.True(response.TransactionReceipts[0].TransactionHash.Length == 66);
135
- // }
71
+ [ Fact ( Timeout = 120000 ) ]
72
+ public async Task Execute_ReturnsMessageAndReceipt ( )
73
+ {
74
+ var signer = await PrivateKeyWallet . Generate ( this . Client ) ;
75
+ var wallet = await SmartWallet . Create ( signer , NEBULA_TEST_CHAIN ) ;
76
+ var nebula = await ThirdwebNebula . Create ( this . Client ) ;
77
+ var response = await nebula . Execute (
78
+ new List < NebulaChatMessage >
79
+ {
80
+ new ( "What's the address of vitalik.eth" , NebulaChatRole . User ) ,
81
+ new ( "The address of vitalik.eth is 0xd8dA6BF26964aF8E437eEa5e3616511D7G3a3298" , NebulaChatRole . Assistant ) ,
82
+ new ( $ "Approve 1 USDC (this contract: { NEBULA_TEST_USDC_ADDRESS } ) to them", NebulaChatRole . User ) ,
83
+ } ,
84
+ wallet : wallet
85
+ ) ;
86
+ Assert . NotNull ( response ) ;
87
+ Assert . NotNull ( response . Message ) ;
88
+ Assert . NotNull ( response . TransactionReceipts ) ;
89
+ Assert . NotEmpty ( response . TransactionReceipts ) ;
90
+ Assert . NotNull ( response . TransactionReceipts [ 0 ] . TransactionHash ) ;
91
+ Assert . True ( response . TransactionReceipts [ 0 ] . TransactionHash . Length == 66 ) ;
92
+ }
136
93
}
0 commit comments