Blockchains.razor 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. <p>
  32. 0x60806040526000805534801561001457600080fd5b50610101806100246000396000f3006080604052600436106053576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635b34b966146058578063a87d942c14606c578063f5c5ad83146094575b600080fd5b348015606357600080fd5b50606a60a8565b005b348015607757600080fd5b50607e60ba565b6040518082815260200191505060405180910390f35b348015609f57600080fd5b5060a660c3565b005b60016000808282540192505081905550565b60008054905090565b600160008082825403925050819055505600a165627a7a723058207815571f5c1d82bff3c0512a4cbc7a1f1c2063fa9a0de61913b76925f041e9ed0029
  33. </p>
  34. <br />
  35. </p>
  36. <p style="visibility:@hidereceipt">
  37. Get smart contract address:
  38. <button @onclick="GetReceipt">Check transaction receipt</button>
  39. <input id="bytecode" size="100" @bind="bytecode" name="bytecode" type="text" placeholder="Transaction address" @bind:event="oninput">
  40. <br />
  41. </p>
  42. <p>@result</p>
  43. @code
  44. {
  45. private Random r = new Random();
  46. private string bcURL = "127.0.0.1";
  47. private int bcport = 8545;
  48. private string bytecode = "";
  49. private string error = "";
  50. private async Task GetReceipt()
  51. {
  52. //TODO result as transaction addr
  53. //result = await Blockchain.loaded[0].GetReceipt(result);
  54. }
  55. private async Task AddContract()
  56. {
  57. if (Blockchain.loaded.Count > 0)
  58. {
  59. var taddr = await Blockchain.loaded[0].AddContract(bytecode);
  60. if (taddr != "")
  61. {
  62. result = taddr;
  63. hidereceipt = "visible";
  64. var caddr = await Blockchain.loaded[0].GetReceipt(result);
  65. if (caddr != "")
  66. {
  67. result = caddr;
  68. }
  69. }
  70. }
  71. //private Post post = new Post();
  72. }
  73. private async Task GetBlockChain()
  74. {
  75. if (Blockchain.loaded.Count == 0)
  76. {
  77. Blockchain bc = new HyperCube.Models.Blockchain(bcURL, bcport);
  78. result = await bc.Initialize();
  79. if (result != "")
  80. hidecontr = "visible";
  81. //bcURL = bc.GetAddress();
  82. //bc.ExecuteContract();
  83. //bcURL = bc.address;
  84. //hidecontr = "hidden";
  85. }
  86. //private Post post = new Post();
  87. }
  88. }