/// <summary>
        /// Creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call GetFilterChanges.
        /// </summary>
        /// <param name="fromBlock">(optional, default: "latest") Integer block number, </param>
        /// <param name="toBlock"></param>
        /// <param name="address"></param>
        /// <param name="topics"></param>
        /// <returns></returns>
        public string NewFilter(Filter filter)
        {
            var rpcRequest = new RpcRequest(RpcMethod.eth_newFilter);

            rpcRequest.AddParam(filter);
            var rpcResult = new RpcConnector().MakeRequest(rpcRequest);

            return rpcResult.Result;
        }
示例#2
0
        private void LoadAccounts()
        {
            Accounts = new List<Account>();

            var accounts = EthereumService.GetAccounts();
            cmdAccounts.Items.Clear();

            foreach (var account in accounts)
            {
                var a = new Account();
                a.Address = account;

                var filter = new Filter(fromBlock: "0x01")
                {
                    Address = a.Address

                };

                a.FilterId = EthereumService.NewFilter(filter);
                Accounts.Add(a);

                var sign = EthereumService.Sign(a.Address, "hello");

                a.Unlocked = sign != null;

                cmdAccounts.Items.Add(a);
                //EthereumService.UnlockAccount(a.Address, "lawrence");
            }

            if (accounts.Any())
            {
                cmdAccounts.SelectedIndex = 0;
            }
        }