@page "/blockchains" <h1>Blockchain</h1> <p> @namespace HyperCube.Models @code { string hidecontr = "hidden"; string hidereceipt = "hidden"; string result = ""; } @if (Blockchain.newData) { @foreach (var bc in Blockchain.loaded) { <p><b>@bc.url:@bc.port</b>, address: @bc.address</p> } @bytecode; } </p> <h4>Ethereum dev network</h4> <p> Add blockchain connection: <input name="bcurl" @bind="bcURL" type="text" placeholder="URL" @bind:event="oninput"> <input name="bport" @bind="bcport" type="number" placeholder="port"> <button @onclick="GetBlockChain">Connect</button> </p> <p style="visibility:@hidecontr"> Add smart contract: <button @onclick="AddContract">Add</button> <input id="bytecode" size="100" @bind="bytecode" name="bytecode" type="text" placeholder="Smart contract bytecode" @bind:event="oninput"> <p> 0x60806040526000805534801561001457600080fd5b50610101806100246000396000f3006080604052600436106053576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635b34b966146058578063a87d942c14606c578063f5c5ad83146094575b600080fd5b348015606357600080fd5b50606a60a8565b005b348015607757600080fd5b50607e60ba565b6040518082815260200191505060405180910390f35b348015609f57600080fd5b5060a660c3565b005b60016000808282540192505081905550565b60008054905090565b600160008082825403925050819055505600a165627a7a723058207815571f5c1d82bff3c0512a4cbc7a1f1c2063fa9a0de61913b76925f041e9ed0029 </p> <br /> </p> <p style="visibility:@hidereceipt"> Get smart contract address: <button @onclick="GetReceipt">Check transaction receipt</button> <input id="bytecode" size="100" @bind="bytecode" name="bytecode" type="text" placeholder="Transaction address" @bind:event="oninput"> <br /> </p> <p>@result</p> @code { private Random r = new Random(); private string bcURL = "127.0.0.1"; private int bcport = 8545; private string bytecode = ""; private string error = ""; private async Task GetReceipt() { //TODO result as transaction addr //result = await Blockchain.loaded[0].GetReceipt(result); } private async Task AddContract() { if (Blockchain.loaded.Count > 0) { var taddr = await Blockchain.loaded[0].AddContract(bytecode); if (taddr != "") { result = taddr; hidereceipt = "visible"; var caddr = await Blockchain.loaded[0].GetReceipt(result); if (caddr != "") { result = caddr; } } } //private Post post = new Post(); } private async Task GetBlockChain() { if (Blockchain.loaded.Count == 0) { Blockchain bc = new HyperCube.Models.Blockchain(bcURL, bcport); result = await bc.Initialize(); if (result != "") hidecontr = "visible"; //bcURL = bc.GetAddress(); //bc.ExecuteContract(); //bcURL = bc.address; //hidecontr = "hidden"; } //private Post post = new Post(); } }