osbc 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. checksums.yaml +7 -0
  2. data/.env +5 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +273 -0
  5. data/.ruby-version +1 -0
  6. data/CHANGELOG.md +5 -0
  7. data/CODE_OF_CONDUCT.md +84 -0
  8. data/Dockerfile +17 -0
  9. data/Gemfile +109 -0
  10. data/Gemfile.lock +343 -0
  11. data/LICENSE.md +21 -0
  12. data/LICENSE.txt +21 -0
  13. data/Procfile +3 -0
  14. data/Procfile.dev +2 -0
  15. data/README.md +185 -0
  16. data/Rakefile +6 -0
  17. data/app/assets/builds/.keep +0 -0
  18. data/app/assets/config/manifest.js +5 -0
  19. data/app/assets/images/.keep +0 -0
  20. data/app/assets/images/bg.png +0 -0
  21. data/app/assets/images/gimage.png +0 -0
  22. data/app/assets/images/image.png +0 -0
  23. data/app/assets/images/logo.png +0 -0
  24. data/app/assets/images/outerspc.jpg +0 -0
  25. data/app/assets/images/proxy.jpg +0 -0
  26. data/app/assets/images/space.jpg +0 -0
  27. data/app/assets/images/space_four.jpg +0 -0
  28. data/app/assets/images/space_t.jpg +0 -0
  29. data/app/assets/images/space_th.jpg +0 -0
  30. data/app/assets/images/space_two.jpg +0 -0
  31. data/app/assets/images/th.jpg +0 -0
  32. data/app/assets/stylesheets/application.css +344 -0
  33. data/app/assets/stylesheets/application.tailwind.css +13 -0
  34. data/app/assets/stylesheets/home.css +0 -0
  35. data/app/channels/application_cable/channel.rb +6 -0
  36. data/app/channels/application_cable/connection.rb +6 -0
  37. data/app/controllers/api/v1/block_confirmations_controller.rb +65 -0
  38. data/app/controllers/application_controller.rb +72 -0
  39. data/app/controllers/blocks_controller.rb +20 -0
  40. data/app/controllers/chains_controller.rb +72 -0
  41. data/app/controllers/concerns/.keep +0 -0
  42. data/app/controllers/contracts_controller.rb +25 -0
  43. data/app/controllers/pools_controller.rb +73 -0
  44. data/app/controllers/signatures_controller.rb +25 -0
  45. data/app/controllers/tickets_controller.rb +76 -0
  46. data/app/controllers/transactions_controller.rb +48 -0
  47. data/app/controllers/users/confirmations_controller.rb +30 -0
  48. data/app/controllers/users/omniauth_callbacks_controller.rb +30 -0
  49. data/app/controllers/users/passwords_controller.rb +34 -0
  50. data/app/controllers/users/registrations_controller.rb +61 -0
  51. data/app/controllers/users/sessions_controller.rb +27 -0
  52. data/app/controllers/users/unlocks_controller.rb +30 -0
  53. data/app/controllers/wallets_controller.rb +18 -0
  54. data/app/helpers/application_helper.rb +4 -0
  55. data/app/helpers/blocks_helper.rb +4 -0
  56. data/app/helpers/chains_helper.rb +4 -0
  57. data/app/helpers/contracts_helper.rb +4 -0
  58. data/app/helpers/pools_helper.rb +4 -0
  59. data/app/helpers/signatures_helper.rb +4 -0
  60. data/app/helpers/tickets_helper.rb +4 -0
  61. data/app/helpers/transactions_helper.rb +4 -0
  62. data/app/helpers/wallets_helper.rb +4 -0
  63. data/app/javascript/application.js +3 -0
  64. data/app/javascript/controllers/application.js +9 -0
  65. data/app/javascript/controllers/hello_controller.js +7 -0
  66. data/app/javascript/controllers/index.js +11 -0
  67. data/app/jobs/application_job.rb +9 -0
  68. data/app/mailers/application_mailer.rb +6 -0
  69. data/app/models/acceptable_number_sequence.rb +4 -0
  70. data/app/models/acceptable_symbol_sequence.rb +4 -0
  71. data/app/models/acceptable_word.rb +4 -0
  72. data/app/models/application_record.rb +5 -0
  73. data/app/models/block.rb +17 -0
  74. data/app/models/chain.rb +10 -0
  75. data/app/models/concerns/.keep +0 -0
  76. data/app/models/concerns/sequences_validator.rb +30 -0
  77. data/app/models/concerns/wallet_exists_validator.rb +13 -0
  78. data/app/models/contract.rb +7 -0
  79. data/app/models/pool.rb +5 -0
  80. data/app/models/signature.rb +12 -0
  81. data/app/models/ticket.rb +11 -0
  82. data/app/models/transaction.rb +25 -0
  83. data/app/models/user.rb +44 -0
  84. data/app/models/wallet.rb +33 -0
  85. data/app/services/application_service.rb +23 -0
  86. data/app/services/assign_contracts_service.rb +162 -0
  87. data/app/services/create_ticket_service.rb +87 -0
  88. data/app/services/create_wallet_service.rb +20 -0
  89. data/app/services/transaction_to_block_service.rb +62 -0
  90. data/app/views/application/_featured_board.html.erb +77 -0
  91. data/app/views/application/home.html.slim +1 -0
  92. data/app/views/application/mining_profile.html.slim +59 -0
  93. data/app/views/application/privacy_policy.html.erb +0 -0
  94. data/app/views/application/terms.html.erb +0 -0
  95. data/app/views/blocks/_block.html.slim +13 -0
  96. data/app/views/blocks/_block.json.jbuilder +4 -0
  97. data/app/views/blocks/_form.html.slim +26 -0
  98. data/app/views/blocks/edit.html.slim +10 -0
  99. data/app/views/blocks/index.html.slim +12 -0
  100. data/app/views/blocks/index.json.jbuilder +3 -0
  101. data/app/views/blocks/new.html.slim +8 -0
  102. data/app/views/blocks/show.html.slim +8 -0
  103. data/app/views/blocks/show.json.jbuilder +3 -0
  104. data/app/views/chains/_chain.html.slim +16 -0
  105. data/app/views/chains/_chain.json.jbuilder +4 -0
  106. data/app/views/chains/_form.html.slim +30 -0
  107. data/app/views/chains/edit.html.slim +10 -0
  108. data/app/views/chains/index.html.slim +11 -0
  109. data/app/views/chains/index.json.jbuilder +3 -0
  110. data/app/views/chains/new.html.slim +8 -0
  111. data/app/views/chains/show.html.slim +10 -0
  112. data/app/views/chains/show.json.jbuilder +3 -0
  113. data/app/views/contracts/_contract.html.slim +8 -0
  114. data/app/views/contracts/_contract.json.jbuilder +4 -0
  115. data/app/views/contracts/_form.html.slim +34 -0
  116. data/app/views/contracts/edit.html.slim +10 -0
  117. data/app/views/contracts/index.html.slim +12 -0
  118. data/app/views/contracts/index.json.jbuilder +3 -0
  119. data/app/views/contracts/new.html.slim +8 -0
  120. data/app/views/contracts/show.html.slim +8 -0
  121. data/app/views/contracts/show.json.jbuilder +3 -0
  122. data/app/views/layouts/_alert.html.slim +6 -0
  123. data/app/views/layouts/_navbar.html.slim +27 -0
  124. data/app/views/layouts/_notice.html.slim +6 -0
  125. data/app/views/layouts/application.html.erb +32 -0
  126. data/app/views/layouts/mailer.html.erb +13 -0
  127. data/app/views/layouts/mailer.text.erb +1 -0
  128. data/app/views/pools/_form.html.slim +30 -0
  129. data/app/views/pools/_pool.html.slim +16 -0
  130. data/app/views/pools/_pool.json.jbuilder +4 -0
  131. data/app/views/pools/edit.html.slim +10 -0
  132. data/app/views/pools/index.html.slim +12 -0
  133. data/app/views/pools/index.json.jbuilder +3 -0
  134. data/app/views/pools/new.html.slim +8 -0
  135. data/app/views/pools/show.html.slim +8 -0
  136. data/app/views/pools/show.json.jbuilder +3 -0
  137. data/app/views/signatures/_form.html.slim +46 -0
  138. data/app/views/signatures/_signature.html.slim +28 -0
  139. data/app/views/signatures/_signature.json.jbuilder +4 -0
  140. data/app/views/signatures/edit.html.slim +10 -0
  141. data/app/views/signatures/index.html.slim +10 -0
  142. data/app/views/signatures/index.json.jbuilder +3 -0
  143. data/app/views/signatures/new.html.slim +8 -0
  144. data/app/views/signatures/show.html.slim +10 -0
  145. data/app/views/signatures/show.json.jbuilder +3 -0
  146. data/app/views/tickets/_form.html.slim +26 -0
  147. data/app/views/tickets/_ticket.html.slim +10 -0
  148. data/app/views/tickets/_ticket.json.jbuilder +4 -0
  149. data/app/views/tickets/edit.html.slim +10 -0
  150. data/app/views/tickets/index.html.slim +16 -0
  151. data/app/views/tickets/index.json.jbuilder +3 -0
  152. data/app/views/tickets/new.html.slim +10 -0
  153. data/app/views/tickets/show.html.slim +8 -0
  154. data/app/views/tickets/show.json.jbuilder +3 -0
  155. data/app/views/transactions/_form.html.slim +16 -0
  156. data/app/views/transactions/_transaction.html.slim +24 -0
  157. data/app/views/transactions/_transaction.json.jbuilder +4 -0
  158. data/app/views/transactions/edit.html.slim +10 -0
  159. data/app/views/transactions/index.html.slim +19 -0
  160. data/app/views/transactions/index.json.jbuilder +3 -0
  161. data/app/views/transactions/new.html.slim +9 -0
  162. data/app/views/transactions/show.html.slim +8 -0
  163. data/app/views/transactions/show.json.jbuilder +3 -0
  164. data/app/views/users/confirmations/new.html.erb +16 -0
  165. data/app/views/users/mailer/confirmation_instructions.html.erb +5 -0
  166. data/app/views/users/mailer/email_changed.html.erb +7 -0
  167. data/app/views/users/mailer/password_change.html.erb +3 -0
  168. data/app/views/users/mailer/reset_password_instructions.html.erb +8 -0
  169. data/app/views/users/mailer/unlock_instructions.html.erb +7 -0
  170. data/app/views/users/passwords/edit.html.erb +25 -0
  171. data/app/views/users/passwords/new.html.erb +16 -0
  172. data/app/views/users/registrations/edit.html.erb +43 -0
  173. data/app/views/users/registrations/new.html.erb +37 -0
  174. data/app/views/users/sessions/new.html.erb +30 -0
  175. data/app/views/users/shared/_error_messages.html.erb +15 -0
  176. data/app/views/users/shared/_links.html.erb +25 -0
  177. data/app/views/users/unlocks/new.html.erb +16 -0
  178. data/app/views/wallets/_form.html.slim +30 -0
  179. data/app/views/wallets/_wallet.html.slim +13 -0
  180. data/app/views/wallets/_wallet.json.jbuilder +4 -0
  181. data/app/views/wallets/edit.html.slim +10 -0
  182. data/app/views/wallets/index.html.slim +18 -0
  183. data/app/views/wallets/index.json.jbuilder +3 -0
  184. data/app/views/wallets/new.html.slim +8 -0
  185. data/app/views/wallets/show.html.slim +11 -0
  186. data/app/views/wallets/show.json.jbuilder +3 -0
  187. data/app/workers/application_worker.rb +82 -0
  188. data/app/workers/assign_contract_worker.rb +27 -0
  189. data/app/workers/create_ticket_worker.rb +23 -0
  190. data/app/workers/create_wallet_worker.rb +21 -0
  191. data/app/workers/transaction_to_block_worker.rb +48 -0
  192. data/bin/bundle +114 -0
  193. data/bin/console +15 -0
  194. data/bin/dev +9 -0
  195. data/bin/importmap +5 -0
  196. data/bin/osbc +77 -0
  197. data/bin/rails +6 -0
  198. data/bin/rake +6 -0
  199. data/bin/setup +35 -0
  200. data/config/application.rb +25 -0
  201. data/config/boot.rb +6 -0
  202. data/config/cable.yml +10 -0
  203. data/config/credentials.yml.enc +1 -0
  204. data/config/database.yml +21 -0
  205. data/config/environment.rb +7 -0
  206. data/config/environments/development.rb +73 -0
  207. data/config/environments/production.rb +95 -0
  208. data/config/environments/test.rb +62 -0
  209. data/config/importmap.rb +9 -0
  210. data/config/initializers/assets.rb +14 -0
  211. data/config/initializers/content_security_policy.rb +26 -0
  212. data/config/initializers/devise.rb +311 -0
  213. data/config/initializers/filter_parameter_logging.rb +10 -0
  214. data/config/initializers/inflections.rb +17 -0
  215. data/config/initializers/permissions_policy.rb +12 -0
  216. data/config/locales/devise.en.yml +65 -0
  217. data/config/locales/en.yml +33 -0
  218. data/config/puma.rb +45 -0
  219. data/config/routes/api.rb +9 -0
  220. data/config/routes.rb +30 -0
  221. data/config/sidekiq.yml +10 -0
  222. data/config/storage.yml +34 -0
  223. data/config/tailwind.config.js +23 -0
  224. data/config.ru +8 -0
  225. data/coverage/.last_run.json +5 -0
  226. data/coverage/.resultset.json +1853 -0
  227. data/coverage/.resultset.json.lock +0 -0
  228. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
  229. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  230. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
  231. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
  232. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  233. data/coverage/assets/0.12.3/application.css +1 -0
  234. data/coverage/assets/0.12.3/application.js +7 -0
  235. data/coverage/assets/0.12.3/colorbox/border.png +0 -0
  236. data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
  237. data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
  238. data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
  239. data/coverage/assets/0.12.3/favicon_green.png +0 -0
  240. data/coverage/assets/0.12.3/favicon_red.png +0 -0
  241. data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
  242. data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  243. data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  244. data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  245. data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  246. data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  247. data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  248. data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  249. data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  250. data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
  251. data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
  252. data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
  253. data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
  254. data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
  255. data/coverage/assets/0.12.3/loading.gif +0 -0
  256. data/coverage/assets/0.12.3/magnify.png +0 -0
  257. data/coverage/index.html +20731 -0
  258. data/db/migrate/20221018053949_devise_create_users.rb +45 -0
  259. data/db/migrate/20221019002956_create_chains.rb +13 -0
  260. data/db/migrate/20221020112137_create_blocks.rb +12 -0
  261. data/db/migrate/20221020123102_add_chain_to_blocks.rb +5 -0
  262. data/db/migrate/20221020150504_create_wallets.rb +13 -0
  263. data/db/migrate/20221022221059_create_transactions.rb +20 -0
  264. data/db/migrate/20221023011005_add_block_to_transactions.rb +5 -0
  265. data/db/migrate/20221023014707_create_contracts.rb +11 -0
  266. data/db/migrate/20221023040749_create_pools.rb +13 -0
  267. data/db/migrate/20221023041015_create_tickets.rb +11 -0
  268. data/db/migrate/20221023103509_add_contracts_count_to_block.rb +6 -0
  269. data/db/migrate/20221023110613_add_acceptable_word_list_to_users.rb +7 -0
  270. data/db/migrate/20221023113539_create_signatures.rb +19 -0
  271. data/db/migrate/20221023113750_create_acceptable_words.rb +9 -0
  272. data/db/migrate/20221023114152_create_acceptable_number_sequences.rb +9 -0
  273. data/db/migrate/20221023114203_create_acceptable_symbol_sequences.rb +9 -0
  274. data/db/migrate/20221023114324_add_user_acceptable_hash_to_tickets.rb +7 -0
  275. data/db/migrate/20221023114408_add_time_ref_to_tickets.rb +5 -0
  276. data/db/migrate/20221024125047_add_master_hash_to_blocks.rb +5 -0
  277. data/db/migrate/20221109161845_add_transactions_count_to_blocks.rb +5 -0
  278. data/db/migrate/20221117135003_add_balance_to_chains.rb +5 -0
  279. data/db/migrate/20221117203417_add_transaction_id_list_to_tickets.rb +5 -0
  280. data/db/migrate/20221118080357_add_api_keys_to_users.rb +6 -0
  281. data/db/schema.rb +179 -0
  282. data/db/seeds.rb +134 -0
  283. data/docker-compose.yml +53 -0
  284. data/entrypoint.sh +8 -0
  285. data/lib/assets/.keep +0 -0
  286. data/lib/osbc/osbc.rb +9 -0
  287. data/lib/outerspace/blockchain/version.rb +7 -0
  288. data/lib/outerspace/blockchain.rb +10 -0
  289. data/lib/tasks/.keep +0 -0
  290. data/lib/tasks/compose.rake +92 -0
  291. data/lib/tasks/compose_db.rake +71 -0
  292. data/lib/tasks/compose_logs.rake +95 -0
  293. data/lib/tasks/compose_test.rake +62 -0
  294. data/log/.keep +0 -0
  295. data/mining_concept.ipynb +284 -0
  296. data/outerspace-blockchain.gemspec +50 -0
  297. data/public/404.html +67 -0
  298. data/public/422.html +67 -0
  299. data/public/500.html +66 -0
  300. data/public/apple-touch-icon-precomposed.png +0 -0
  301. data/public/apple-touch-icon.png +0 -0
  302. data/public/favicon.ico +0 -0
  303. data/public/robots.txt +1 -0
  304. data/storage/.keep +0 -0
  305. data/tmp/.keep +0 -0
  306. data/tmp/pids/.keep +0 -0
  307. data/tmp/storage/.keep +0 -0
  308. data/vendor/.keep +0 -0
  309. data/vendor/javascript/.keep +0 -0
  310. metadata +643 -0
