コード例 #1
0
        public void Test()
        {
            var client = new IpcClient("geth.ipc");
            var web3   = new Web3(client);
            //web3 = new Web3("http://localhost:8545");
            string address      = "0xbb7e97e5670d7475437943a1b314e661d7a9fa2a";
            var    makerService = new MakerTokenRegistryService(web3, "0x877c5369c747d24d9023c88c1aed1724f1993efe");
            var    tokenService = makerService.GetEthTokenServiceAsync("MKR").Result;
            var    balance      = tokenService.GetBalanceOfAsync <BigInteger>(address).Result;


            var contract = web3.Eth.GetContract(abi, "0xa3969327661Ad9632638b8fe8d5dEF6ceFd94738");
            var e        = contract.GetEvent("OwnerAdded");
            var filterId = e.CreateFilterAsync(new Nethereum.RPC.Eth.DTOs.BlockParameter(300000)).Result;
            var changes  = e.GetAllChanges <OwnerAdded>(filterId).Result;
        }
コード例 #2
0
        public async Task <bool> RunExampleAsync()
        {
            var web3          = new Web3.Web3();
            var makerRegistry = new MakerTokenRegistryService(web3,
                                                              MakerTokenRegistryService.MakerTokenRegistryAddresses.MORDEN);

            var mkrTokenService = await makerRegistry.GetEthTokenServiceAsync(MakerTokenRegistryService.MakerTokenSymbols.MKR);

            var totalSupply = await mkrTokenService.GetTotalSupplyAsync <BigInteger>();

            Console.WriteLine("Maker Supply");
            Console.WriteLine(totalSupply);

            var address = "0xbb7e97e5670d7475437943a1b314e661d7a9fa2a";



            var balance = await mkrTokenService.GetBalanceOfAsync <BigInteger>(address);

            Console.WriteLine("Balance " + address);
            Console.WriteLine(balance);


            var ethTokenService = await makerRegistry.GetEthTokenServiceAsync(MakerTokenRegistryService.MakerTokenSymbols.ETH);

            var ethTotalSupply = await ethTokenService.GetTotalSupplyAsync <BigInteger>();

            Console.WriteLine("Eth Supply");
            Console.WriteLine(ethTotalSupply);


            var result = await web3.Personal.UnlockAccount.SendRequestAsync(address, "password", new HexBigInteger(600));

            var newAddress = await web3.Personal.NewAccount.SendRequestAsync("password");

            Console.WriteLine("New address");
            Console.WriteLine(newAddress);


            var transactionHash = await mkrTokenService.TransferAsync(address, newAddress, 10, new HexBigInteger(150000));

            Console.WriteLine("Transfering 10 MKR to " + newAddress);
            Console.WriteLine("Transfer txId:");
            Console.WriteLine(transactionHash);
            //wait to be mined
            var transferReceipt = await GetTransactionReceiptAsync(web3.Eth.Transactions, transactionHash);

            var filterId = await mkrTokenService.GetTransferEvent().CreateFilterAsync(new BlockParameter(500000)); //<object, string>(null, "0xbb7e97e5670d7475437943a1b314e661d7a9fa2a", new BlockParameter(1000));


            var transfers = await mkrTokenService.GetTransferEvent().GetAllChanges <Transfer>(filterId);


            var balanceNewAddress = await mkrTokenService.GetBalanceOfAsync <BigInteger>(newAddress);

            Console.WriteLine("Balance of " + newAddress);
            Console.WriteLine(balanceNewAddress);

            balance = await mkrTokenService.GetBalanceOfAsync <BigInteger>(address);

            Console.WriteLine("Balance " + address);
            Console.WriteLine(balance);

            Console.WriteLine("Total Transfers since block 500000");
            Console.WriteLine(transfers.Count);

            foreach (var transfer in transfers)
            {
                Console.WriteLine("From:");
                Console.WriteLine(transfer.Event.AddressFrom);
                Console.WriteLine("To:");
                Console.WriteLine(transfer.Event.AddressTo);
                Console.WriteLine("Amount:");
                Console.WriteLine(transfer.Event.Value);
            }

            return(true);
        }