Blockchains.razor 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. @page "/blockchains"
  2. <h1>Blockchain</h1>
  3. <p>
  4. @namespace HyperCube.Models
  5. @code
  6. {
  7. string hidecontr = "hidden";
  8. string hidereceipt = "hidden";
  9. string result = "";
  10. }
  11. @if (Blockchain.newData)
  12. {
  13. @foreach (var bc in Blockchain.loaded)
  14. {
  15. <p><b>@bc.url:@bc.port</b>, address: @bc.address</p>
  16. }
  17. @bytecode;
  18. }
  19. </p>
  20. <h4>Ethereum dev network</h4>
  21. <p>
  22. Add blockchain connection:
  23. <input name="bcurl" @bind="bcURL" type="text" placeholder="URL" @bind:event="oninput">
  24. <input name="bport" @bind="bcport" type="number" placeholder="port">
  25. <button @onclick="GetBlockChain">Connect</button>
  26. </p>
  27. <p style="visibility:@hidecontr">
  28. Add smart contract:
  29. <button @onclick="AddContract">Add</button>
  30. <input id="bytecode" size="100" @bind="bytecode" name="bytecode" type="text" placeholder="Smart contract bytecode" @bind:event="oninput">
  31. <br />
  32. </p>
  33. <p style="visibility:@hidereceipt">
  34. Get smart contract address:
  35. <button @onclick="AddContract">Add</button>
  36. <input id="bytecode" size="100" @bind="bytecode" name="bytecode" type="text" placeholder="Smart contract bytecode" @bind:event="oninput">
  37. <br />
  38. </p>
  39. <p>@result</p>
  40. @code
  41. {
  42. private Random r = new Random();
  43. private string bcURL = "127.0.0.1";
  44. private int bcport = 8545;
  45. private string bytecode = "";
  46. private string error = "";
  47. private async Task GetReceipt()
  48. {
  49. //TODO result as transaction addr
  50. result = await Blockchain.loaded[0].GetReceipt(result);
  51. }
  52. private async Task AddContract()
  53. {
  54. if (Blockchain.loaded.Count > 0)
  55. {
  56. result = await Blockchain.loaded[0].AddContract(bytecode);
  57. }
  58. //private Post post = new Post();
  59. }
  60. private async Task GetBlockChain()
  61. {
  62. if (Blockchain.loaded.Count == 0)
  63. {
  64. Blockchain bc = new HyperCube.Models.Blockchain(bcURL, bcport);
  65. result = await bc.Initialize();
  66. if (result != "")
  67. hidecontr = "visible";
  68. //bcURL = bc.GetAddress();
  69. //bc.ExecuteContract();
  70. //bcURL = bc.address;
  71. //hidecontr = "hidden";
  72. }
  73. //private Post post = new Post();
  74. }
  75. }