Skip to content

Commit bea114a

Browse files
committed
+ CreateNewKey, DeleteKey, DeleteAllKeys, ExportKey
1 parent 8cd9213 commit bea114a

22 files changed

+421
-5
lines changed

TonLibDotNet.Demo/Program.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Microsoft.Extensions.DependencyInjection;
22
using Microsoft.Extensions.Hosting;
33
using Microsoft.Extensions.Logging;
4+
using TonLibDotNet.Requests;
45
using TonLibDotNet.Types;
56

67
namespace TonLibDotNet
@@ -63,7 +64,13 @@ public static async Task Main(string[] args)
6364
}
6465
}
6566

66-
var key = await tonClient.GetBip39Hints("zo");
67+
var hints = await tonClient.GetBip39Hints("zo");
68+
69+
var key = await tonClient.CreateNewKey();
70+
var ek = await tonClient.ExportKey(key);
71+
await tonClient.DeleteKey(key);
72+
73+
// await tonClient.DeleteAllKeys();
6774

6875
// Loggers need some time to flush data to screen/console.
6976
await Task.Delay(TimeSpan.FromSeconds(1));
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
namespace TonLibDotNet.Requests
2+
{
3+
public class CreateNewKeyTests
4+
{
5+
[Fact]
6+
public void DeserializeOk()
7+
{
8+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.CreateNewKey);
9+
10+
Assert.NotNull(baseObj);
11+
12+
var obj = Assert.IsType<CreateNewKey>(baseObj);
13+
14+
Assert.Equal("111", obj.LocalPassword);
15+
Assert.Equal("222", obj.MnemonicPassword);
16+
Assert.Equal("333", obj.RandomExtraSeed);
17+
}
18+
}
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace TonLibDotNet.Requests
2+
{
3+
public class DeleteAllKeysTests
4+
{
5+
[Fact]
6+
public void DeserializeOk()
7+
{
8+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.DeleteAllKeys);
9+
10+
Assert.NotNull(baseObj);
11+
12+
Assert.IsType<DeleteAllKeys>(baseObj);
13+
}
14+
}
15+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
namespace TonLibDotNet.Requests
2+
{
3+
public class DeleteKeyTests
4+
{
5+
[Fact]
6+
public void DeserializeOk()
7+
{
8+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.DeleteKey);
9+
10+
Assert.NotNull(baseObj);
11+
12+
var obj = Assert.IsType<DeleteKey>(baseObj);
13+
14+
Assert.NotNull(obj.Key);
15+
Assert.Equal("Pub...HnG", obj.Key.PublicKey);
16+
Assert.Equal("gbV...bA=", obj.Key.Secret);
17+
}
18+
}
19+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using TonLibDotNet.Types;
2+
3+
namespace TonLibDotNet.Requests
4+
{
5+
public class ExportKeyTests
6+
{
7+
[Fact]
8+
public void DeserializeOk()
9+
{
10+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.ExportKey);
11+
12+
Assert.NotNull(baseObj);
13+
14+
var obj = Assert.IsType<ExportKey>(baseObj);
15+
16+
Assert.NotNull(obj.InputKey);
17+
18+
var ikr = Assert.IsType<InputKeyRegular>(obj.InputKey);
19+
20+
Assert.NotNull(ikr.Key);
21+
22+
Assert.Equal("PuY...CQ", ikr.Key.PublicKey);
23+
Assert.Equal("K5F..I=", ikr.Key.Secret);
24+
Assert.Equal("PQ...Q=", ikr.LocalPassword);
25+
}
26+
}
27+
}

TonLibDotNet.Tests/SampleValues.Designer.cs

Lines changed: 63 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

