public async Task BasicStorageTestNoParameterAsync1()
        {
            await _substrateClient.ConnectAsync();

            var reqResult = await _substrateClient.GetStorageAsync("System", "Number");

            Assert.AreEqual("BlockNumber", reqResult.GetType().Name);
            Assert.IsTrue(reqResult is BlockNumber);

            await _substrateClient.CloseAsync();
        }
Ejemplo n.º 2
0
        private static async Task OwnedMogwaisCountSubscriptionAsync(string[] args)
        {
            using var client = new SubstrateClient(new Uri(Websocketurl));
            client.RegisterTypeConverter(new GenericTypeConverter <MogwaiStruct>());
            await client.ConnectAsync(CancellationToken.None);

            var reqResult = await client.GetStorageAsync("DotMogModule", "OwnedMogwaisCount",
                                                         new[]
            {
                Utils.Bytes2HexString(Utils.GetPublicKeyFrom("5DotMog6fcsVhMPqniyopz5sEJ5SMhHpz7ymgubr56gDxXwH"))
            },
                                                         null,
                                                         CancellationToken.None);

            Console.WriteLine($"DotMogModule.OwnedMogwaisCount = {reqResult}");

            Action <string, StorageChangeSet> callBackSubscribeStorage = (subscriptionId, eventObject) =>
            {
                Console.WriteLine($"Subscription[{subscriptionId}]: {eventObject}");
            };

            // TODO GetStorageKeyBytesHash
            var keys = await client.GetStorageKeysAsync("DotMogModule", "OwnedMogwaisCount", CancellationToken.None);

            //var subscriptionId = await client.SubscribeStorageKeyAsync("DotMogModule", "OwnedMogwaisCount", new string[] { Utils.Bytes2HexString(Utils.GetPublicKeyFrom("5DotMog6fcsVhMPqniyopz5sEJ5SMhHpz7ymgubr56gDxXwH")) },
            var subscriptionId = await client.State.SubscribeStorageAsync(keys,
                                                                          callBackSubscribeStorage,
                                                                          CancellationToken.None
                                                                          );

            Thread.Sleep(60000);

            var reqResultUnsubscribe =
                await client.State.UnsubscribeStorageAsync(subscriptionId, CancellationToken.None);
        }
Ejemplo n.º 3
0
        public async Task GetBalanceTestAsync()
        {
            var extrinsic_wait = 5000;

            Assert.AreEqual("0x33A6F3093F158A7109F679410BEF1A0C54168145E0CECB4DF006C1C2FFFB1F09925A225D97AA00682D6A59B95B18780C10D7032336E88F3442B42361F4A66011", Utils.Bytes2HexString(Alice.PrivateKey));
            Assert.AreEqual("5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty", Bob.Value);

            var cts = new CancellationTokenSource();
            await _substrateClient.ConnectAsync(cts.Token);

            // [Map] Key: T::AccountId, Hasher: BlakeTwo128Concat, Value: AccountInfo<T::Index, T::AccountData>
            var reqResult1 = await _substrateClient.GetStorageAsync("System", "Account", new[] { Utils.Bytes2HexString(Alice.Bytes) }, null, cts.Token);

            Assert.AreEqual("AccountInfo", reqResult1.GetType().Name);
            var aliceAccountInfo1 = reqResult1 as AccountInfo;
            var bobAccountInfo1   = (AccountInfo)await _substrateClient.GetStorageAsync("System", "Account", new[] { Utils.Bytes2HexString(Bob.Bytes) }, null, cts.Token);

            // Alice sends bob some coins ...
            var subscription = await _substrateClient.Author.SubmitAndWatchExtrinsicAsync(ActionExtrinsicUpdate, ExtrinsicCall.BalanceTransfer(Bob.Value, 100000000000), Alice, 0, 64, cts.Token);

            Thread.Sleep(extrinsic_wait);

            // [Map] Key: T::AccountId, Hasher: BlakeTwo128Concat, Value: AccountInfo<T::Index, T::AccountData>
            var reqResult2 = await _substrateClient.GetStorageAsync("System", "Account", new [] { Utils.Bytes2HexString(Alice.Bytes) }, null, cts.Token);

            Assert.AreEqual("AccountInfo", reqResult2.GetType().Name);
            var aliceAccountInfo2 = reqResult2 as AccountInfo;
            var bobAccountInfo2   = (AccountInfo)await _substrateClient.GetStorageAsync("System", "Account", new[] { Utils.Bytes2HexString(Bob.Bytes) }, null, cts.Token);


            Assert.IsTrue(aliceAccountInfo1.AccountData.Free.Value > aliceAccountInfo2.AccountData.Free.Value);
            Assert.IsTrue(bobAccountInfo1.AccountData.Free.Value < bobAccountInfo2.AccountData.Free.Value);


            var extrinsicHash = (Hash)await _substrateClient.Author.SubmitExtrinsicAsync(ExtrinsicCall.BalanceTransfer(Alice.Value, 90000000000), Bob, 0, 64, cts.Token);

            Thread.Sleep(extrinsic_wait);

            var subscription_state = await _substrateClient.Author.UnwatchExtrinsicAsync(subscription, cts.Token);

            await _substrateClient.CloseAsync();
        }
        public async Task BasicTestAsync()
        {
            await _substrateClient.ConnectAsync();

            var reqResult = await _substrateClient.GetStorageAsync("Sudo", "Key");

            Assert.AreEqual("AccountId", reqResult.GetType().Name);
            Assert.IsTrue(reqResult is AccountId);

            var accountId = (AccountId)reqResult;

            Assert.AreEqual("5DAriiitbj77Dz6RyfFCFJagg2W9zptpEqBgBKPKtLvzw23c", accountId.Value);

            await _substrateClient.CloseAsync();
        }
