예제 #1
0
        private async Task LogAccountState()
        {
            var args = new GetAccountParams(_login);
            var info = await Api.GetAccount(args, CancellationToken.None);

            var json = JsonConvert.SerializeObject(info);

            File.AppendAllLines(TaskLogFileName, new[] { json }, Encoding);
        }
예제 #2
0
        public async Task GetAccountTest()
        {
            var accountParams = new GetAccountParams
            {
                AccountName = User.Login
            };

            var resp = await Api.GetAccount(accountParams, CancellationToken);

            TestPropetries(resp);
        }
예제 #3
0
        public async Task GetAccountTest()
        {
            var args = new GetAccountParams
            {
                AccountName = User.Login
            };

            var resp = await Api.GetAccountAsync(args, CancellationToken).ConfigureAwait(false);

            TestPropetries(resp);
        }
예제 #4
0
        public async Task GetAccountTest()
        {
            var accountParams = new GetAccountParams
            {
                AccountName = "test1"
            };
            var resp = await Api.GetAccount(accountParams, CancellationToken.None);

            Console.WriteLine(resp.Error);
            Assert.IsTrue(resp.IsSuccess);
            Console.WriteLine(JsonConvert.SerializeObject(resp.Result));


            var obj = await Api.CustomPostRequest <JObject>("v1/chain/get_account", accountParams, CancellationToken.None);

            TestPropetries(resp.Result.GetType(), obj.Result);
            Console.WriteLine("----------------------------------------------------------------------------");
            Console.WriteLine(JsonConvert.SerializeObject(obj));
        }
예제 #5
0
        public async Task GetKeyAccountsTest()
        {
            var accArgs = new GetAccountParams(User.Login);
            var accRes  = await Api.GetAccountAsync(accArgs, CancellationToken).ConfigureAwait(false);

            if (accRes.IsError)
            {
                WriteLine(accRes);
                Assert.Fail(nameof(accRes));
            }
            var publicKey = accRes.Result.Permissions
                            .First(p => p.PermName == "active")
                            .RequiredAuth.Keys.Select(k => k.Key)
                            .First();

            var args = new GetKeyAccountsParams
            {
                PublicKey = new PublicKeyType(publicKey.Data)
            };
            var resp = await Api.GetKeyAccountsAsync(args, CancellationToken).ConfigureAwait(false);

            TestPropetries(resp);
        }
예제 #6
0
        /// <summary>
        /// Get information related to an account.
        ///
        ///  curl http://127.0.0.1:8888/v1/chain/get_account -X POST -d '{"account_name":"inita"}'
        /// </summary>
        /// <param name="accountParams"></param>
        /// <param name="token">Throws a <see cref="T:System.OperationCanceledException" /> if this token has had cancellation requested.</param>
        /// <returns></returns>
        public async Task <OperationResult <GetAccountResults> > GetAccount(GetAccountParams accountParams, CancellationToken token)
        {
            var endpoint = "v1/chain/get_account";

            return(await CustomPostRequest <GetAccountResults>(endpoint, accountParams, token));
        }
예제 #7
0
        /// <summary>
        /// Get information related to an account.
        ///
        ///  curl http://127.0.0.1:8888/v1/chain/get_account -X POST -d '{"account_name":"inita"}'
        /// </summary>
        /// <param name="args"></param>
        /// <param name="token">Throws a <see cref="T:System.OperationCanceledException" /> if this token has had cancellation requested.</param>
        /// <returns></returns>
        public async Task <OperationResult <GetAccountResults> > GetAccountAsync(GetAccountParams args, CancellationToken token)
        {
            var endpoint = $"{ChainUrl}/v1/chain/get_account";

            return(await CustomPutRequestAsync <GetAccountResults>(endpoint, args, token).ConfigureAwait(false));
        }
예제 #8
0
        public async Task WalletSignTrxTest()
        {
            var abiJsonToBinArgs = new AbiJsonToBinParams
            {
                Code   = ContractInfo.ContractName,
                Action = CreatePostActionName,
                Args   = new CreatePostArgs
                {
                    UrlPhoto       = "test_1_url",
                    AccountCreator = User.Login,
                    IpfsHashPhoto  = "test_1_hash"
                                     //ParentPost = 1
                }
            };
            var abiJsonToBin = await Api.AbiJsonToBin(abiJsonToBinArgs, CancellationToken);

            Assert.IsFalse(abiJsonToBin.IsError);

            var accountParams = new GetAccountParams
            {
                AccountName = User.Login
            };

            var unlock = await Api.WalletUnlock(User.Login, User.Password, CancellationToken);

            Assert.IsFalse(unlock.IsError);

            var accR = await Api.GetAccount(accountParams, CancellationToken);

            Assert.IsFalse(accR.IsError);

            var publicKeys = accR.Result.Permissions.First(p => p.PermName == "active").RequiredAuth.Keys.Select(k => k.Key).ToArray();

            var args = new CreateTransactionArgs
            {
                Actions = new[]
                {
                    new EOS.Models.Action
                    {
                        Account       = User.Login,
                        Name          = CreatePostActionName,
                        Authorization = new[]
                        {
                            new PermissionLevel
                            {
                                Actor      = User.Login,
                                Permission = "active"
                            }
                        },
                        Data = abiJsonToBin.Result.Binargs
                    }
                },
                PrivateKeys = new List <byte[]> {
                    User.PrivateActiveKey
                }
            };
            var trx = await Api.CreateTransaction(args, CancellationToken);

            var infoResp = await Api.GetInfo(CancellationToken.None);

            var info = infoResp.Result;

            var resp = await Api.WalletSignTrx(trx, publicKeys, info.ChainId, CancellationToken.None);

            WriteLine(resp);
            Assert.IsFalse(resp.IsError);

            var wlock = await Api.WalletLock(User.Login, CancellationToken);

            Assert.IsFalse(wlock.IsError);
        }