TonLibDotNet.Tests/SampleValues.resx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,21 @@
148148
<data name="CreateNewKey" xml:space="preserve">
149149
<value>{"@type":"createNewKey","local_password":"111","mnemonic_password":"222","random_extra_seed":"333"}</value>
150150
</data>
151+
<data name="DeleteAllKeys" xml:space="preserve">
152+
<value>{"@type":"deleteAllKeys"}</value>
153+
</data>
154+
<data name="DeleteKey" xml:space="preserve">
155+
<value>{"@type":"deleteKey","key":{"@type":"key","public_key":"Pub...HnG","secret":"gbV...bA="}}</value>
156+
</data>
151157
<data name="Error" xml:space="preserve">
152158
<value>{"@type":"error","code":400,"message":"INVALID_ACCOUNT_ADDRESSFailed to parse account address"}</value>
153159
</data>
160+
<data name="ExportedKey" xml:space="preserve">
161+
<value>{"@type":"exportedKey","word_list":["gasp","shine","patient","poverty","oak","leaf","actor","shift","festival","route","six","track","same","home","derive","ready","table","eye","card","praise","affair","when","ship","trim"]}</value>
162+
</data>
163+
<data name="ExportKey" xml:space="preserve">
164+
<value>{"@type":"exportKey","input_key":{"@type":"inputKeyRegular","key":{"@type":"key","public_key":"PuY...CQ","secret":"K5F..I="},"local_password":"PQ...Q="}}</value>
165+
</data>
154166
<data name="FullAccountState" xml:space="preserve">
155167
<value>{"@type":"fullAccountState","address":{"@type":"accountAddress","account_address":"EQCJTkhd1W2wztkVNp_dsKBpv2SIoUWoIyzI7mQrbSrj_NSh"},"balance":"136217239329079","last_transaction_id":{"@type":"internal.transactionId","lt":"34942442000005","hash":"vhl79O/OZ4LCC7cdkKj22uNv5diIrIltOLujpFOLwTk="},"block_id":{"@type":"ton.blockIdExt","workchain":-1,"shard":"-9223372036854775808","seqno":27011756,"root_hash":"AhS55h8lmOyxtw29gWux0XZzXgiAbE69UsP44xIWdXM=","file_hash":"TwDj86Fbvgvxte2UXpYtm2CpMSC/wIyxZph6mPDn99A="},"sync_utime":1675249913,"account_state":{"@type":"wallet.v3.accountState","wallet_id":"698983191","seqno":35},"revision":2}</value>
156168
</data>
@@ -163,6 +175,12 @@
163175
<data name="Init" xml:space="preserve">
164176
<value>{"@type":"init","options":{"@type":"options","config":{"@type":"config","config":"test-value","blockchain_name":"test","use_callbacks_for_network":true,"ignore_cache":true},"keystore_type":{"@type":"keyStoreTypeDirectory","directory":"D:/Temp/"}}}</value>
165177
</data>
178+
<data name="InputKey_Fake" xml:space="preserve">
179+
<value>{"@type":"inputKeyFake"}</value>
180+
</data>
181+
<data name="InputKey_Regular" xml:space="preserve">
182+
<value>{"@type":"inputKeyRegular","key":{"@type":"key","public_key":"PuY...qoCQ","secret":"K5F...JhgI="},"local_password":"PQ...Q="}</value>
183+
</data>
166184
<data name="Internal_TransactionId" xml:space="preserve">
167185
<value>{"@type":"internal.transactionId","lt":"34942442000005","hash":"vhl79O/OZ4LCC7cdkKj22uNv5diIrIltOLujpFOLwTk="}</value>
168186
</data>
@@ -181,6 +199,9 @@
181199
<data name="Msg_DataText" xml:space="preserve">
182200
<value>{"@type":"msg.dataText","text":"Um95YWx0eQ=="}</value>
183201
</data>
202+
<data name="Ok" xml:space="preserve">
203+
<value>{"@type":"ok"}</value>
204+
</data>
184205
<data name="Options_Info" xml:space="preserve">
185206
<value>{"@type":"options.info","config_info":{"@type":"options.configInfo","default_wallet_id":"698983191","default_rwallet_init_public_key":"Puasxr0QfFZZnYISRphVse7XHKfW7pZU5SJarVHXvQ+rpzkD"}}</value>
186207
</data>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace TonLibDotNet.Types
2+
{
3+
public class ExportedKeyTests
4+
{
5+
[Fact]
6+
public void DeserializeOk()
7+
{
8+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.ExportedKey);
9+
10+
Assert.NotNull(baseObj);
11+
12+
var obj = Assert.IsType<ExportedKey>(baseObj);
13+
14+
Assert.NotEmpty(obj.WordList);
15+
Assert.Equal(new[] { "gasp", "shine", "patient", "poverty", "oak", "leaf", "actor", "shift", "festival", "route", "six", "track", "same", "home", "derive", "ready", "table", "eye", "card", "praise", "affair", "when", "ship", "trim" }, obj.WordList);
16+
}
17+
}
18+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
namespace TonLibDotNet.Types
2+
{
3+
public class InputKeyTests
4+
{
5+
[Fact]
6+
public void DeserializeFakeOk()
7+
{
8+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.InputKey_Fake);
9+
10+
Assert.NotNull(baseObj);
11+
12+
_ = Assert.IsType<InputKeyFake>(baseObj);
13+
}
14+
15+
[Fact]
16+
public void DeserializeRegularOk()
17+
{
18+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.InputKey_Regular);
19+
20+
Assert.NotNull(baseObj);
21+
22+
var obj = Assert.IsType<InputKeyRegular>(baseObj);
23+
24+
Assert.NotNull(obj.Key);
25+
Assert.Equal("PuY...qoCQ", obj.Key.PublicKey);
26+
Assert.Equal("K5F...JhgI=", obj.Key.Secret);
27+
28+
Assert.Equal("PQ...Q=", obj.LocalPassword);
29+
}
30+
}
31+
}

TonLibDotNet.Tests/Types/KeyTests.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace TonLibDotNet.Types
2+
{
3+
public class KeyTests
4+
{
5+
[Fact]
6+
public void DeserializeOk()
7+
{
8+
var baseObj = new TonJsonSerializer().Deserialize(SampleValues.Key);
9+
10+
Assert.NotNull(baseObj);
11+
12+
var obj = Assert.IsType<Key>(baseObj);
13+
14+
Assert.Equal("Pua...ywkQ", obj.PublicKey);
15+
Assert.Equal("gSu4...WTnQe0=", obj.Secret);
16+
}
17+
}
18+
}

0 commit comments

Comments
 (0)