Ejemplo n.º 5
0
        private static async Task TestClaimShizzleAsync(string[] args)
        {
            var accountZurich = Account.Build(
                KeyType.Ed25519,
                Utils.HexToByteArray(
                    "0xf5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e"),
                Utils.GetPublicKeyFrom("5CxW5DWQDpXi4cpACd62wzbPjbYrx4y67TZEmRXBcvmDTNaM"));

            var accountTest = new Account();

            using var client = new SubstrateClient(new Uri(Websocketurl));
            client.RegisterTypeConverter(new GenericTypeConverter <MogwaiStruct>());
            client.RegisterTypeConverter(new GenericTypeConverter <MogwaiBios>());
            client.RegisterTypeConverter(new GenericTypeConverter <GameEvent>());
            client.RegisterTypeConverter(new GenericTypeConverter <EnumType <RarityType> >());
            client.RegisterTypeConverter(new GenericTypeConverter <EnumType <ClaimState> >());
            client.RegisterTypeConverter(new GenericTypeConverter <MogwaicoinAddress>());
            await client.ConnectAsync(CancellationToken.None);

            var hexAddress = Utils.Bytes2HexString(Utils.GetPublicKeyFrom("5E77sDSL4sgAteLAMLjkEyQsHaoiqCMUJTk18XWefeVXC4Bb"));
            var hexAccount = Utils.Bytes2HexString(Encoding.ASCII.GetBytes("M9XfSaTHgGtwQnkrkG1EWRJpSdVsREU44u"));

            MogwaicoinAddress reqResult = (MogwaicoinAddress)await client.GetStorageAsync("DotMogBase", "AccountClaim", new [] { hexAddress, hexAccount }, null, CancellationToken.None);

            //Console.WriteLine(Encoding.Default.GetString(reqResult.Signature.Value.Select(p => p.Bytes[0]).ToArray()));
            //string mogwaicoinAddress = Encoding.Default.GetString(reqResult.Address.Value.Select(p => p.Bytes[0]).ToArray());
            //Console.WriteLine(mogwaicoinAddress);

            //Console.WriteLine($"RESPONSE: '{reqResult}' [{reqResult?.GetType().Name}]");

            var balance = new RawBalance();

            //balance.Create("0x03000000000000000000000000000000");
            balance.Create(1000000000000000);

            var update_claim = DotMogCall.UpdateClaim("M9XfSaTHgGtwQnkrkG1EWRJpSdVsREU44u", "5E77sDSL4sgAteLAMLjkEyQsHaoiqCMUJTk18XWefeVXC4Bb", ClaimState.Registred, balance);
            //var update_claim = DotMogCall.UpdateClaim(reqResult.Address, account, claimState, balance);
            //UnCheckedExtrinsic extrResult = await client.GetExtrinsicParametersAsync(update_claim, accountTest, 0, 64, true, CancellationToken.None);

            var extrResult = await client.Author.SubmitExtrinsicAsync(update_claim, accountTest, 0, 64, CancellationToken.None);

            Console.WriteLine(Utils.Bytes2HexString(extrResult.Encode()));
        }
Ejemplo n.º 6
0
        public async Task BasicTestAsync()
        {
            await _substrateClient.ConnectAsync();

            var reqResult = await _substrateClient.GetStorageAsync("Sudo", "Key");

            Assert.AreEqual("AccountId", reqResult.GetType().Name);
            Assert.IsTrue(reqResult is AccountId);

            var accountId = (AccountId)reqResult;

            Assert.AreEqual("5GYZnHJ4dCtTDoQj4H5H9E727Ykv8NLWKtPAupEc3uJ89BGr", accountId.Address);

            await _substrateClient.CloseAsync();
        }