Guest User

Untitled

a guest
Jan 21st, 2018
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. 1. Clone the repo:
  2.  
  3. ```bash
  4. $ git clone git@github.com:Jusdev89/Remix-Mini-Starter.git
  5. ```
  6.  
  7. 2. Inside of the `mini_remix_stater`
  8.  
  9. ```bash
  10. $ open index.html
  11. ```
  12.  
  13. 3. Underneath `<div class="mui-appbar"></div>` place this snippet:
  14.  
  15. ```html
  16. <section class="mui-container-fluid">
  17. <div class="mui-row">
  18. <div class="mui-col-md-6">
  19. <div class="mui-select">
  20. <select id="versions"></select>
  21. </div>
  22. </div>
  23. </div>
  24. </section>
  25. ```
  26.  
  27. 4. Place contract status snippet inside of the `<div class="mui-appbar"></div>` code.
  28.  
  29. ```html
  30. <div class="mui-container" style="float: left;">
  31. <p id="status" style="float: right; margin-top:20px"></p>
  32. </div>
  33. ```
  34.  
  35. 5. Create compiler feature:
  36.  
  37. ```javascript
  38. let compiler
  39.  
  40. window.onload = function () {
  41. document.getElementById('versions').onchange = loadSolcVersion
  42.  
  43. if (!BrowserSolc) {
  44. console.log('You have to load browser-solc.js in the page. We recommend using a <script> tag.')
  45. throw new Error()
  46. }
  47.  
  48. status('Loading Compiler Versions...')
  49.  
  50. BrowserSolc.getVersions(function (soljsonSources, soljsonReleases) {
  51. populateVersions(soljsonSources)
  52. setVersion(soljsonReleases['0.4.18'])
  53. loadSolcVersion()
  54. })
  55. }
  56.  
  57. function loadSolcVersion() {
  58. status(`Loading Solc: ${getVersion()}`)
  59. BrowserSolc.loadVersion(getVersion(), function (c) {
  60. status('Solc loaded.')
  61. compiler = c
  62. })
  63. }
  64.  
  65. function getVersion() {
  66. return document.getElementById('versions').value
  67. }
  68.  
  69. function setVersion(version) {
  70. document.getElementById('versions').value = version
  71. }
  72.  
  73. function populateVersions(versions) {
  74. sel = document.getElementById('versions')
  75. sel.innerHTML = ''
  76.  
  77. for (let i = 0; i < versions.length; i++) {
  78. let opt = document.createElement('option')
  79. opt.appendChild(document.createTextNode(versions[i]))
  80. opt.value = versions[i]
  81. sel.appendChild(opt)
  82. }
  83. }
  84.  
  85. function status(txt) {
  86. document.getElementById('status').innerHTML = txt
  87. }
  88. ```
  89.  
  90. 6. Lets type out this code directly in between our main mui-container-fluid div,
  91. below our dropdown select feature. Our UI should look like this:
  92.  
  93. ```html
  94. <div class="mui-row">
  95. <div class="mui-col-md-6">
  96. <div class="mui-panel">
  97. <p style="font-size:25px; font-weight:bold">
  98. Compile Contract
  99. </p>
  100. <textarea id="source" onclick="this.select()" style="height: 360px; width: 530px; display: block; margin-left: 20px;"></textarea>
  101. <button id="contract-compile" class="mui-btn mui-btn--primary">
  102. Compile
  103. </button>
  104. </div>
  105. </div>
  106. </div>
  107. ```
  108.  
  109. 7. 2 more global variables:
  110.  
  111. ```javascript
  112. let optimize = 1
  113. let compiledContract
  114. ```
  115.  
  116. 8. Show compiled contracts:
  117.  
  118. ```javascript
  119. function addCompileEvent() {
  120. const compileBtn = document.getElementById('contract-compile')
  121. compileBtn.addEventListener('click', solcCompile)
  122. }
  123.  
  124. function solcCompile() {
  125. if (!compiler) return alert('Please select a compiler version.')
  126.  
  127. setCompileButtonState(true)
  128. status("Compiling contract...")
  129. compiledContract = compiler.compile(getSourceCode(), optimize)
  130.  
  131. if (compiledContract) setCompileButtonState(false)
  132.  
  133. console.log('Compiled Contract :: ==>', compiledContract)
  134. status("Compile Complete.")
  135. }
  136.  
  137. function getSourceCode() {
  138. return document.getElementById("source").value
  139. }
  140.  
  141. function setCompileButtonState(state) {
  142. document.getElementById("contract-compile").disabled = state
  143. }
  144. ```
  145.  
  146. - So lets stop here and skip ahead to our `part-2/deploying-contracts-with-web3js`
Add Comment
Please, Sign In to add comment