@@ -0,0 +1,16 @@
1
+ div id="#{dom_id chain}"
2
+ p
3
+ strong Name:
4
+ =< chain.name
5
+ p
6
+ strong Blocks count:
7
+ =< chain.blocks_count
8
+ p
9
+ strong Maintainer:
10
+ =< chain.maintainer
11
+ p
12
+ strong Chain version:
13
+ =< chain.chain_version
14
+ p
15
+ strong Description:
16
+ =< chain.description
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.extract! chain, :id, :name, :blocks_count, :maintainer, :chain_version, :description, :created_at, :updated_at
4
+ json.url chain_url(chain, format: :json)
@@ -0,0 +1,30 @@
1
+ = form_with(model: @chain) do |form|
2
+ - if @chain.errors.any?
3
+ div style="color: red"
4
+ h2 = "#{pluralize(@chain.errors.count, "error")} prohibited this chain from being saved:"
5
+ ul
6
+ - @chain.errors.each do |error|
7
+ li = error.full_message
8
+
9
+ div
10
+ = form.label :name, style: "display: block"
11
+ = form.text_field :name
12
+
13
+ div
14
+ = form.label :blocks_count, style: "display: block"
15
+ = form.number_field :blocks_count
16
+
17
+ div
18
+ = form.label :maintainer, style: "display: block"
19
+ = form.text_field :maintainer
20
+
21
+ div
22
+ = form.label :chain_version, style: "display: block"
23
+ = form.text_field :chain_version
24
+
25
+ div
26
+ = form.label :description, style: "display: block"
27
+ = form.text_area :description
28
+
29
+ div
30
+ = form.submit
@@ -0,0 +1,10 @@
1
+ h1 Editing chain
2
+
3
+ == render "form", chain: @chain
4
+
5
+ br
6
+
7
+ div
8
+ => link_to "Show this chain", @chain
9
+ '|
10
+ =< link_to "Back to chains", chains_path
@@ -0,0 +1,11 @@
1
+ p style="color: green" = notice
2
+
3
+ h1 Chains
4
+
5
+ #chains
6
+ - @chains.each do |chain|
7
+ == render chain
8
+ p
9
+ = link_to "Show this chain", chain
10
+
11
+ = link_to "New chain", new_chain_path
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.array! @chains, partial: "chains/chain", as: :chain
@@ -0,0 +1,8 @@
1
+ h1 New chain
2
+
3
+ == render "form", chain: @chain
4
+
5
+ br
6
+
7
+ div
8
+ = link_to "Back to chains", chains_path
@@ -0,0 +1,10 @@
1
+ p style="color: green" = notice
2
+
3
+ == render @chain
4
+
5
+ div
6
+ => link_to "Edit this chain", edit_chain_path(@chain)
7
+ '|
8
+ =< link_to "Back to chains", chains_path
9
+
10
+ = button_to "Destroy this chain", @chain, method: :delete
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.partial! "chains/chain", chain: @chain
@@ -0,0 +1,8 @@
1
+ div id="#{dom_id contract}"
2
+ p#status
3
+ strong Status:
4
+ =< "#{contract.status}/#{ENV["SIGNATURES_LIMIT"]} signatures"
5
+
6
+ p#transaction
7
+ strong Transaction:
8
+ =< contract.transaction_id
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.extract! contract, :id, :first_sig, :second_sig, :third_sig, :fourth_sig, :status, :transact_id, :created_at, :updated_at
4
+ json.url contract_url(contract, format: :json)
@@ -0,0 +1,34 @@
1
+ = form_with(model: @contract) do |form|
2
+ - if @contract.errors.any?
3
+ div style="color: red"
4
+ h2 = "#{pluralize(@contract.errors.count, "error")} prohibited this contract from being saved:"
5
+ ul
6
+ - @contract.errors.each do |error|
7
+ li = error.full_message
8
+
9
+ div
10
+ = form.label :first_sig, style: "display: block"
11
+ = form.text_field :first_sig
12
+
13
+ div
14
+ = form.label :second_sig, style: "display: block"
15
+ = form.text_field :second_sig
16
+
17
+ div
18
+ = form.label :third_sig, style: "display: block"
19
+ = form.text_field :third_sig
20
+
21
+ div
22
+ = form.label :fourth_sig, style: "display: block"
23
+ = form.text_field :fourth_sig
24
+
25
+ div
26
+ = form.label :status, style: "display: block"
27
+ = form.number_field :status
28
+
29
+ div
30
+ = form.label :transact_id, style: "display: block"
31
+ = form.text_field :transact_id
32
+
33
+ div
34
+ = form.submit
@@ -0,0 +1,10 @@
1
+ h1 Editing contract
2
+
3
+ == render "form", contract: @contract
4
+
5
+ br
6
+
7
+ div
8
+ => link_to "Show this contract", @contract
9
+ '|
10
+ =< link_to "Back to contracts", contracts_path
@@ -0,0 +1,12 @@
1
+ .text-white.text-center
2
+
3
+
4
+ h1 Contracts
5
+
6
+ #contracts
7
+ - @contracts.each do |contract|
8
+ == render contract
9
+ br
10
+ p
11
+ = link_to "Show this contract", contract, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
12
+ br
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.array! @contracts, partial: "contracts/contract", as: :contract
@@ -0,0 +1,8 @@
1
+ h1 New contract
2
+
3
+ == render "form", contract: @contract
4
+
5
+ br
6
+
7
+ div
8
+ = link_to "Back to contracts", contracts_path
@@ -0,0 +1,8 @@
1
+ .text-white.text-center
2
+
3
+
4
+ == render @contract
5
+ br
6
+ div
7
+ = link_to "Back to contracts", contracts_path, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
8
+ br
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.partial! "contracts/contract", contract: @contract
@@ -0,0 +1,6 @@
1
+ .md_container.md_mx-auto.px-5.w-600.h-full.bg-future.text-center
2
+ div
3
+ .inline-flex.items-center.bg-white.leading-none.text-purple-600.rounded-full.p-2.shadow.text-teal.text-sm
4
+ span.inline-flex.bg-purple-600.text-white.rounded-full.p-2.shadow.text-sm
5
+ span.inline-flex.px-2
6
+ = alert
@@ -0,0 +1,27 @@
1
+ nav.bg-black
2
+ .max-w-7xl.mx-auto.px-2.sm_px-6.lg_px-8
3
+ .relative.flex.items-center.justify-between.h-16
4
+ .absolute.inset-y-0.left-0.flex.items-center.sm_hidden
5
+ button#mobile-menu-button class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover_text-white hover_bg-gray-700 focus_outline-none focus_bg-gray-700 focus_text-white transition duration-150 ease-in-out" aria-label="Main menu" aria-expanded="false"
6
+ svg.h-6.w-6[stroke="currentColor" fill="none" viewBox="0 0 24 24"]
7
+ path[stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"]
8
+ .flex-1.flex.items-center.justify-center.sm_items-stretch.sm_justify-start
9
+ .flex-shrink-0
10
+ a href="/" class="text-white"
11
+ img class="block lg_hidden h-8 w-auto" src=asset_path("logo.png") alt="Outerspace Blockchain"
12
+ img class="hidden lg_block h-8 w-auto" src=asset_path("logo.png") alt="Outerspace Blockchain"
13
+ .hidden.sm_block.sm_ml-6
14
+ .flex
15
+ a href="/" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Home
16
+ - unless user_signed_in?
17
+ a href="/users/sign_in" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Sign In
18
+ a href="/users/sign_up" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Sign Up
19
+ - else
20
+ = button_to "Sign Out", destroy_user_session_path, method: :delete, class: "px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4"
21
+ a href="/wallets" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Wallet
22
+ a href="/tickets" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Tickets
23
+ a href="/mining_profile" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Mining Profile
24
+ a href="/transactions" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Transactions
25
+ a href="/contracts" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Contracts
26
+ a href="/blocks" class="px-3 py-2 rounded-md text-sm font-medium leading-5 text-gray-300 hover_text-white hover_bg-gray-700 focus_outline-none focus_text-white focus_bg-gray-700 transition duration-150 ease-in-out mr-4" Blockchain
27
+
@@ -0,0 +1,6 @@
1
+ .md_container.md_mx-auto.px-5.w-600.h-full.bg-future.text-center
2
+ div
3
+ .inline-flex.items-center.bg-white.leading-none.text-purple-600.rounded-full.p-2.shadow.text-teal.text-sm
4
+ span.inline-flex.bg-purple-600.text-white.rounded-full.p-2.shadow.text-sm
5
+ span.inline-flex.px-2
6
+ = notice
@@ -0,0 +1,32 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>OuterspaceBlockchain</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%= csrf_meta_tags %>
7
+ <%= csp_meta_tag %>
8
+ <%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %>
9
+
10
+ <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
11
+ <%= javascript_importmap_tags %>
12
+ </head>
13
+
14
+ <body class="backimage">
15
+ <main>
16
+ <%= render "layouts/navbar" %>
17
+
18
+
19
+ <div class="md_container md_mx-auto px-5 w-600 h-full bg-future" >
20
+ <% if notice %>
21
+ <%= render "layouts/notice" %>
22
+ <% end %>
23
+
24
+ <% if alert %>
25
+ <%= render "layouts/alert" %>
26
+ <% end %>
27
+
28
+ <%= yield %>
29
+ </div>
30
+ </main>
31
+ </body>
32
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <style>
6
+ /* Email styles need to be inline */
7
+ </style>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -0,0 +1 @@
1
+ <%= yield %>
@@ -0,0 +1,30 @@
1
+ = form_with(model: @pool) do |form|
2
+ - if @pool.errors.any?
3
+ div style="color: red"
4
+ h2 = "#{pluralize(@pool.errors.count, "error")} prohibited this pool from being saved:"
5
+ ul
6
+ - @pool.errors.each do |error|
7
+ li = error.full_message
8
+
9
+ div
10
+ = form.label :block_id, style: "display: block"
11
+ = form.text_field :block_id
12
+
13
+ div
14
+ = form.label :users_count, style: "display: block"
15
+ = form.number_field :users_count
16
+
17
+ div
18
+ = form.label :signatures_count, style: "display: block"
19
+ = form.number_field :signatures_count
20
+
21
+ div
22
+ = form.label :amount, style: "display: block"
23
+ = form.text_field :amount
24
+
25
+ div
26
+ = form.label :stage, style: "display: block"
27
+ = form.number_field :stage
28
+
29
+ div
30
+ = form.submit
@@ -0,0 +1,16 @@
1
+ div id="#{dom_id pool}"
2
+ p
3
+ strong Block:
4
+ =< pool.block_id
5
+ p
6
+ strong Users count:
7
+ =< pool.users_count
8
+ p
9
+ strong Signatures count:
10
+ =< pool.signatures_count
11
+ p
12
+ strong Amount:
13
+ =< pool.amount
14
+ p
15
+ strong Stage:
16
+ =< pool.stage
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.extract! pool, :id, :block_id, :users_count, :signatures_count, :amount, :stage, :created_at, :updated_at
4
+ json.url pool_url(pool, format: :json)
@@ -0,0 +1,10 @@
1
+ h1 Editing pool
2
+
3
+ == render "form", pool: @pool
4
+
5
+ br
6
+
7
+ div
8
+ => link_to "Show this pool", @pool
9
+ '|
10
+ =< link_to "Back to pools", pools_path
@@ -0,0 +1,12 @@
1
+ .text-center.text-white
2
+
3
+
4
+ h1 Pools
5
+
6
+ #pools
7
+ - @pools.each do |pool|
8
+ == render pool
9
+ br
10
+ p
11
+ = link_to "Show this pool", pool, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
12
+ br
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.array! @pools, partial: "pools/pool", as: :pool
@@ -0,0 +1,8 @@
1
+ h1 New pool
2
+
3
+ == render "form", pool: @pool
4
+
5
+ br
6
+
7
+ div
8
+ = link_to "Back to pools", pools_path
@@ -0,0 +1,8 @@
1
+ .text-center.text-white
2
+
3
+
4
+ == render @pool
5
+ br
6
+ div
7
+ = link_to "Back to pools", pools_path, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
8
+ br
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.partial! "pools/pool", pool: @pool
@@ -0,0 +1,46 @@
1
+ = form_with(model: @signature) do |form|
2
+ - if @signature.errors.any?
3
+ div style="color: red"
4
+ h2 = "#{pluralize(@signature.errors.count, "error")} prohibited this signature from being saved:"
5
+ ul
6
+ - @signature.errors.each do |error|
7
+ li = error.full_message
8
+
9
+ div
10
+ = form.label :signature, style: "display: block"
11
+ = form.text_field :signature
12
+
13
+ div
14
+ = form.label :time_ref, style: "display: block"
15
+ = form.datetime_field :time_ref
16
+
17
+ div
18
+ = form.label :contract_id, style: "display: block"
19
+ = form.text_field :contract_id
20
+
21
+ div
22
+ = form.label :common_word, style: "display: block"
23
+ = form.text_field :common_word
24
+
25
+ div
26
+ = form.label :symbol_sequence, style: "display: block"
27
+ = form.text_field :symbol_sequence
28
+
29
+ div
30
+ = form.label :number_sequence, style: "display: block"
31
+ = form.text_field :number_sequence
32
+
33
+ div
34
+ = form.label :verify_sig, style: "display: block"
35
+ = form.text_field :verify_sig
36
+
37
+ div
38
+ = form.label :block_hash, style: "display: block"
39
+ = form.text_field :block_hash
40
+
41
+ div
42
+ = form.label :signature_hash, style: "display: block"
43
+ = form.text_field :signature_hash
44
+
45
+ div
46
+ = form.submit
@@ -0,0 +1,28 @@
1
+ div id="#{dom_id signature}"
2
+ p
3
+ strong Signature:
4
+ =< signature.signature
5
+ / p
6
+ / strong Time ref:
7
+ / =< signature.time_ref
8
+ p
9
+ strong Contract:
10
+ =< signature.contract_id
11
+ / p
12
+ / strong Common word:
13
+ / =< signature.common_word
14
+ / p
15
+ / strong Symbol sequence:
16
+ / =< signature.symbol_sequence
17
+ / p
18
+ / strong Number sequence:
19
+ / =< signature.number_sequence
20
+ / p
21
+ / strong Verify sig:
22
+ / =< signature.verify_sig
23
+ / p
24
+ / strong Block hash:
25
+ / =< signature.block_hash
26
+ / p
27
+ / strong Signature hash:
28
+ / =< signature.signature_hash
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.extract! signature, :id, :signature, :time_ref, :contract_id, :common_word, :symbol_sequence, :number_sequence, :verify_sig, :block_hash, :signature_hash, :created_at, :updated_at
4
+ json.url signature_url(signature, format: :json)
@@ -0,0 +1,10 @@
1
+ h1 Editing signature
2
+
3
+ == render "form", signature: @signature
4
+
5
+ br
6
+
7
+ div
8
+ => link_to "Show this signature", @signature
9
+ '|
10
+ =< link_to "Back to signatures", signatures_path
@@ -0,0 +1,10 @@
1
+ .text-white.text-center
2
+
3
+
4
+ h1 Signatures
5
+
6
+ #signatures
7
+ - @signatures.each do |signature|
8
+ == render signature
9
+ p
10
+ = link_to "Show this signature", signature
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.array! @signatures, partial: "signatures/signature", as: :signature
@@ -0,0 +1,8 @@
1
+ h1 New signature
2
+
3
+ == render "form", signature: @signature
4
+
5
+ br
6
+
7
+ div
8
+ = link_to "Back to signatures", signatures_path
@@ -0,0 +1,10 @@
1
+ p style="color: green" = notice
2
+
3
+ == render @signature
4
+
5
+ div
6
+ => link_to "Edit this signature", edit_signature_path(@signature)
7
+ '|
8
+ =< link_to "Back to signatures", signatures_path
9
+
10
+ = button_to "Destroy this signature", @signature, method: :delete
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.partial! "signatures/signature", signature: @signature
@@ -0,0 +1,26 @@
1
+ = form_with(model: @ticket) do |form|
2
+ - if @ticket.errors.any?
3
+ div style="color: red"
4
+ h2 = "#{pluralize(@ticket.errors.count, "error")} prohibited this ticket from being saved:"
5
+ ul
6
+ - @ticket.errors.each do |error|
7
+ li = error.full_message
8
+
9
+ p[style="font-size: 16px; font-weight: 550;"]
10
+ strong Click on the button below to open a ticket
11
+ br
12
+ strong Opening a ticket you confirm the following:
13
+ br
14
+ strong
15
+ | You have read and understood the&nbsp;
16
+ = link_to "Terms and Conditions", terms_path, style: "color: #a0aec0;"
17
+ | and the&nbsp;
18
+ = link_to "Privacy Policy", privacy_policy_path, style: "color: #a0aec0;"
19
+ br
20
+ | of Outerspace and agree to be bound by them.
21
+ br
22
+ | You either have confirm that you will not try to break the rules of mining concept and have readed the rules of mining concept.
23
+ br
24
+
25
+ div
26
+ = form.submit class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white", value:"Open a ticket"
@@ -0,0 +1,10 @@
1
+ div id="#{dom_id ticket}"
2
+ p
3
+ strong User:
4
+ =< ticket.user.username
5
+ p
6
+ strong Pool:
7
+ =< ticket.pool_id
8
+ p
9
+ strong Status:
10
+ =< ticket.status
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.extract! ticket, :id, :user_id, :pool_id, :status, :created_at, :updated_at
4
+ json.url ticket_url(ticket, format: :json)
@@ -0,0 +1,10 @@
1
+ h1 Editing ticket
2
+
3
+ == render "form", ticket: @ticket
4
+
5
+ br
6
+
7
+ div
8
+ => link_to "Show this ticket", @ticket
9
+ '|
10
+ =< link_to "Back to tickets", tickets_path
@@ -0,0 +1,16 @@
1
+ .text-white.text-center
2
+
3
+
4
+ h1 Tickets
5
+
6
+ #tickets
7
+ - @tickets.each do |ticket|
8
+ == render ticket if ticket.user == current_user
9
+ br
10
+ p
11
+ = link_to "Show this ticket", ticket, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
12
+ br
13
+ br
14
+ = link_to "New ticket", new_ticket_path, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
15
+ br
16
+ br
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.array! @tickets, partial: "tickets/ticket", as: :ticket
@@ -0,0 +1,10 @@
1
+ .text-white.text-center
2
+ h1 New ticket
3
+
4
+ == render "form", ticket: @ticket
5
+
6
+ br
7
+
8
+ div
9
+ = link_to "Back to tickets", tickets_path, class: "px-4 py-2 rounded bg-purple-500 hover_bg-purple-700 text-white"
10
+ br