fresh new version

This commit is contained in:
anon 2022-05-29 11:03:17 -03:00
commit 48e7175b5e
137 changed files with 84152 additions and 0 deletions

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
__pycache__/
venv/
*.sqlite3
migrations/
service_account_credentials.json

1
Procfile Normal file
View file

@ -0,0 +1 @@
web: gunicorn bitbens.wsgi --log-file -

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# moneropro
License: MIT

23
license.md Normal file
View file

@ -0,0 +1,23 @@
MIT License
## Released under MIT License
Copyright (c) 2022 CryptoMorpheus_ (Ben H. G.)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

22
manage.py Executable file
View file

@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'moneropro.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()

3
monerojnet/admin.py Normal file
View file

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

5
monerojnet/apps.py Normal file
View file

@ -0,0 +1,5 @@
from django.apps import AppConfig
class MonerojnetConfig(AppConfig):
name = 'monerojnet'

46
monerojnet/models.py Normal file
View file

@ -0,0 +1,46 @@
from __future__ import unicode_literals
from django.contrib.postgres.fields import ArrayField
from django.contrib.auth.models import User
from django.db import models
# Create your models here.
class Coin(models.Model):
name = models.CharField(max_length=4)
date = models.DateField()
priceusd = models.FloatField()
pricebtc = models.FloatField()
inflation = models.FloatField()
transactions = models.FloatField()
hashrate = models.FloatField()
stocktoflow = models.FloatField()
supply = models.FloatField()
fee = models.FloatField(default="0")
revenue = models.FloatField(default="0")
def __str__(self):
return self.priceusd
class Social(models.Model):
name = models.CharField(max_length=4)
date = models.DateField()
subscriberCount = models.IntegerField()
commentsPerHour = models.FloatField()
postsPerHour = models.FloatField()
def __str__(self):
return self.subscriberCount
class Dominance(models.Model):
name = models.CharField(max_length=4)
date = models.DateField()
dominance = models.FloatField()
def __str__(self):
return self.dominance
class Rank(models.Model):
name = models.CharField(max_length=4)
date = models.DateField()
rank = models.IntegerField()
def __str__(self):
return self.rank

View file

@ -0,0 +1,137 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
{% load static %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-6 col-md-6 mb-4">
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card border-left-new">
<img class="card-img-top" src="{% static 'img/morpheus.jpeg' %}" alt="Morpheus">
</div>
</div>
</div><br>
<div class="row">
<div class="col-xl-12 col-md-6 mb-4">
<div class="alert alert-success" role="alert">
Liked this project? Help support it, funding my CCS Proposal >
<a href ="https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/318" target="_blank">Link</a>
</div>
</div>
</div>
</div>
<div class="col-xl-6 col-lg-12">
<div class="row">
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<h5 class="card-title">Hi there</h5>
<p class="card-text">
You can call me Morpheus. I made this website to help fellow members of Monero's
community understand it, visualize adoption and to compare it against other
projects such as Bitcoin or its competitors
on the privacy market. This project was made without any intention for profit,
and is maintained by my own funds. If you liked it and want to help
the project, you can donate some XMR. Also, all type of suggestions are welcome!
I do believe Monero is like no other currency, since it has true privacy
(optional privacy is no privacy at all),
and also serves as a store of value (since it has an already small and yet
decreasing anual inflation). I also believe in Bitcoin, I believe Bitcoin will
indeed achieve its value as Digital Gold, since it has gigantic brand
recognition, besides its proved scarcity. However, for most transactions, if we
truly want a digital world, we cant rely on open ledgers to do businesses. It is
just simply a privacy nightmare to pay or receive payment from
someone without using fungible money. Bitcoin is not fungible, which means
different Bitcoins are different from each other, since both have different
(and verifiable) history. Will you also take the red pill?
</p>
<a href="https://www.getmonero.org/" class="btn btn-danger">Take the Redpill</a>
<a href="https://www.federalreserve.gov/" class="btn btn-primary">Take the
Bluepill</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Twitter</div>
<div class="h5 mb-0 font-weight-bold text-gray-800"><a
href="https://twitter.com/CryptoMorpheus_" target="_blank">@CryptoMorpheus_</a>
</div>
</div>
<div class="col-auto">
<i class="fab fa-twitter fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
E-mail</div>
<div class="h5 mb-0 font-weight-bold text-gray-800"><a
href="mailto:morpheus.anonymous@protonmail.com" target="_blank">morpheus.anonymous@protonmail.com</a>
</div>
</div>
<div class="col-auto">
<i class="fas fa-envelope fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Github</div>
<div class="h5 mb-0 font-weight-bold text-gray-800"><a
href="https://github.com/cryptomorpheuss/moneropro" target="_blank">cryptomorpheuss/moneropro</a>
</div>
</div>
<div class="col-auto">
<i class="bx bxl-github fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
</div>
<!-- End of Page Wrapper -->
{% endblock %}

View file

@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Moneroj.net</title>
<meta content="" name="description">
<meta content="" name="keywords">
<link href="{% static 'css/style.css' %}" rel="stylesheet">
<link href="{% static 'img/favicon.png' %}" rel="icon">
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
div.a {
word-break: break-all;
}
.color-orange {
color: #ff4d21;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand" href="{% url 'monerojnet:index' %}"><i class="fab fa-monero"></i> Monero<text class="color-orange">j</text></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Charts</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:articles' %}">Articles</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:about' %}">About</a>
</li>
<li class="nav-item dropdown" >
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Languages
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="nav-link" href="{% url 'monerojnet:index' %}">English</a>
<a class="nav-link" href="{% url 'monerojnet:fr' %}">French</a>
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Portuguese</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
<!-- ======= Hero Section ======= -->
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
<div class="container">
<h1>Articles section is not ready yet!
</h1>
<h2>It's on our plan to build it, but we lack time for now. Check back later.</h2>
</div>
</section>
<!-- End Hero -->
<br><br><br><br><br><br>
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="footer-top">
<div class="container">
<div class="row">
<div class="col-lg-6 col-md-6 footer-contact">
<h3>Moneroj.net</h3>
<p>
Developed by <br>
Morpheus<br>
<strong>Email:</strong> morpheus.anonymous@protonmail.com<br>
<strong>Twitter:</strong> CryptoMorpheus_<br>
<strong>Github:</strong> cryptomorpheuss<br>
</p>
</div>
<div class="col-lg-3 col-md-6 footer-links">
<h4>Useful Links</h4>
<ul>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:index' %}">Home</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Charts</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">About</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container d-lg-flex py-4">
<div class="mr-lg-auto text-center text-lg-left">
<div class="copyright a">
<strong>&copy; Copyright <span>Moneroj.net</span></strong>
</div>
</div>
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
<a href="https://twitter.com/CryptoMorpheus_" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="https://github.com/cryptomorpheuss/moneropro" class="github"><i class="bx bxl-github"></i></a>
<a href="mailto:morpheus.anonymous@protonmail.com" class="github"><i class="fas fa-envelope"></i></a>
</div>
</div>
</footer>
<!-- End Footer -->
<!-- Vendor JS Files -->
<script src="{% static 'vendor/jquery/jquery2.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,129 @@
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Moneroj.net</title>
<meta content="" name="description">
<meta content="" name="keywords">
<link href="{% static 'css/style.css' %}" rel="stylesheet">
<link href="{% static 'img/favicon.png' %}" rel="icon">
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
div.a {
word-break: break-all;
}
.color-orange {
color: #ff6b3b;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand" href="{% url 'monerojnet:index' %}"><i class="fab fa-monero"></i> Monero<text class="color-orange">j</text></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inicial <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Gráficos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:artigos' %}">Artigos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:about' %}">Sobre</a>
</li>
<li class="nav-item dropdown" >
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Idiomas
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inglês</a>
<a class="nav-link" href="{% url 'monerojnet:fr' %}">Francês</a>
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Português</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
<!-- ======= Hero Section ======= -->
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
<div class="container">
<h1>A seção de artigos ainda não está pronta.</h1>
<h2>Volte novamente mais tarde.</h2>
</div>
</section>
<!-- End Hero -->
<br><br><br><br><br><br>
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="footer-top">
<div class="container">
<div class="row">
<div class="col-lg-6 col-md-6 footer-contact">
<h3>Moneroj.net</h3>
<p>
Desenvolvido por<br>
Morpheus<br>
<strong>Email:</strong> morpheus.anonymous@protonmail.com<br>
<strong>Twitter:</strong> CryptoMorpheus_<br>
</p>
</div>
<div class="col-lg-3 col-md-6 footer-links">
<h4>Links úteis</h4>
<ul>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:pt' %}">Página Inicial</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Gráficos</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">Sobre</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container d-lg-flex py-4">
<div class="mr-lg-auto text-center text-lg-left">
<div class="copyright a">
<strong>&copy; Copyright <span>Moneroj.net</span></strong>
</div>
</div>
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
<a href="https://twitter.com/CryptoMorpheus_" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="https://github.com/cryptomorpheuss/moneropro" class="github"><i class="bx bxl-github"></i></a>
<a href="mailto:morpheus.anonymous@protonmail.com" class="github"><i class="fas fa-envelope"></i></a>
</div>
</div>
</footer>
<!-- End Footer -->
<!-- Vendor JS Files -->
<script src="{% static 'vendor/jquery/jquery2.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,354 @@
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Moneroj.net - Charts</title>
<link href="{% static 'img/favicon.png' %}" rel="icon">
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
<style>
.sidebar-brand {
background-color: #ff4d21;
}
.collapse-inner {
background-color: #ffb6a0;
}
.navbar-nav {
background-color: rgb(29, 26, 25);
}
.card {
background-color: rgb(37, 34, 33);
}
.card-header {
background-color: rgb(37, 34, 33);
}
.border-left-new {
border-left-color: rgb(221, 29, 29);
border-left-width: 5px;
}
div.a {
word-break: break-all;
}
</style>
<!-- Load plotly-->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<style>
html,
body {
height: 100%;
margin: 0;
}
#graph1.fullscreen {
z-index: 9999;
width: 100%;
height: 100%;
position: fixed;
top: 0px;
left: 0px;
padding: 0px;
bottom: 0px;
float: left;
min-height: 100%;
}
#graph1 {
height: 650px;
}
#link_graph {
color: #FF0000;
}
#link_graph:hover {
color: #00FF00;
}
</style>
</head>
<body id="page-top">
<!-- Page Wrapper -->
<div id="wrapper">
<!-- Sidebar -->
<ul class="navbar-nav sidebar sidebar-dark accordion" id="accordionSidebar">
<!-- Sidebar - Brand -->
<a class="sidebar-brand d-flex align-items-center justify-content-center"
href="{% url 'monerojnet:index' %}">
<div class="sidebar-brand-icon">
<i class="fab fa-monero"></i>
</div>
<div class="sidebar-brand-text mx-3">Moneroj</div>
</a>
<br>
<!-- Heading -->
<div class="sidebar-heading">
Metrics
</div>
<!-- Nav Item - Prices Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapsePrice"
aria-expanded="true" aria-controls="collapsePrice">
<i class="fas fa-dollar-sign"></i>
<span>Price (14)</span>
</a>
<div id="collapsePrice" class="collapse" aria-labelledby="headingPrice"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:pricelog' %}">Price in Dollars (Log.)</a>
<a class="collapse-item" href="{% url 'monerojnet:pricelin' %}">Price in Dollars (Lin.)</a>
<a class="collapse-item" href="{% url 'monerojnet:pricesats' %}">Price in Sats (Lin.)</a>
<a class="collapse-item" href="{% url 'monerojnet:fractal' %}">Fractal Multiple</a>
<a class="collapse-item" href="{% url 'monerojnet:inflationfractal' %}">Inflation-Adjusted
Fractal</a>
<a class="collapse-item" href="{% url 'monerojnet:golden' %}">Golden Ratio Multiplier</a>
<a class="collapse-item" href="{% url 'monerojnet:competitors' %}">Performance ($)</a>
<a class="collapse-item" href="{% url 'monerojnet:competitorssats' %}">Performance (Sats, log)</a>
<a class="collapse-item" href="{% url 'monerojnet:competitorssatslin' %}">Performance (Sats, lin.)</a>
<a class="collapse-item" href="{% url 'monerojnet:inflationreturn' %}">Return vs. Inflation</a>
<a class="collapse-item" href="{% url 'monerojnet:bitcoin' %}">Comparison to Bitcoin</a>
<a class="collapse-item" href="{% url 'monerojnet:powerlaw' %}">Power Law</a>
<a class="collapse-item" href="{% url 'monerojnet:thermocap' %}">Thermocap Multiple</a>
<a class="collapse-item" href="{% url 'monerojnet:sharpe' %}">Sharpe Ratio</a>
</div>
</div>
</li>
<!-- Nav Item - Marketcap Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseMarketcap"
aria-expanded="true" aria-controls="collapseMarketcap">
<i class="fas fa-dollar-sign"></i>
<span>Marketcap (3)</span>
</a>
<div id="collapseMarketcap" class="collapse" aria-labelledby="headingMarketcap"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:dominance' %}">Dominance</a>
<a class="collapse-item" href="{% url 'monerojnet:rank' %}">Coinmarketcap Rank</a>
<a class="collapse-item" href="{% url 'monerojnet:marketcap' %}">Marketcap</a>
</div>
</div>
</li>
<!-- Nav Item - Transactions Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTransactions"
aria-expanded="true" aria-controls="collapseTransactions">
<i class="fas fa-exchange-alt"></i>
<span>Transactions (7)</span>
</a>
<div id="collapseTransactions" class="collapse" aria-labelledby="headingTransactions"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:translin' %}">Transaction Count (Lin.)</a>
<a class="collapse-item" href="{% url 'monerojnet:translog' %}">Transaction Count (Log.)</a>
<a class="collapse-item" href="{% url 'monerojnet:transcost' %}">Transaction Cost ($)</a>
<a class="collapse-item" href="{% url 'monerojnet:transcostntv' %}">Transaction Cost (Ntv.)</a>
<a class="collapse-item" href="{% url 'monerojnet:percentage' %}">Transaction Percentage</a>
<a class="collapse-item" href="{% url 'monerojnet:metcalfesats' %}">Metcalfe's Law (Sats)</a>
<a class="collapse-item" href="{% url 'monerojnet:metcalfeusd' %}">Metcalfe's Law ($)</a>
</div>
</div>
</li>
<!-- Nav Item - Issuance Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseIssuance"
aria-expanded="true" aria-controls="collapseIssuance">
<i class="fas fa-chart-area"></i>
<span>Issuance (6)</span>
</a>
<div id="collapseIssuance" class="collapse" aria-labelledby="headingIssuance"
data-parent="#accordionSidebar">
<div class="collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:coins' %}">Coins in Circulation</a>
<a class="collapse-item" href="{% url 'monerojnet:extracoins' %}">Supply Difference</a>
<a class="collapse-item" href="{% url 'monerojnet:inflation' %}">Annual Inflation</a>
<a class="collapse-item" href="{% url 'monerojnet:compinflation' %}">Competitors' Inflation</a>
<a class="collapse-item" href="{% url 'monerojnet:dailyemission' %}">Daily Emission ($)</a>
<a class="collapse-item" href="{% url 'monerojnet:dailyemissionntv' %}">Daily Emission (Ntv.)</a>
</div>
</div>
</li>
<!-- Nav Item - Stock-to-flow Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseSF"
aria-expanded="true" aria-controls="collapseSF">
<i class="fas fa-coins"></i>
<span>Stock-to-flow (3)</span>
</a>
<div id="collapseSF" class="collapse" aria-labelledby="headingSF" data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:sfmodel' %}">Stock-to-flow (Log.)</a>
<a class="collapse-item" href="{% url 'monerojnet:sfmodellin' %}">Stock-to-flow (Lin.)</a>
<a class="collapse-item" href="{% url 'monerojnet:sfmultiple' %}">Stock-to-flow Multiple</a>
</div>
</div>
</li>
<!-- Nav Item - Stock-to-flow Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseMining"
aria-expanded="true" aria-controls="collapseMining">
<i class="fas fa-calculator"></i>
<span>Mining (10)</span>
</a>
<div id="collapseMining" class="collapse" aria-labelledby="headingMining"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:hashrate' %}">Hashrate</a>
<a class="collapse-item" href="{% url 'monerojnet:hashprice' %}">Price Per Hashrate</a>
<a class="collapse-item" href="{% url 'monerojnet:hashvsprice' %}">Hashrate Vs Price</a>
<a class="collapse-item" href="{% url 'monerojnet:minerrev' %}">Miner Revenue ($)</a>
<a class="collapse-item" href="{% url 'monerojnet:minerrevntv' %}">Miner Revenue (Ntv.)</a>
<a class="collapse-item" href="{% url 'monerojnet:minerfees' %}">Miner Fees ($)</a>
<a class="collapse-item" href="{% url 'monerojnet:minerfeesntv' %}">Miner Fees (Ntv.)</a>
<a class="collapse-item" href="{% url 'monerojnet:minerrevcap' %}">Revenue / Marketcap (%)</a>
<a class="collapse-item" href="{% url 'monerojnet:commit' %}">Miner Commitment ($)</a>
<a class="collapse-item" href="{% url 'monerojnet:commitntv' %}">Miner Commitment (Ntv.)</a>
</div>
</div>
</li>
<!-- Divider -->
<hr class="sidebar-divider">
<!-- Heading -->
<div class="sidebar-heading">
Social
</div>
<!-- Nav Item - Social Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseSocial"
aria-expanded="true" aria-controls="collapseSocial">
<i class="fab fa-reddit-alien"></i>
<span>Reddit (7)</span>
</a>
<div id="collapseSocial" class="collapse" aria-labelledby="headingSocial"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:social' %}">Total Subscribers</a>
<a class="collapse-item" href="{% url 'monerojnet:social6' %}">Daily Comments</a>
<a class="collapse-item" href="{% url 'monerojnet:social7' %}">Daily Posts</a>
<a class="collapse-item" href="{% url 'monerojnet:social4' %}">Monthly Increase</a>
<a class="collapse-item" href="{% url 'monerojnet:social2' %}">Dollars / Subscriber</a>
<a class="collapse-item" href="{% url 'monerojnet:social3' %}">Subscribers Percentage</a>
<a class="collapse-item" href="{% url 'monerojnet:social5' %}">Subscribers & Transac.</a>
</div>
</div>
</li>
<!-- Nav Item - Darknet Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseDarknet"
aria-expanded="true" aria-controls="collapseDarknet">
<i class="far fa-eye-slash"></i>
<span>Darknet (1)</span>
</a>
<div id="collapseDarknet" class="collapse" aria-labelledby="headingDarknet"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:dread_subscribers' %}">Dread Subscribers</a>
</div>
</div>
</li>
<!-- Nav Item - Adoption Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseAdoption"
aria-expanded="true" aria-controls="collapseAdoption">
<i class="fas fa-store"></i>
<span>Adoption (4)</span>
</a>
<div id="collapseAdoption" class="collapse" aria-labelledby="headingDarknet"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item" href="{% url 'monerojnet:coincards' %}">Coincards Usage</a>
<a class="collapse-item" href="{% url 'monerojnet:merchants' %}">Merchant Acceptance</a>
<a class="collapse-item" href="{% url 'monerojnet:merchants_increase' %}">Merchant Increase</a>
<a class="collapse-item" href="{% url 'monerojnet:merchants_percentage' %}">Merchant Increase (%)</a>
</div>
</div>
</li>
<!-- Nav Item - Trends Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTrends"
aria-expanded="true" aria-controls="collapseTrends">
<i class="fab fa-google"></i>
<span>Google Trends (1)</span>
</a>
<div id="collapseTrends" class="collapse" aria-labelledby="headingTrends"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Charts:</h6>
<a class="collapse-item"
href="https://trends.google.com/trends/explore?date=today%205-y&q=monero"
target="_blank">Google Trends</a>
</div>
</div>
</li>
<!-- Divider -->
<hr class="sidebar-divider d-none d-md-block">
<!-- Heading -->
<div class="sidebar-heading">
Others
</div>
<!-- Nav Item - Others Collapse Menu -->
<li class="nav-item">
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseOthers"
aria-expanded="true" aria-controls="collapseOthers">
<i class="fas fa-info-circle"></i>
<span>About Us</span>
</a>
<div id="collapseOthers" class="collapse" aria-labelledby="headingOthers"
data-parent="#accordionSidebar">
<div class="py-2 collapse-inner rounded">
<h6 class="collapse-header text-dark">Info:</h6>
<a class="collapse-item" href="{% url 'monerojnet:about' %}">About Us</a>
<a class="collapse-item" href="https://twitter.com/CryptoMorpheus_" target="_blank">Twitter</a>
<a class="collapse-item" href ="https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/318" target="_blank">CCS Proposal Link</a>
</div>
</div>
</li>
</ul>
<!-- End of Sidebar -->
{% block content %}
{% endblock %}
</div>
<!-- Bootstrap core JavaScript-->
<script src="{% static 'vendor/jquery/jquery.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,522 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Comparison to Bitcoin
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph2">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Comparison to Bitcoin (aligned)
</h6>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph3" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These three charts show the comparison between Bitcoin's and Monero's prices since inception. On the
first chart, both coins are compared with the X axis being the current
date those prices happened. For the second chart, I placed both first local tops at the "day zero", and
it is easily visible how both coins are very similar. While BTC took 900
days to achieve 37x return, Monero took 1279 days to give 95x return. Since Monero's cycle is longer in
days because it somewhat depends on how much time Bitcoin's bull market
will take to finnish (and each cycle takes more time than the previous), Monero's return in one whole
bull market was much better than Bitcoin's. I plotted this chart in order
to make evident how the narrative that "Bitcoin is better any other coins" can be somehow too narrow.
The last chart has a distorted time scale to show how both coins
look very much like the other, and in fact it seems Monero is printing a fractal from Bitcoin's second
cycle... but with a better return on capital.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Return on Capital',
x: {{ dates2|safe }},
y: {{ btc2|safe }},
line: {
color: '#dcdf30'
,width: 3
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Return on Capital',
x: {{ dates2|safe }},
y: {{ btc2|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Return on Capital',
x: {{ dates2|safe }},
y: {{ xmr2|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Return on Capital',
x: {{ dates2|safe }},
y: {{ xmr2|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Return on Capital',
x: {{ dates|safe }},
y: {{ btc|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Return on Capital',
x: {{ dates|safe }},
y: {{ btc|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Monero Return on Capital',
x: {{ dates4|safe }},
y: {{ xmr3|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Return on Capital',
x: {{ dates4|safe }},
y: {{ xmr3|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data2, data1];
var data_2 = [data4, data5];
var data_mobile = [data2_mobile, data1_mobile];
var data_mobile_2 = [data4_mobile, data5_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj <br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Multiple from previous top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2011-01-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout2 = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Multiple from previous top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['0', '4400']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-01-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
var layout2_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['0', '4200']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
document.getElementById("graph2").style.height="350px";
Plotly.newPlot('graph3', data_mobile_2, layout2_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
document.getElementById("graph2").style.height="700px";
Plotly.newPlot('graph3', data_2, layout2, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,424 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Coincards Usage (%)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Card -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}%</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}%</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Ethereum</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_eth }}%</div>
</div>
<div class="col-auto">
<i class="fab fa-ethereum fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Others</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_others }}%</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Coincards usage (percentage).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Dominance',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Dominance',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Dominance',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Dominance',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Ethereum Dominance',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Ethereum Dominance',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Others',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#999999'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Others',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#999999'
,width: 2
}
};
var data = [data1, data3, data4, data2];
var data_mobile = [data1_mobile, data3_mobile, data4_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Percentage (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2021-03-01', '2022-08-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2021-03-01', '2022-08-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,392 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Coins in Circulation
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Supply</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }} XMR</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin's Supply</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }} BTC</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total issuance in units of both Bitcoin and Monero. You can see Monero is a younger
project, since it started after. Both coins
were distributed to miners, without premine. The main difference is Monero will be scarce comparing to
Bitcoin until Bitcoin's next halving.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Supply',
x: {{ dates|safe }},
y: {{ supplyxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Supply',
x: {{ dates|safe }},
y: {{ supplyxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Supply',
x: {{ dates|safe }},
y: {{ supplybtc|safe }},
line: {
color: '#ffd311'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Supply',
x: {{ dates|safe }},
y: {{ supplybtc|safe }},
line: {
color: '#ffd311'
,width: 3
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Monero Future Supply',
x: {{ dates|safe }},
y: {{ fsupplyxmr|safe }},
line: {
color: '#aa0d0d'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Future Supply',
x: {{ dates|safe }},
y: {{ fsupplyxmr|safe }},
line: {
color: '#aa0d0d'
,width: 1
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Future Supply',
x: {{ dates|safe }},
y: {{ fsupplybtc|safe }},
line: {
color: '#99a300'
,width: 1
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Future Supply',
x: {{ dates|safe }},
y: {{ fsupplybtc|safe }},
line: {
color: '#99a300'
,width: 1
}
};
var data = [data2, data3, data1, data4];
var data_mobile = [data2_mobile, data3_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Coins',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2009-01-01', '2045-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-01-01', '2045-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,345 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Miner Commitment (Hashrate divided by revenue, hashs/dollar) -
WARNING: DON'T COMPARE DIRECTLY BOTH COINS</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Miner Commitment</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Miner Commitment</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows how much hashpower miners put into the network considering their revenue in dollars.
Higher numbers mean miners expect the value of the coin to keep increasing, since no miner would
increase hashpower if they didnt expect better returns.
However Bitcoin's and Monero's hashpowers can't be directly compared. The viewer must only look for each
coin's particular increase as a percentage of itself.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Commitment',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Commitment',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Commitment',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Commitment',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.75,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Miner Commitment (hashs/dollar)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,346 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Miner Commitment (Hashrate divided by revenue, hashs/coin) -
WARNING: DON'T COMPARE DIRECTLY BOTH COINS</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Miner Commitment</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Miner Commitment</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows how much hashpower miners put into the network considering their revenue in native
coins.
Higher numbers mean miners expect the value of the coin to keep increasing, since no miner would
increase hashpower if they didnt expect better returns.
However Bitcoin's and Monero's hashpowers can't be directly compared. The viewer must only look for each
coin's particular increase as a percentage of itself.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Commitment',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Commitment',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Commitment',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Commitment',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.75,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Miner Commitment (hashs/coin)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2011-03-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2011-03-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,427 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Competitor Performance</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Dash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_dash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Grin's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_grin }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Zcash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_zcash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the comparison between Monero's most important competitors. It shows their return as a
multiplication of the price on their respective first top.
This chart shows clearly that the coin with the lowest inflation is the one that protects most the
purchasing power of its holders. In this case, since Monero's Inflation
is way lower than its competitors, it takes the cake as the best coin (or, in other words, the one that
made people most for their money).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data3, data2, data1, data4];
var data_mobile = [data3_mobile, data2_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Multiple from first top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['1', '3200']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['1', '3200']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,427 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Competitor Performance</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Dash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_dash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Grin's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_grin }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Zcash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_zcash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the comparison between Monero's most important competitors. It shows their return as a
multiplication of the price on their respective first top.
This chart shows clearly that the coin with the lowest inflation is the one that protects most the
purchasing power of its holders. In this case, since Monero's Inflation
is way lower than its competitors, it takes the cake as the best coin (or, in other words, the one that
made people most for their money).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data3, data2, data1, data4];
var data_mobile = [data3_mobile, data2_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Multiple from first top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.3f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['1', '3500']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.3f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['1', '3500']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,427 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Competitor Performance</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Dash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_dash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Grin's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_grin }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Zcash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_zcash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the comparison between Monero's most important competitors. It shows their return as a
multiplication of the price on their respective first top.
This chart shows clearly that the coin with the lowest inflation is the one that protects most the
purchasing power of its holders. In this case, since Monero's Inflation
is way lower than its competitors, it takes the cake as the best coin (or, in other words, the one that
made people most for their money).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data3, data2, data1, data4];
var data_mobile = [data3_mobile, data2_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.98,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Multiple from first top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.3f"
,nticks: 3
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['1', '3500']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.3f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: ",.0f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['1', '3500']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,485 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Annualized Inflation for Monero and its competitors (Bitcoin and
privacy-oriented Dash, Zcash and Grin)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-2 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-2 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="h5 mb-0 font-weight-bold text-gray-800">Monero has lower average inflation
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-2 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-2 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Dash Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_dash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-2 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Zcash Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_zcash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-2 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Grin Annual Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_grin }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
This page was created to help Monero's community, but this isn't financial advice. Invest at
your own risk.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows a comparison between the annual inflation rate of Monero and its competitors. The lower
the inflation, the better, since lower inflation rates
protect better the purchasing power of its holders. Monero is by far the best privacy coin you hold,
since its inflation is way lower than the others. Another thing
evident from this chart is that the other privacy coins are many years away from having an inflation
rate as small as Monero. Cool!<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dash Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationdash|safe }},
line: {
color: '#2f21f7'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationdash|safe }},
line: {
color: '#2f21f7'
,width: 3
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Grin Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationgrin|safe }},
line: {
color: '#dcdf30'
,width: 3
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Grin Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationgrin|safe }},
line: {
color: '#dcdf30'
,width: 3
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Zcash Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationzcash|safe }},
line: {
color: '#ffb6a0'
,width: 3
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Zcash Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationzcash|safe }},
line: {
color: '#ffb6a0'
,width: 3
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationbtc|safe }},
line: {
color: '#ff9d1d'
,width: 3
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Annual Inflation',
x: {{ dates|safe }},
y: {{ inflationbtc|safe }},
line: {
color: '#ff9d1d'
,width: 3
}
};
var data = [data3, data1, data4, data5, data2];
var data_mobile = [data3_mobile, data1_mobile, data4_mobile, data5_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.70,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Inflation (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2009-01-01', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-01-01', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,375 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Daily Emission (USD)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current XMR Emission</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest XMR Emission</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ high_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current BTC Emission</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest BTC Emission</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ high_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total issuance in units of both Bitcoin and Monero calculated in dollars. This cant
also be seen as how much money one would need to buy all newly mined coins in the last day.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Emission',
x: {{ dates|safe }},
y: {{ emissionxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Emission',
x: {{ dates|safe }},
y: {{ emissionxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Emission',
x: {{ dates|safe }},
y: {{ emissionbtc|safe }},
line: {
color: '#ffd311'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Emission',
x: {{ dates|safe }},
y: {{ emissionbtc|safe }},
line: {
color: '#ffd311'
,width: 3
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Daily Emission (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,342 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Daily Emission (Native Units)
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Daily Emission (XMR)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Daily Emission (BTC)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the number of all mined coins daily.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Daily Emission',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Daily Emission',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Daily Emission',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Daily Emission',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Daily Emission (Native Units)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,372 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Monero's Marketcap Dominance (%)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Dominance</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_value }}%</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Dominance</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}%</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows Monero's dominance over the whole cryptocurrency market, judging by total marketcap value in dollars.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dominance',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {
color: '#dd1d1d'
,width: 3
},
yaxis: "y2"
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dominance',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {
color: '#dd1d1d'
,width: 3
},
yaxis: "y2"
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data = [data3, data1];
var data_mobile = [data3_mobile, data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
yaxis2: {
type: "log",
title: {
text: 'Dominance (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-08-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 10
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
yaxis2: {
type: "log",
tickformat :",.2f"
,nticks: 8
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-08-01']
,zeroline: true
},
margin: {
l: 40,
r: 100,
b: 35,
t: 10,
pad: 10
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,396 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Darknet Forum Subscribes (Dread)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Dominance</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ dominance }}%</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Number of subscribers to Bitcoin and Monero threads on Dread forum on Darknet.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "bar",
name: 'Bitcoin Darknet Subscribers',
x: {{ dates|safe }},
y: {{ data1|safe }},
hovertemplate: '%{y}',
line: {
color: '#ffd311'
,width: 3
},
textposition: 'inside',
marker: {
color: '#ffd311',
opacity: 0.9,
line: {
color: '#fff331',
width: 1
}
}
};
var data1_mobile = {
type: "bar",
name: 'Bitcoin Darknet Subscribers',
x: {{ dates|safe }},
y: {{ data1|safe }},
hovertemplate: '%{y}',
line: {
color: '#ffd311'
,width: 3
},
textposition: 'inside',
marker: {
color: '#ffd311',
opacity: 0.9,
line: {
color: '#fff331',
width: 1
}
}
};
var data2 = {
type: "bar",
name: 'Monero Darknet Subscribers',
x: {{ dates|safe }},
y: {{ data2|safe }},
hovertemplate: '%{y}',
line: {
color: '#dd1d1d'
,width: 3
},
textposition: 'inside',
marker: {
color: '#dd1d1d',
opacity: 0.9,
line: {
color: '#fd4d4d',
width: 1
}
}
};
var data2_mobile = {
type: "bar",
name: 'Monero Darknet Subscribers',
x: {{ dates|safe }},
y: {{ data2|safe }},
hovertemplate: '%{y}',
line: {
color: '#dd1d1d'
,width: 3
},
textposition: 'inside',
marker: {
color: '#dd1d1d',
opacity: 0.9,
line: {
color: '#fd4d4d',
width: 1
}
}
};
var data = [data1, data2];
var data_mobile = [data1_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Subscribers',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2021-12-01', '2022-12-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2021-12-01', '2022-12-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,323 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Supply Difference</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Difference in Supply</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_diff }} BTC</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the difference between Bitcoin supply and Monero supply. Formula is BTC-Supply -
XMR-Supply.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Current Difference',
x: {{ dates|safe }},
y: {{ nsupply|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Current Difference',
x: {{ dates|safe }},
y: {{ nsupply|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Future Difference',
x: {{ dates|safe }},
y: {{ fsupply|safe }},
line: {
color: '#aa0d0d'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Future Difference',
x: {{ dates|safe }},
y: {{ fsupply|safe }},
line: {
color: '#aa0d0d'
,width: 1
}
};
var data = [data2, data1];
var data_mobile = [data2_mobile, data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.98,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Supply Difference',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2009-01-01', '2060-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-01-01', '2060-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,758 @@
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Moneroj.net</title>
<meta content="" name="description">
<meta content="" name="keywords">
<link href="{% static 'css/style.css' %}" rel="stylesheet">
<link href="{% static 'img/favicon.png' %}" rel="icon">
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet"
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
div.a {
word-break: break-all;
}
.color-orange {
color: #ff6b3b;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand" href="{% url 'monerojnet:index' %}"><i class="fab fa-monero"></i> Monero<text class="color-orange">j</text></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Accueil <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Graphiques</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:articles' %}">Articles</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:about' %}">Sur</a>
</li>
<li class="nav-item dropdown" >
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Langages
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Anglais</a>
<a class="nav-link" href="{% url 'monerojnet:fr' %}">Français</a>
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Portugaise</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
<!-- ======= Hero Section ======= -->
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
<div class="container">
<h1>Saviez-vous que toutes vos données sont exposées lorsque vous utilisez Bitcoin?</h1>
<h2>Monero est ce que les gens pensent acheter lorsqu'ils investissent dans Bitcoin.</h2>
</div>
</section>
<!-- End Hero -->
<main id="main">
<!-- ======= Why Us Section ======= -->
<section id="why-us" class="why-us">
<div class="container">
<div class="row">
<div class="col-xl-4 col-lg-5">
<div class="content">
<h3>Monero protège votre vie privée, pas Bitcoin.</h3>
<p>
La plupart des
gens pensent que Bitcoin est «&nbsp;anonyme&nbsp;». Ils ne pouvaient
pas être plus éloignés de la vérité. Bitcoin est un grand livre
transparent et toutes les données des transactions sont
toujours publiquement visibles sur Internet, comme le
montant, les adresses d'expéditeur et de destinataire, les adresses IP,
l'historique, etc. Bitcoin est en fait un cauchemar pour la vie privée.
C'est pourquoi
les cypherpunks ont inventé le Monero !
</p>
<div class="text-center">
<a href="https://www.fintechweekly.com/magazine/articles/an-untraceable-currency-bitcoin-privacy-concerns"
class="more-btn" target="_blank">
En savoir plus sur les problèmes de Bitcoin ici<i class="bx bx-chevron-right"></i></a>
</div>
</div>
</div>
<div class="col-xl-8 col-lg-7 d-flex">
<div class="icon-boxes d-flex flex-column justify-content-center">
<div class="row">
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="far fa-eye-slash"></i>
<h4>Monero est anonyme</h4>
<p>Aucune entreprise, gouvernement ou tiers ne peut voir le contenu des transactions. Personne
d'autre que l'expéditeur et le destinataire ne
peut voir combien a été envoyé. Personne ne peut voir votre solde. Même votre IP est masquée par
défaut.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="bx bx-cube-alt"></i>
<h4>Monero protège vos données et vos fonds</h4>
<p>Monero est un logiciel open source, audité de manière indépendante, qui garantit la norme de
sécurité la plus élevée. Le développement est financé par
le système de financement participatif communautaire pour se protéger des acteurs malveillants.
Vos pièces sont à vous et personne ne peut les prendre.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-shield-alt"></i>
<h4>Monero rend votre liberté</h4>
<p>La confidentialité par défaut empêche la surveillance et la censure de masse, garantissant la
liberté personnelle de ses utilisateurs. Monero a
également une transparence facultative en tant que fonctionnalité, aidant les organisations à
prouver leurs équilibres, si nécessaire.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-8 col-lg-7 d-flex">
<div class="icon-boxes d-flex flex-column justify-content-center">
<div class="row">
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-percent"></i>
<h4>Monero a une faible inflation</h4>
<p>L'inflation annuelle actuelle n'est que de {{ now_inflation }} et diminue constamment jusqu'à ce
que les émissions "de queue" commencent vers 2022. Il n'y avait pas de
prémine ou ICO et toutes les pièces ont été extraites équitablement depuis 2014.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-coins"></i>
<h4>Monero est rare</h4>
<p>Il y a
moins de Monero en circulation que Bitcoin, et cela restera un fait
jusqu'en 2040. D'ici là, il est prévu que Monero prendra le relais
marché des comptes offshore, qui est
actuellement au moins 16.000 fois plus important que sa capitalisation
totale.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-rocket"></i>
<h4>Extrêmement rapide et bon marché à utiliser</h4>
<p>Les
transactions apparaissent instantanément dans votre portefeuille, et
cela ne prend que quelques minutes jusqu'à ce que les fonds soient
débloqués et puissent être à nouveau dépensés.
La plupart des transactions coûtent moins
d'un cent à transmettre.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-5"><br>
<div class="content">
<h3>Les gens prétendent que Bitcoin résout tous les problèmes de l'humanité. C'est un mensonge terrible.
</h3>
<p>
Bitcoin est un
bon projet qui mettra les gouvernements en concurrence avec l'argent
dur privé, mais nous ne pouvons tout simplement pas prétendre qu'il
résoudra les problèmes de confidentialité. Alors que Bitcoin
sera bon pour les institutions qui doivent être
auditées (puisque l'audit est plus facile en raison de la transparence),
la plupart des gens préféreront
utiliser de l'argent anonyme pour faire des affaires,
car vous ne voulez pas exposer toutes vos données à tous ceux avec qui
vous traitez.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- End Why Us Section -->
<!-- ======= About Section ======= -->
<section id="about" class="about section-bg">
<div class="container">
<div class="row">
<div class="col-xl-5 col-lg-6 video-box d-flex justify-content-center align-items-stretch">
<a href="https://www.youtube.com/watch?v=8quGD9W7B2I" class="venobox play-btn mb-4" data-vbtype="video"
data-autoplay="true"></a>
</div>
<div
class="col-xl-7 col-lg-6 icon-boxes d-flex flex-column align-items-stretch justify-content-center py-5 px-lg-5">
<h4>Regardez cette vidéo sur Monero</h4>
<h3>Monero est de l'argent imparable pour les gens imparables</h3>
<p>Monero
est un projet de la communauté cypherpunk, complètement décentralisé,
sans aucune autorité centrale derrière lui. Il est impossible de le
censurer,
tout comme Bitcoin. La différence est que les personnes
qui utilisent Bitcoin peuvent toujours être censurées, tandis que celles
qui utilisent Monero ne le peuvent pas, car personne ne peut savoir qui
l'utilise.
</p>
<div class="icon-box">
<div class="icon"><i class="fa fa-balance-scale"></i></div>
<h4 class="title"><a href="">Peur que le gouvernement l'interdise? Réfléchissez à deux fois</a></h4>
<p class="description">Étant
donné que Monero est anonyme, il sert en fait de compte offshore sans
avoir à ouvrir un compte dans une banque. Les représentants du
gouvernement n'auront pas
réussi à l'interdire, d'abord parce qu'il est
impossible de fermer un réseau décentralisé, et deuxièmement parce
qu'ils auraient également avantage à l'utiliser pour cacher des fonds.
</p>
</div>
<div class="icon-box">
<div class="icon"><i class="fa fa-thermometer"></i></div>
<h4 class="title"><a href="">Interdire Monero le rendrait encore plus cher</a></h4>
<p class="description">Monero
est de l'argent rare avec une intimité totale. Il y a une énorme
demande pour un tel actif, tout comme l'or physique. Parce qu'il y a de
l'utilité
dans celui-ci, la demande ne disparaîtra pas avec une
interdiction. En fait, cela ne ferait que créer plus de rareté, faisant
monter les prix. Monero est anti-fragile. Pensez-y : Monero protège
votre patrimoine contre l'inflation et protège votre
vie privée. Si les gouvernements interdisent aux citoyens de protéger
leur patrimoine contre l'inflation, et
d'avoir de l'intimité, pensez-vous qu'il deviendrait
moins cher d'obtenir ces choses? Pas du tout. Ce serait cher
comme l'enfer.
</p>
</div>
</div>
</div>
<br><br><br>
<div class="row">
<div
class="col-xl-7 col-lg-6 icon-boxes d-flex flex-column align-items-stretch justify-content-center py-5 px-lg-5">
<h4>Apprendre. Adapter. Évoluer.</h4>
<h3>Monero pourrait être exactement ce dont votre portefeuille d'investissement a besoin</h3>
<p>Monero
est une crypto-monnaie pas comme les autres. Il a une faible
corrélation avec Bitcoin, ce qui en fait un bon ajout pour vos
investissements, car
cela vous aidera à vous diversifier et pourrait
augmenter votre rendement futur. N'oubliez pas : Monero est un bébé de 2
milliards de dollars qui finira par engloutir des comptes offshore de
32T.
Si l'argent devenait 100 % numérique, comment se
fait-il que les gens pensent encore que vous devrez physiquement ouvrir
un compte dans un autre pays pour cacher de l'argent?
</p>
<div class="icon-box">
<div class="icon"><i class="fas fa-chess-king"></i></div>
<h4 class="title"><a
href="https://markets.businessinsider.com/currencies/news/why-the-dark-nets-most-active-market-ditched-bitcoin-for-monero-9698092?op=1"
target="_blank">Il a détrôné Bitcoin où la confidentialité est un must</a></h4>
<p class="description">Bien
que la grande majorité des activités illégales se fassent en utilisant
le dollar, Bitcoin a également été utilisé à cette fin dans le passé.
Parce que
Bitcoin a une blockchain transparente, ces
transactions peuvent être identifiées rétroactivement et marquées comme
«&nbsp;entachées&nbsp;». Étant donné que sans logiciel coûteux, vous ne
pouvez pas dire le
différence, de nombreux innocents ont été accusés
d'actes répréhensibles. Monero est sans aucun doute l'argent le plus
avancé disponible, et sa confidentialité totale protège les innocents
contre
fausses accusations.
</p>
</div>
<div class="icon-box">
<div class="icon"><i class="fab fa-monero"></i></div>
<h4 class="title"><a href="https://analyticsindiamag.com/monero-cryptocurrency-hackers/"
target="_blank">Les pirates préfèrent Monero au Bitcoin</a></h4>
<p class="description">Monero
est la pointe de la lance en matière d'intimité. Sa technologie de
pointe en a fait le choix optimal pour la plupart des pirates
informatiques. Il existe une loi économique qui dit
les gens préfèrent se débarrasser du mauvais argent
et détenir le meilleur argent. C'est ce à quoi nous assistons, Bitcoin
est abandonné au profit de Monero,
la seule véritable option de confidentialité.
</p>
</div>
</div>
<div class="col-xl-5 col-lg-6 video-box2 d-flex justify-content-center align-items-stretch">
<a href="https://www.youtube.com/watch?v=REC5V7d3pqM" class="venobox play-btn mb-4" data-vbtype="video"
data-autoplay="true"></a>
</div>
</div>
</div>
</section>
<!-- End About Section -->
<!-- ======= Services Section ======= -->
<section id="services" class="services">
<div class="container">
<div class="section-title">
<h2>
<font style="vertical-align: inherit;">Comment investir dans Monero? </font>
</h2>
<p>
<font style="vertical-align: inherit;">Intéressé? Ouvrez
simplement un compte dans un échange de confiance, envoyez un virement
bancaire, achetez-le et retirez-le dans votre portefeuille. N'oubliez
pas de toujours avoir vos propres clés, sinon
vos pièces peuvent être volées à l'échange.
Si vous vous souciez de la confidentialité, nous vous recommandons vraiment
d'utiliser un échange décentralisé ou un échange non KYC (connaissez
votre client), mais seuls les utilisateurs avancés peuvent le faire.
Pour plus d'informations, rendez-vous sur <a href="https://localmonero.co/?language=en"
target="_blank">Localmonero.co</a> ou essayez même <a href="https://bisq.network/"
target="_blank">Bisq.</a>
</font>
</p>
</div>
<div class="row">
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-check"></i></div>
<h4 class="title"><a href="https://www.kraken.com/en-us/learn/buy-monero-xmr" target="_blank">
<font style="vertical-align: inherit;">Ouvrir un compte Exchange </font>
</a></h4>
<p class="description">
<font style="vertical-align: inherit;">Achetez sur </font><a
href="https://www.kraken.com/en-us/learn/buy-monero-xmr">
<font style="vertical-align: inherit;">Kraken.com </font>
</a>
<font style="vertical-align: inherit;">, </font><a href="https://www.binance.com/en">
<font style="vertical-align: inherit;">Binance.com </font>
</a>
<font style="vertical-align: inherit;">ou sur un échange non KYC*. Envoyez à l'échange un virement
bancaire et convertissez vos fonds en Monero. </font>
</p>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-wallet"></i></div>
<h4 class="title"><a href="https://www.getmonero.org/downloads/" target="_blank">
<font style="vertical-align: inherit;">Installer un portefeuille </font>
</a></h4>
<p class="description">
<font style="vertical-align: inherit;">Utilisez </font><a href="https://www.getmonero.org/downloads/">
<font style="vertical-align: inherit;">le portefeuille logiciel officiel </font>
</a>
<font style="vertical-align: inherit;">sur PC ou le </font><a href="https://cakewallet.com/">
<font style="vertical-align: inherit;">portefeuille Cake </font>
</a>
<font style="vertical-align: inherit;"> ou le <a href="https://www.monerujo.io/">Monerujo</a> sur votre
téléphone portable.
Vous pouvez également acheter un </font><a href="https://www.ledger.com/">
<font style="vertical-align: inherit;">portefeuille matériel </font>
</a>
<font style="vertical-align: inherit;">. </font>
</p>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-sign-out-alt"></i></div>
<h4 class="title"><a href="https://www.getmonero.org/resources/user-guides/securely_purchase.html"
target="_blank">
<font style="vertical-align: inherit;">Retirer dans votre portefeuille </font>
</a></h4>
<p class="description">
<font style="vertical-align: inherit;">Accédez
à votre compte sur l'échange et demandez-leur d'envoyer votre Monero à
l'adresse de votre portefeuille.
Officiel </font><a href="https://www.getmonero.org/resources/user-guides/securely_purchase.html">
<font style="vertical-align: inherit;">Guide . </font>
</a>
</p>
</div>
</div>
</div>
</div>
</section>
<!-- End Services Section -->
<!-- ======= F.A.Q Section ======= -->
<section id="faq" class="faq section-bg">
<div class="container">
<div class="section-title">
<h2>
<font style="vertical-align: inherit;">FAQ </font>
</h2>
<p>
<font style="vertical-align: inherit;">Vous hésitez encore sur la manière de l'acheter et de le conserver?
Lisez les bases ici. </font>
</p>
</div>
<div class="faq-list">
<ul>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" class="collapse"
href="#faq-list-1">
<font style="vertical-align: inherit;">Qu'est-ce que Monero exactement? </font><i
class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-1" class="collapse show" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Monero est une
crypto-monnaie, tout comme Bitcoin. Monero est un projet de logiciel
open source qui fonctionne sur sa propre blockchain et qui sert de
monnaie, tout comme le dollar.
Beaucoup de gens laissent leur ordinateur "miner", ce
qui signifie qu'ils prêtent la puissance de traitement de leur PC afin
de valider toutes les transactions sur le réseau.
En faisant cela, toute cette puissance de traitement
est utilisée pour garantir une émission équitable de nouvelles pièces
(ce qui provoque une inflation annuelle décroissante de {{now_inflation}}) et pour
protéger votre argent
des pirates informatiques. Monero a une inflation
décroissante qui finira par tendre vers zéro, et parce qu'une faible
inflation conduit à la rareté, il fonctionne comme une réserve de
valeur, tout comme l'or ou le Bitcoin.
Contrairement à Bitcoin, cependant, Monero a une
confidentialité totale, ce qui signifie qu'il cache votre solde et vos
transactions d'être visibles sur le réseau pour les autres.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-2" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Comment Monero cache-t-il mon argent? Comment cela me donne-t-il
de l'intimité? </font><i class="bx bx-chevron-down icon-show"></i><i
class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-2" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Monero dispose
de technologies de pointe en matière de confidentialité, telles que
RingCT, Stealth Addresses, Bulletproof et Dandelion++. Les Ring
Confidential Transactions (RingCT) sont utilisées pour masquer
l'expéditeur d'une transaction et le montant,
tandis que les adresses furtives à usage unique sont
utilisées pour masquer l'adresse du destinataire à l'aide d'une méthode
connue sous le nom de DKSAP. Bulletproofs est un protocole qui a
amélioré les RingCTs, réduisant
la taille des transactions, ce qui se traduit par des
délais de vérification plus rapides et des frais moins élevés.
Dandelion++, quant à lui, a été développé pour masquer l'adresse IP de
l'appareil expéditeur.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-3" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Pourquoi les gens disent-ils que Monero est imparable? </font><i
class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-3" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Les
développeurs de Monero ont déjà testé le concept d'échanges atomiques
entre lui et Bitcoin, qui se produiront directement à partir du
portefeuille de Monero et seront traités
via la blockchain de Bitcoin. Dans un avenir proche,
les utilisateurs pourront échanger facilement un actif contre un autre,
sans avoir à dépendre des autorités centrales, telles que
échanges, ce qui en fait la meilleure solution de
confidentialité possible pour Bitcoin. En d'autres termes, pour
interdire Monero, les gouvernements devraient d'abord censurer
l'ensemble du Bitcoin
blockchain, ce qui n'arrivera pas, car Bitcoin est
déjà ancré dans la société. Ainsi, personne ne pourra empêcher les gens
d'avoir de la vie privée.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-4" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Comment fonctionne son inflation? Comment les nouvelles pièces
sont-elles créées&nbsp;? </font><i class="bx bx-chevron-down icon-show"></i><i
class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-4" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Il n'y a
jamais eu de prémine sur Monero. Cela signifie que personne ne contrôle
de grandes quantités de pièces, car toutes les pièces jamais générées
ont toujours été distribuées aux mineurs. Les mineurs
reçoivent des pièces en fonction du travail qu'ils
ont consacré à la validation et à la défense du réseau. Il s'agit donc
d'une forme de revenu financier qu'ils reçoivent pour leur service.
Depuis au
au début (2014), il n'y avait pas de pièces en
circulation, l'inflation était élevée. Maintenant qu'il y a {{now_units}}
unités en circulation, l'inflation annuelle n'est que de {{now_inflation}}.
Le paiement par bloc diminue avec le temps, de même
que le taux d'inflation annuel diminuera lentement vers zéro. La
demande d'argent dur fongible, numérique et axé sur la confidentialité
va probablement monter en flèche
au cours des prochaines années et dépasser son
inflation, les investisseurs s'attendent donc à une hausse considérable
des prix.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-5" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Quel est le meilleur, Bitcoin ou Monero? </font><i
class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-5" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Le prix de
Bitcoin est bien plus élevé que celui de Monero depuis que le premier a
été introduit en 2009, tandis que le dernier n'a été créé qu'en 2014.
Lorsque Bitcoin a été créé, la technologie
derrière Monero n'existait même pas. Les méthodes de
Bitcoin étaient elles-mêmes un énorme progrès technologique.
Maintenant, Bitcoin a une légion d'investisseurs, est une crypto-monnaie
établie,
et avoir une capitalisation boursière de 1T USD.
Cependant, Bitcoin a de nombreux défauts, tels que le coût et le temps
de transaction, et surtout le manque de confidentialité. Bitcoin n'a
aucune confidentialité.
Toutes les transactions et soldes sont stockés dans
une chaîne de blocs, et sont totalement visibles pour tous les
internautes. En ce sens, Bitcoin ne peut pas fonctionner comme de
l'argent,
parce que l'un des principaux attributs d'un bon
argent est la fongibilité, qui est la capacité de toutes les unités à
être indiscernables des autres. Puisque toutes les transactions de
Bitcoins
sont visibles, vous pouvez les différencier les uns
des autres. Par exemple, vous pouvez choisir d'accepter les
transactions à partir d'une seule adresse, mais choisir d'interdire aux
personnes d'accepter
un autre. Cela permettra inévitablement aux
gouvernements de censurer certaines adresses en fonction de ce que font
leurs propriétaires. Par conséquent, le manque de fongibilité n'est pas
un
fonctionnalité pour beaucoup d'argent. En ce sens,
Monero est bien meilleur que Bitcoin. Monero est plus rapide, moins
cher à traiter et totalement fongible. Vous ne pouvez pas voir les
différences
entre différents Moneroj (Moneroj est au pluriel de
Monero), vous ne pouvez donc pas non plus censurer les gens. Avec
Monero, les gens sont libres, alors qu'avec Bitcoin, les gens
sont à la merci des dirigeants de leurs
gouvernements.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-6" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Monero est-il un bon investissement? </font><i
class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-6" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Bien que
personne ne puisse prédire exactement ce qui se passera à l'avenir, la
communauté de Monero s'attend à ce qu'il y ait une énorme demande de
confidentialité dans les prochaines années. Avec
notre société s'appuyant davantage sur les processus
numériques, il est plausible qu'un tel type de technologie finisse par
trouver sa place dans notre vie quotidienne. Monero est un pari
sur la numérisation de l'argent, un pari sur le
besoin de confidentialité et aussi un pari que les gouvernements
perdront le monopole de l'argent. En termes de retours, alors que BTC a
pris 900
jours pour atteindre 37x dans son premier cycle de
marché haussier, Monero a mis 1279 jours pour donner un rendement de
95x. Cependant, vous ne devez pas considérer cela comme un conseil
financier et vous devez
investir à vos risques et périls.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-7" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Quelle est la première étape si je veux investir dans Monero?
</font><i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-7" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">En termes
simples, ouvrez un compte sur un échange de confiance, tel que Kraken
(États-Unis) ou Binance (monde). Il vous suffit d'écrire vos données
sous leur forme. Après cela, complétez
l'ensemble du processus d'enregistrement, qui peut
inclure des procédures KYC, comme l'envoi d'une photo de votre document
et de votre visage. N'oubliez pas non plus d'activer le double facteur
l'authentification, qui empêche les pirates de voler
vos fonds et autorise également les retraits. Ensuite, envoyez un
virement bancaire à l'échange et dans quelques heures, ils
mettre à jour votre solde. Lorsque cela se produit,
achetez votre Monero et procédez aux retraits.
</font>
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-8" class="collapsed"
aria-expanded="false">
<font style="vertical-align: inherit;">Si j'ai déjà un compte, que faire ensuite&nbsp;? </font><i
class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i>
</a>
<div id="faq-list-8" class="collapse" data-parent=".faq-list" style="">
<p>
<font style="vertical-align: inherit;">Téléchargez
maintenant un portefeuille logiciel pour Monero sur votre téléphone
(comme Cake Wallet ou Monerujo) ou pour votre ordinateur (le portefeuille officiel).
Vous pouvez également acheter
un portefeuille matériel tel que le Ledger. Lorsque
vous avez terminé cette étape, vous pouvez vous connecter sur votre
compte d'échange et demander un retrait de fonds. Ça signifie
vous allez demander à la bourse d'envoyer tous vos
Moneroj de votre compte vers l'adresse de votre portefeuille. Après
cela, vous avez déjà le contrôle total de votre
fonds, c'est tout.
</font>
</p>
</div>
</li>
</ul>
</div>
</div>
</section>
<!-- End F.A.Q Section -->
</main>
<!-- End #main -->
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="footer-top">
<div class="container">
<div class="row">
<div class="col-lg-6 col-md-6 footer-contact">
<h3>Moneroj.net</h3>
<p>
Développé par<br>
Morphée<br>
<strong>Courriel:</strong> morpheus.anonymous@protonmail.com<br>
<strong>Twitter:</strong> CryptoMorpheus_<br>
</p>
</div>
<div class="col-lg-3 col-md-6 footer-links">
<h4>Liens utiles</h4>
<ul>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:fr' %}">Accueil</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Graphiques</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">Sur</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container d-lg-flex py-4">
<div class="mr-lg-auto text-center text-lg-left">
<div class="copyright a">
<strong>&copy; Copyright <span>Moneroj.net</span></strong>
</div>
</div>
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
<a href="https://twitter.com/CryptoMorpheus_" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="https://github.com/cryptomorpheuss/moneropro" class="github"><i class="bx bxl-github"></i></a>
<a href="mailto:morpheus.anonymous@protonmail.com" class="github"><i class="fas fa-envelope"></i></a>
</div>
</div>
</footer>
<!-- End Footer -->
<!-- Vendor JS Files -->
<script src="{% static 'vendor/jquery/jquery2.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,343 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Fractal Multiple
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Multiple From Previous Top</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_multiple }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Multiple</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This is a very simple chart that displays Monero's two cycles, one above the other, as fractals one from
the other. This shows the past and current returns
as a multiple from the previous cycle top.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'First Cycle',
x: {{ dates1|safe }},
y: {{ cycle1|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'First Cycle',
x: {{ dates1|safe }},
y: {{ cycle1|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Second Cycle',
x: {{ dates2|safe }},
y: {{ cycle2|safe }},
line: {
color: '#1dddcd'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Second Cycle',
x: {{ dates2|safe }},
y: {{ cycle1|safe }},
line: {
color: '#1dddcd'
,width: 3
}
};
var data = [data2, data3];
var data_mobile = [data2_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.80,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Multiple from previous top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: ",.2f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['0', '100']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: ",.2f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['0', '100']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,561 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Golden Ratio Multiplier</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
As proposed by Philip Swift <a
href="https://positivecrypto.medium.com/the-golden-ratio-multiplier-c2567401e12a">here</a>, this
chart uses the same
indicator known as GRM (Golden Ratio Multiplier) to find nice spots where the coin is overbought,
indicating sell signals. The algo automatically calculates (based on a
certain logic) where would be reasonable to sell.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Price on date',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {
color: '#ffb6a0'
,width: 3
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Price on date',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {
color: '#ffb6a0'
,width: 3
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days',
x: {{ dates|safe }},
y: {{ m_350|safe }},
line: {
color: '#ffffff'
,width: 1
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days',
x: {{ dates|safe }},
y: {{ m_350|safe }},
line: {
color: '#ffffff'
,width: 1
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 0.4',
x: {{ dates|safe }},
y: {{ m_350_0042|safe }},
line: {
color: '#333333'
,width: 1
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 0.4',
x: {{ dates|safe }},
y: {{ m_350_0042|safe }},
line: {
color: '#333333'
,width: 1
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 0.6',
x: {{ dates|safe }},
y: {{ m_350_0060|safe }},
line: {
color: '#404040'
,width: 1
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 0.6',
x: {{ dates|safe }},
y: {{ m_350_0060|safe }},
line: {
color: '#404040'
,width: 1
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 2',
x: {{ dates|safe }},
y: {{ m_350_0200|safe }},
line: {
color: '#888888'
,width: 1
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 2',
x: {{ dates|safe }},
y: {{ m_350_0200|safe }},
line: {
color: '#888888'
,width: 1
}
};
var data6 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 3',
x: {{ dates|safe }},
y: {{ m_350_0300|safe }},
line: {
color: '#777777'
,width: 1
}
};
var data6_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 3',
x: {{ dates|safe }},
y: {{ m_350_0300|safe }},
line: {
color: '#777777'
,width: 1
}
};
var data7 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 5',
x: {{ dates|safe }},
y: {{ m_350_0500|safe }},
line: {
color: '#666666'
,width: 1
}
};
var data7_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 5',
x: {{ dates|safe }},
y: {{ m_350_0500|safe }},
line: {
color: '#666666'
,width: 1
}
};
var data8 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 8',
x: {{ dates|safe }},
y: {{ m_350_0800|safe }},
line: {
color: '#555555'
,width: 1
}
};
var data8_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 8',
x: {{ dates|safe }},
y: {{ m_350_0800|safe }},
line: {
color: '#555555'
,width: 1
}
};
var data9 = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 13',
x: {{ dates|safe }},
y: {{ m_350_1300|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data9_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 350 days x 13',
x: {{ dates|safe }},
y: {{ m_350_1300|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data11 = {
type: "scatter",
mode: "lines",
name: 'Median 111 days',
x: {{ dates|safe }},
y: {{ m_111|safe }},
line: {
color: '#1dddcd'
,width: 2
}
};
var data11_mobile = {
type: "scatter",
mode: "lines",
name: 'Median 111 days',
x: {{ dates|safe }},
y: {{ m_111|safe }},
line: {
color: '#1dddcd'
,width: 2
}
};
var data12 = {
type: "scatter",
mode: "markers",
name: 'Sell Signal',
x: {{ dates|safe }},
y: {{ price_cross|safe }},
line: {color: '#7f421d'},
marker: {
color: '#ff0000',
colorbar: {
title: {
text: 'Sell Signal',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 7,
cmax: 100,
cmin: 0
}
};
var data12_mobile = {
type: "scatter",
mode: "markers",
name: 'Sell signal',
x: {{ dates|safe }},
y: {{ price_cross|safe }},
line: {color: '#7f421d'},
marker: {
color: '#ff0000',
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data = [data2, data5, data6, data7, data8, data9, data11, data1, data12];
var data_mobile = [data2_mobile, data5_mobile, data6_mobile, data7_mobile, data8_mobile, data9_mobile, data11_mobile, data1_mobile, data12_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-16', '2023-04-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-16', '2023-04-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,385 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Price in Dollars Per Hashrate</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Price Per Hashrate</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_hashrate }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily price divided by total Hashrate/s Monero has. Higher prices on relative
low hashrate means Monero is overbought and a top is
getting nearer. On the other hand, if Monero has low average price and high hashrate, it signals a
possible bottom, since many people are mining expecting future
higher prices.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Buy',
x: {{ dates|safe }},
y: {{ buy|safe }},
line: {
color: '#00ff00'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Buy',
x: {{ dates|safe }},
y: {{ buy|safe }},
line: {
color: '#00ff00'
,width: 1
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Sell',
x: {{ dates|safe }},
y: {{ sell|safe }},
line: {
color: '#ff0000'
,width: 1
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Sell',
x: {{ dates|safe }},
y: {{ sell|safe }},
line: {
color: '#ff0000'
,width: 1
}
};
var data3 = {
type: "scatter",
mode: "markers",
name: 'Dollars / Hashs/s',
x: {{ dates|safe }},
y: {{ hashrate|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data3_mobile = {
type: "scatter",
mode: "markers",
name: 'Dollars / Hashs/s',
x: {{ dates|safe }},
y: {{ hashrate|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data1 , data2, data3];
var data_mobile = [data1_mobile, data2_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 1,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 1,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price in Dollars Per H/s',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.8f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-04-10', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.8f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-04-10', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,300 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Monero's Hashrate</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-12 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Hashrate (Hashs/s)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_hashrate }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total Hashrate/s Monero has on average. Higher hashrates mean more people are
mining it on profit and/or confident prices will go up in the near future.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Hashs/s',
x: {{ dates|safe }},
y: {{ hashrate|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Hashs/s',
x: {{ dates|safe }},
y: {{ hashrate|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data3];
var data_mobile = [data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.8,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'H/s',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: " ",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,410 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Price in Dollars Versus Hashrate</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Hashrate</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_hashrate }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Price in Dollars</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_priceusd }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Price in Sats</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_pricebtc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily price and average hashrate (hashs per second).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Hashs/s',
x: {{ dates|safe }},
y: {{ hashrate|safe }},
yaxis: "y2",
line: {
color: '#dd1d1d'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Hashs/s',
x: {{ dates|safe }},
y: {{ hashrate|safe }},
yaxis: "y2",
line: {
color: '#dd1d1d'
,width: 1
}
};
var data3 = {
type: "scatter",
mode: "markers",
name: 'Price in Dollars',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data3_mobile = {
type: "scatter",
mode: "markers",
name: 'Price in Dollars',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data1 , data3];
var data_mobile = [data1_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 0
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
yaxis2: {
type: "log",
showgrid: false,
title: {
text: 'H/s',
font: {
family: 'Nunito, monospace',
size: 14,
color: 'white'
}
},
tickformat :"2s"
,nticks: 4
,tickfont: {
color: "white"
}
,gridcolor: "#333333"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-04-10', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
yaxis2: {
type: "log",
showgrid: false,
tickformat :"2s"
,nticks: 4
,tickfont: {
color: "white"
}
,gridcolor: "#333333"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-04-10', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,6 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
{{ message }}
{% endblock %}

View file

@ -0,0 +1,486 @@
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Moneroj.net</title>
<meta content="" name="description">
<meta content="" name="keywords">
<link href="{% static 'css/style.css' %}" rel="stylesheet">
<link href="{% static 'img/favicon.png' %}" rel="icon">
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
div.a {
word-break: break-all;
}
.color-orange {
color: #ff4d21;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand" href="{% url 'monerojnet:index' %}"><i class="fab fa-monero"></i> Monero<text class="color-orange">j</text></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Charts</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:articles' %}">Articles</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:about' %}">About</a>
</li>
<li class="nav-item dropdown" >
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Languages
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="nav-link" href="{% url 'monerojnet:index' %}">English</a>
<a class="nav-link" href="{% url 'monerojnet:fr' %}">French</a>
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Portuguese</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
<!-- ======= Hero Section ======= -->
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
<div class="container">
<h1>Did you know all your data is exposed when you use Bitcoin?</h1>
<h2>Monero is what people think they are buying when they invest in Bitcoin.</h2>
</div>
</section>
<!-- End Hero -->
<main id="main">
<!-- ======= Why Us Section ======= -->
<section id="why-us" class="why-us">
<div class="container">
<div class="row">
<div class="col-xl-4 col-lg-5">
<div class="content">
<h3>Monero protects your privacy, Bitcoin doesn't.</h3>
<p>
Most people think Bitcoin is "anonymous". They couldn't be further from the truth. Bitcoin is a transparent ledger, and all the data from the transactions are
forever publically visible on the internet, such as the amount, sender and receiver addresses, IPs, history, and so on. Bitcoin is actually a privacy nightmare. That's why
cypherpunks invented Monero!
</p>
<div class="text-center">
<a href="https://www.fintechweekly.com/magazine/articles/an-untraceable-currency-bitcoin-privacy-concerns" class="more-btn" target="_blank">Learn More About Bitcoin's Problems Here<i class="bx bx-chevron-right"></i></a>
</div>
</div>
</div>
<div class="col-xl-8 col-lg-7 d-flex">
<div class="icon-boxes d-flex flex-column justify-content-center">
<div class="row">
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="far fa-eye-slash"></i>
<h4>Monero is Anonymous</h4>
<p>No corporation, government or third party can see the content of the transactions. No one but the sender and the receiver can see how much was sent.
No one can see your balance. Even your IP is hidden by default.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="bx bx-cube-alt"></i>
<h4>Monero protects your data and your funds</h4>
<p>Monero is an open-source, independently audited software that ensures the highest security standard. Development is funded by Community Crowdfunding System
to protec against malicious actors. Your coins are yours, and no one can take them.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-shield-alt"></i>
<h4>Monero gives back your freedom</h4>
<p>Privacy-by-default prevents mass surveilance and censorship, ensuring personal freedom for its users. Monero also has optional transparency as a
feature, helping organizations prove their balances, if needed.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-8 col-lg-7 d-flex">
<div class="icon-boxes d-flex flex-column justify-content-center">
<div class="row">
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-percent"></i>
<h4>Monero has low inflation</h4>
<p>The current annual inflation is only {{ now_inflation }} and is constantly decreasing until "tail" emission kicks in around 2022. There was no premine
or ICOs and all coins have been mined fairly since 2014.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-coins"></i>
<h4>Monero is scarce</h4>
<p>There are less Monero in circulation than Bitcoin, and this will remain a fact until 2040. By then, it's predicted that Monero will take over the
market of offshore accounts, which is currently at least 16.000 times bigger than its whole capitalization.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-rocket"></i>
<h4>Extremely fast and cheap to use</h4>
<p>Transactions instantaneously show up in your wallet, and it takes only a few minutes until funds are unlocked and can be spent again.
Most transactions cost less than a cent to transmit.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-5"><br>
<div class="content">
<h3>People pretend Bitcoin solves all problems of mankind. That's a terrible lie.</h3>
<p>
Bitcoin is a good project that will make governments compete against private hard money, but we just can't pretend it will solve privacy issues. While Bitcoin
will be good for institutions that need to be audited (since auditing is easier because of transparency), most people will prefer to
use anonymous money to do business, since you don't want to expose all your data to everyone you deal with.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- End Why Us Section -->
<!-- ======= About Section ======= -->
<section id="about" class="about section-bg">
<div class="container">
<div class="row">
<div class="col-xl-5 col-lg-6 video-box d-flex justify-content-center align-items-stretch">
<a href="https://www.youtube.com/watch?v=8quGD9W7B2I" class="venobox play-btn mb-4" data-vbtype="video" data-autoplay="true"></a>
</div>
<div class="col-xl-7 col-lg-6 icon-boxes d-flex flex-column align-items-stretch justify-content-center py-5 px-lg-5">
<h4>Watch this video about Monero</h4>
<h3>Monero is unstoppable money for unstoppable people</h3>
<p>Monero is a project from the cypherpunk community, completely decentralized, without any central authority behind it. It is impossible to censor it,
just like Bitcoin. The difference is that people who use Bitcoin can still be censored, while those who use Monero can't, since no one is able to know who is using it.
</p>
<div class="icon-box">
<div class="icon"><i class="fa fa-balance-scale"></i></div>
<h4 class="title"><a href="">Afraid the government will ban it? Think twice</a></h4>
<p class="description">Since Monero is anonymous, it actually serves as an off-shore account without the hassle to open an account in a bank. Government officials won't have
success in banning it, first because it is impossible to shutdown a decentralized network, and second because they also would be benefited from using it to hide funds.
</p>
</div>
<div class="icon-box">
<div class="icon"><i class="fa fa-thermometer"></i></div>
<h4 class="title"><a href="">Banning Monero would make it even more expensive</a></h4>
<p class="description">Monero is scarce money tweaked with full privacy. There is huge demand for an asset like that, just like physical gold. Because there is utility
in it, demand won't disapear with a ban. In fact, it would only create more scarcity, making the price rise. Monero is anti-fragile. Think about it: Monero protects
your wealth against inflation and protects your privacy. If the governments ban citizens from protecting their wealth against inflation, and
from having privacy, do you think it would become cheaper to get those things? Not at all. It would be expensive as hell.
</p>
</div>
</div>
</div>
<br><br><br>
<div class="row">
<div class="col-xl-7 col-lg-6 icon-boxes d-flex flex-column align-items-stretch justify-content-center py-5 px-lg-5">
<h4>Learn. Adapt. Evolve.</h4>
<h3>Monero might be just what your investment portfolio needs</h3>
<p>Monero is a cryptocurrency like no other. It has low correlation to Bitcoin, which makes it a good addition for your investments, since
it will help diversify and might increase your future return. Remember: Monero is an infant of 2B dollars that will eventually swallow 32T off-shore accounts.
If money became 100% digital, how come people still think you will have to physically open an account in another country to hide money?
</p>
<div class="icon-box">
<div class="icon"><i class="fas fa-chess-king"></i></div>
<h4 class="title"><a href="https://markets.businessinsider.com/currencies/news/why-the-dark-nets-most-active-market-ditched-bitcoin-for-monero-9698092?op=1" target="_blank">It has dethroned Bitcoin where privacy is a must</a></h4>
<p class="description">Although the vast majority of illegal activities are done using the dollar, Bitcoin has also been used for that purpose in the past. Because
Bitcoin has a transparent blockchain, these transactions can be retroactively identified and marked as "tainted". Since without expensive software you can't tell the
difference, many innocents became accused of wrongdoing. Monero is unquestionably the most advanced money available, and its full privacy protects innocents from
false accusations.
</p>
</div>
<div class="icon-box">
<div class="icon"><i class="fab fa-monero"></i></div>
<h4 class="title"><a href="https://analyticsindiamag.com/monero-cryptocurrency-hackers/" target="_blank">Hackers prefer Monero over Bitcoin</a></h4>
<p class="description">Monero is the tip of the spear in privacy. Its cutting edge technology made it the optimal choice for most hackers. There is an economics law that states
people prefer to get rid of bad money and hold the best money. That's what we are witnessing, Bitcoin is being abandoned in favour of Monero,
the only true privacy option.
</p>
</div>
</div>
<div class="col-xl-5 col-lg-6 video-box2 d-flex justify-content-center align-items-stretch">
<a href="https://www.youtube.com/watch?v=REC5V7d3pqM" class="venobox play-btn mb-4" data-vbtype="video" data-autoplay="true"></a>
</div>
</div>
</div>
</section>
<!-- End About Section -->
<!-- ======= Services Section ======= -->
<section id="services" class="services">
<div class="container">
<div class="section-title">
<h2>How to invest in Monero?</h2>
<p>Interested? Just open an account in a trusted exchange, send a wire transfer, buy and withdraw it to your wallet. Remember to always hold your own keys, otherwise
your coins can be stolen from the exchange. If you care about privacy, we really recommend using a decentralized exchange, or non-KYC (know-your-customer) exchange, but only advanced users might be able to do it.
For more information go to <a href="https://localmonero.co/?language=en" target="_blank">Localmonero.co</a> or even try <a href="https://bisq.network/" target="_blank">Bisq.</a></p>
</div>
<div class="row">
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-check"></i></div>
<h4 class="title"><a href="https://www.kraken.com/en-us/learn/buy-monero-xmr" target="_blank">Open an Exchange account</a></h4>
<p class="description">For US users, buy on <a href="https://www.kraken.com/en-us/learn/buy-monero-xmr">Kraken.com</a>, and other countries on <a href="https://www.binance.com/en">Binance.com</a>, or a non-KYC exchange*. Send the exchange a wire transfer and convert your funds into Monero.</p>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-wallet"></i></div>
<h4 class="title"><a href="https://www.getmonero.org/downloads/" target="_blank">Install or buy a wallet</a></h4>
<p class="description">Use <a href="https://www.getmonero.org/downloads/">the official software wallet</a> on PC, <a href="https://cakewallet.com/">Cake wallet</a> or <a href="https://www.monerujo.io/">Monerujo</a> on your cellphone (or any other open-source wallet).
You can also buy a <a href="https://www.ledger.com/">hardware wallet</a>.</p>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-sign-out-alt"></i></div>
<h4 class="title"><a href="https://www.getmonero.org/resources/user-guides/securely_purchase.html" target="_blank">Withdraw to your wallet</a></h4>
<p class="description">Access your account on the exchange and ask them to send your Monero to your wallet address. Never leave your coins on the exchange! Official <a href="https://www.getmonero.org/resources/user-guides/securely_purchase.html">Guide.</a></p>
</div>
</div>
</div>
</div>
</section>
<!-- End Services Section -->
<!-- ======= F.A.Q Section ======= -->
<section id="faq" class="faq section-bg">
<div class="container">
<div class="section-title">
<h2>F.A.Q.</h2>
<p>Still in doubt about how to buy and store it? Read the basics here.</p>
</div>
<div class="faq-list">
<ul>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" class="collapse" href="#faq-list-1">What exactly is Monero?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-1" class="collapse show" data-parent=".faq-list">
<p>
Monero is a cryptocurrency, just like Bitcoin. Monero is an open-source software project that runs on its own blockchain and it serves as a currency, just like the dollar.
Many people leave their computers "mining" it, which means they lend their PC's processing power in order to validate all transactions on the network.
By doing this, all this processing power is used to guarantee fair emission of new coins (which causes the decreasing annual inflation of {{ now_inflation }}) and to protect your money
from hackers. Monero has a decreasing inflation that will eventually tend to zero, and because low inflation leads to scarcity, it works as a store of value, just like Gold or Bitcoin.
Differently from Bitcoin, though, Monero has full privacy, which means it hides your balance and your transactions from being visible on the network for others.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-2" class="collapsed">How does Monero hide my money? How does it gives me privacy?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-2" class="collapse" data-parent=".faq-list">
<p>
Monero has cutting edge privacy tech, such as RingCTs, Stealth Addresses, Bulletproofs and Dandelion++. Ring Confidential Transactions (RingCTs) are used to obfuscate the sender of a transaction and the amount,
while one-time stealth addresses are used to hide the address of the recipient using a method known as DKSAP. Bulletproofs is a protocol that improved RingCTs, reducing
the size of the transactions, resulting in faster verification times and lower fees. Dandelion++ on the other hand was developed to obscure the IP address of the sender device.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-3" class="collapsed">Why do people say Monero is unstoppable?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-3" class="collapse" data-parent=".faq-list">
<p>
Monero developers have already tested the concept of atomic swaps between it and Bitcoin, which will happen directly from Monero's wallet and will be processed
through Bitcoin's blockchain. Users in the near future will be able to swap easily one asset to the other, without having to rely on central authorities, such as
exchanges, making it the best possible privacy solution for Bitcoin. In other words, to ban Monero, governments would first have to censor the whole Bitcoin
blockchain, which won't happen, because Bitcoin is already rooted in society. So nobody will be able to prevent people from having privacy.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-4" class="collapsed">How does its inflation work? How are new coins created?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-4" class="collapse" data-parent=".faq-list">
<p>
There was never a premine on Monero. This means no one controls vast amounts of coins, since all coins ever generated have always been distributed for the miners. The miners
receive coins based on how much work they put into validating and defending the network, so it is a form of financial revenue they get for their service. Since at the
beginning (2014) there were no coins in circulation, inflation was high. Now that there are {{ now_units}} units in circulation, the annual inflation is just {{ now_inflation }}.
The payout per block decreases over time, and so will the the annual inflation rate slowly decrease towards zero. The demand for fungible, digital, privacy-oriented hard money will likely skyrocket
in the next few years and outpace its inflation, so investors expect a considerable rise in prices.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-5" class="collapsed">Which is better, Bitcoin or Monero? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-5" class="collapse" data-parent=".faq-list">
<p>
Bitcoin's price is way higher than Monero's since the former was introduced in 2009, while the latter only in 2014. When Bitcoin was created, the technology
behind Monero didn't even exist. Bitcoin's methods were themselves a huge leap in tech. Now Bitcoin has a legion of investors, is an established cryptocurrency,
and have a 1T USD marketcap. However Bitcoin has many flaws, such as transaction cost and time, and mostly lack of privacy. Bitcoin has no privacy at all.
All transactions and balances are stored in a chain of blocks, and are totally visible for all internet users. In this sense, Bitcoin can't work as money,
because one of the main atributes of a good money is fungibility, which is ability for all units being indistinguishble from the others. Since all Bitcoins' transactions
are visible, you can differentiate one from the other. For example, you can choose to accept transactions from one address, but choose to forbid people from accepting
another. This will inevitably allow governments to censor certain addresses based on what their owners are doing. Therefore, the lack of fungibility isn't a desired
feature for good money. In this sense, Monero is much better money than Bitcoin. Monero is faster, cheaper to transact and completely fungible. You can't see differences
between different Moneroj (Moneroj is plural from Monero), so you also can't censor people. With Monero people are free, while with Bitcoin people
are at the mercy of their governments leaders.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-6" class="collapsed">Is Monero a good investment? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-6" class="collapse" data-parent=".faq-list">
<p>
While nobody can predict exactly what will happen in the future, Monero's community expect that there will be huge demand for privacy in the next few years. With
our society relying more on digital processes, it is plausible that such type of tech will eventually find its niche in our daily lives. Monero is a bet
on the digitalization of money, a bet in the need for privacy and also a bet that governments will lose the monopoly over money. In term of returns, while BTC took 900
days to achieve 37x in its first bull market cycle, Monero took 1279 days to give 95x return. However you must not take this as financial advice, and you should
invest at your own risk.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-7" class="collapsed">What's the first step if I want to invest in Monero? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-7" class="collapse" data-parent=".faq-list">
<p>
Simply put, open an account on a trusted exchange, such as Kraken (US) or Binance (world). You just need to write your data in their form. After that, complete
the whole registration process, which may include KYC procedures, like sending them a picture of your document and face. Also remember to enable two-factor
authentication, which prevents hackers from stealing your funds and also allow withdrawals. Then send a wire transfer to the exchange and in a few hours they will
update your balance. When this happens, buy your Monero and proceed for withdrawals.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-8" class="collapsed">If I already have an account, what next? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-8" class="collapse" data-parent=".faq-list">
<p>
Now download a software wallet for Monero on your phone (such as Cake Wallet or Monerujo), or for your computer (the official wallet). You can also buy
a hardware wallet such as the Ledger. When you complete this step, you can login on your exchange account and ask for a withdrawal of funds. This means
you are going to ask the exchange to send all your Moneroj from your account into the address of your wallet. After that, you already have full control of your
funds.
</p>
</div>
</li>
</ul>
</div>
</div>
</section>
<!-- End F.A.Q Section -->
</main>
<!-- End #main -->
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="footer-top">
<div class="container">
<div class="row">
<div class="col-lg-6 col-md-6 footer-contact">
<h3>Moneroj.net</h3>
<p>
Developed by <br>
Morpheus<br>
<strong>Email:</strong> morpheus.anonymous@protonmail.com<br>
<strong>Twitter:</strong> CryptoMorpheus_<br>
<strong>Github:</strong> cryptomorpheuss<br>
</p>
</div>
<div class="col-lg-3 col-md-6 footer-links">
<h4>Useful Links</h4>
<ul>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:index' %}">Home</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Charts</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">About</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container d-lg-flex py-4">
<div class="mr-lg-auto text-center text-lg-left">
<div class="copyright a">
<strong>&copy; Copyright <span>Moneroj.net</span></strong>
</div>
</div>
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
<a href="https://twitter.com/CryptoMorpheus_" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="https://github.com/cryptomorpheuss/moneropro" class="github"><i class="bx bxl-github"></i></a>
<a href="mailto:morpheus.anonymous@protonmail.com" class="github"><i class="fas fa-envelope"></i></a>
</div>
</div>
</footer>
<!-- End Footer -->
<!-- Vendor JS Files -->
<script src="{% static 'vendor/jquery/jquery2.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,395 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Annualized Inflation for both Monero and Bitcoin</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Monero Annualized Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Bitcoin Annualized Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows a comparison between the anual inflation rate of Monero and Bitcoin. The lower the
inflation, the better, since lower inflation rates
protect better the purchasing power of its holders. Monero is by far the best privacy coin you hold,
since its inflation is way lower than its competitors. Another thing
evident from this chart is that even Bitcoin has a higher inflation than Monero. Cool!<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Inflation',
x: {{ dates|safe }},
y: {{ inflationbtc|safe }},
line: {
color: '#ffd311'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Inflation',
x: {{ dates|safe }},
y: {{ inflationbtc|safe }},
line: {
color: '#ffd311'
,width: 3
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Inflation',
x: {{ dates|safe }},
y: {{ inflationxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Inflation',
x: {{ dates|safe }},
y: {{ inflationxmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Future Inflation',
x: {{ dates|safe }},
y: {{ finflationbtc|safe }},
line: {
color: '#aab311'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Future Inflation',
x: {{ dates|safe }},
y: {{ finflationbtc|safe }},
line: {
color: '#aab311'
,width: 1
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Monero Future Inflation',
x: {{ dates|safe }},
y: {{ finflationxmr|safe }},
line: {
color: '#bd0d0d'
,width: 1
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Future Inflation',
x: {{ dates|safe }},
y: {{ finflationxmr|safe }},
line: {
color: '#bd0d0d'
,width: 1
}
};
var data = [data3, data2, data1, data4];
var data_mobile = [data3_mobile, data2_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 1,
xanchor: 'auto',
y: 0.6,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.95,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Inflation (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2009-01-01', '2026-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-01-01', '2026-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,351 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Inflation-Adjusted Fractal
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Multiple (considering inflation)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_multiple }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Multiple</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This is a very simple chart that displays Monero's two cycles, one above the other, as fractals one from
the other. This shows the past and current returns
as a multiple from the previous cycle top, considering the inflation variation since the current cycle
started. Formula is sqrt(inflation/inflationattop)*price.
The X axis is scaled and reffers to the percentage of the cycle that is completed (judging by the
price-action pattern). This adjustment was necessary because
the blue line seems to be doing exactly what the red line did, but since there is so much difference in
the inflation from the last local top to current price (10% to 1%),
the current price is way higher than it was supposed to be. This is because a lower inflation rate means
less sell pressure, and therefore higher prices. If
this logic is true, then, since inflation will fall to 0.8% soon enough, we should expect even higher
prices.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'First Cycle',
x: {{ dates1|safe }},
y: {{ cycle1|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'First Cycle',
x: {{ dates1|safe }},
y: {{ cycle1|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Second Cycle',
x: {{ dates2|safe }},
y: {{ cycle2|safe }},
line: {
color: '#1dddcd'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Second Cycle',
x: {{ dates2|safe }},
y: {{ cycle1|safe }},
line: {
color: '#1dddcd'
,width: 3
}
};
var data = [data2, data3];
var data_mobile = [data2_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.80,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Multiple from previous top',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: ",.2f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['0', '100']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: ",.2f",
showgrid: true,
type: 'number',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['0', '100']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,511 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Return vs. Inflation
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Return on capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Dash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_dash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Grin's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_grin }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Zcash's Return on Capital</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_zcash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the return on capital since inception for each privacy coin, plotted against its own
reverse from inflation (x100). The x axis value means the number of years
it would take to double the supply of the coin based on current inflation. This shows how Monero is a
beast, having higher return at the same time as very low inflation. Both values
are correlated and inversely proportional.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
y: {{ dash|safe }},
x: {{ inflation_dash|safe }},
mode: "markers",
line: {color: '#2f21f7'},
marker: {
color: '#2f21f7',
sizemode: 'area',
size: 4,
cmax: 100,
cmin: 0
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash Return On Capital',
y: {{ dash|safe }},
x: {{ inflation_dash|safe }},
mode: "markers",
line: {color: '#2f21f7'},
marker: {
color: '#2f21f7',
sizemode: 'area',
size: 2,
cmax: 100,
cmin: 0
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
y: {{ grin|safe }},
x: {{ inflation_grin|safe }},
mode: "markers",
line: {color: '#dcdf30'},
marker: {
color: '#dcdf30',
sizemode: 'area',
size: 4,
cmax: 100,
cmin: 0
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Grin Return On Capital',
y: {{ grin|safe }},
x: {{ inflation_grin|safe }},
mode: "markers",
line: {color: '#dcdf30'},
marker: {
color: '#dcdf30',
sizemode: 'area',
size: 2,
cmax: 100,
cmin: 0
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
y: {{ zcash|safe }},
x: {{ inflation_zcash|safe }},
mode: "markers",
line: {color: '#ffb6a0'},
marker: {
color: '#ffb6a0',
sizemode: 'area',
size: 4,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Zcash Return On Capital',
y: {{ zcash|safe }},
x: {{ inflation_zcash|safe }},
mode: "markers",
line: {color: '#ffb6a0'},
marker: {
color: '#ffb6a0',
sizemode: 'area',
size: 2,
cmax: 100,
cmin: 0
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
y: {{ xmr|safe }},
x: {{ inflation_xmr|safe }},
mode: "markers",
line: {color: '#dd1d1d'},
marker: {
color: '#dd1d1d',
sizemode: 'area',
size: 4,
cmax: 100,
cmin: 0
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Return On Capital',
y: {{ xmr|safe }},
x: {{ inflation_xmr|safe }},
mode: "markers",
line: {color: '#dd1d1d'},
marker: {
color: '#dd1d1d',
sizemode: 'area',
size: 2,
cmax: 100,
cmin: 0
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Return On Capital',
y: {{ btc|safe }},
x: {{ inflation_btc|safe }},
mode: "markers",
line: {color: '#ff9d1d'},
marker: {
color: '#ff9d1d',
sizemode: 'area',
size: 4,
cmax: 100,
cmin: 0
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Return On Capital',
y: {{ btc|safe }},
x: {{ inflation_btc|safe }},
mode: "markers",
line: {color: '#ff9d1d'},
marker: {
color: '#ff9d1d',
sizemode: 'area',
size: 2,
cmax: 100,
cmin: 0
}
};
var data = [data3, data2, data1, data4];
var data_mobile = [data3_mobile, data2_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Return on Capital',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
type: "log",
title: {
text: 'Number of years to double the supply',
font: {
family: 'Nunito, monospace',
size: 15,
color: '#dddddd'
}
},
nticks: 10,
showgrid: true,
gridcolor: "#444444",
tickfont: {
color: "#dddddd"
,size: 13
},
},
margin: {
l: 120,
r: 50,
b: 60,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
type: "log",
title: {
text: 'Number of years to double the supply',
font: {
family: 'Nunito, monospace',
size: 10,
color: '#dddddd'
}
},
nticks: 10,
showgrid: true,
gridcolor: "#444444",
tickfont: {
color: "#dddddd"
,size: 13
},
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,6 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
{{ message }}
{% endblock %}

View file

@ -0,0 +1,422 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Marketcap (USD)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Marketcap</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Dash's Marketcap</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_dash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Grin's Marketcap</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_grin }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Zcash's Marketcap</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_zcash }}</div>
</div>
<div class="col-auto">
<i class="fa fa-bomb fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the comparison between Monero's most important competitors. It shows their total marketcap value over time.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Dash Marketcap',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash Marketcap',
x: {{ dates|safe }},
y: {{ dash|safe }},
line: {
color: '#2f21f7'
,width: 2
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Grin Marketcap',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Grin Marketcap',
x: {{ dates|safe }},
y: {{ grin|safe }},
line: {
color: '#dcdf30'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'Zcash Marketcap',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'Zcash Marketcap',
x: {{ dates|safe }},
y: {{ zcash|safe }},
line: {
color: '#ffb6a0'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Marketcap',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Marketcap',
x: {{ dates|safe }},
y: {{ xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data = [data3, data2, data1, data4];
var data_mobile = [data3_mobile, data2_mobile, data1_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Marketcap (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-04-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-04-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,479 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Merchants accepting cryptocurrency (absolute numbers)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Ethereum</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_eth }}</div>
</div>
<div class="col-auto">
<i class="fab fa-ethereum fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Merchants accepting a coin.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Ethereum',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Ethereum',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'BitcoinCash',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#aaaaaa'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'BitcoinCash',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#aaaaaa'
,width: 2
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Litecoin',
x: {{ dates|safe }},
y: {{ data5|safe }},
line: {
color: '#888888'
,width: 2
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Litecoin',
x: {{ dates|safe }},
y: {{ data5|safe }},
line: {
color: '#888888'
,width: 3
}
};
var data6 = {
type: "scatter",
mode: "lines",
name: 'Ripple',
x: {{ dates|safe }},
y: {{ data6|safe }},
line: {
color: '#666666'
,width: 2
}
};
var data6_mobile = {
type: "scatter",
mode: "lines",
name: 'Ripple',
x: {{ dates|safe }},
y: {{ data6|safe }},
line: {
color: '#666666'
,width: 2
}
};
var data7 = {
type: "scatter",
mode: "lines",
name: 'Dash',
x: {{ dates|safe }},
y: {{ data7|safe }},
line: {
color: '#444444'
,width: 2
}
};
var data7_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash',
x: {{ dates|safe }},
y: {{ data7|safe }},
line: {
color: '#444444'
,width: 2
}
};
var data = [data1 , data3, data4, data5, data6, data7, data2];
var data_mobile = [data1_mobile, data3_mobile, data4_mobile, data5_mobile, data6_mobile, data7_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Merchants',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2020-08-01', '2022-11-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2020-08-01', '2022-11-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,479 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Monthly increase in number of merchants accepting cryptocurrency (absolute numbers)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Increase</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Increase</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Ethereum Increase</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_eth }}</div>
</div>
<div class="col-auto">
<i class="fab fa-ethereum fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Increase in the number of merchants accepting a coin.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Ethereum',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Ethereum',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'BitcoinCash',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#aaaaaa'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'BitcoinCash',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#aaaaaa'
,width: 2
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Litecoin',
x: {{ dates|safe }},
y: {{ data5|safe }},
line: {
color: '#888888'
,width: 2
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Litecoin',
x: {{ dates|safe }},
y: {{ data5|safe }},
line: {
color: '#888888'
,width: 3
}
};
var data6 = {
type: "scatter",
mode: "lines",
name: 'Ripple',
x: {{ dates|safe }},
y: {{ data6|safe }},
line: {
color: '#666666'
,width: 2
}
};
var data6_mobile = {
type: "scatter",
mode: "lines",
name: 'Ripple',
x: {{ dates|safe }},
y: {{ data6|safe }},
line: {
color: '#666666'
,width: 2
}
};
var data7 = {
type: "scatter",
mode: "lines",
name: 'Dash',
x: {{ dates|safe }},
y: {{ data7|safe }},
line: {
color: '#444444'
,width: 2
}
};
var data7_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash',
x: {{ dates|safe }},
y: {{ data7|safe }},
line: {
color: '#444444'
,width: 2
}
};
var data = [data1 , data3, data4, data5, data6, data7, data2];
var data_mobile = [data1_mobile, data3_mobile, data4_mobile, data5_mobile, data6_mobile, data7_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Increase (new merchants per month)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2020-08-01', '2022-11-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2020-08-01', '2022-11-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,479 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Increase in number of merchants accepting cryptocurrency (percentage)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}%</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}%</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Card -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Ethereum</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_eth }}%</div>
</div>
<div class="col-auto">
<i class="fab fa-ethereum fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Increase in percentage of the number of merchants accepting a coin.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin',
x: {{ dates|safe }},
y: {{ data1|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero',
x: {{ dates|safe }},
y: {{ data2|safe }},
line: {
color: '#dd1d1d'
,width: 5
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Ethereum',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Ethereum',
x: {{ dates|safe }},
y: {{ data3|safe }},
line: {
color: '#0044ff'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: 'BitcoinCash',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#aaaaaa'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: 'BitcoinCash',
x: {{ dates|safe }},
y: {{ data4|safe }},
line: {
color: '#aaaaaa'
,width: 2
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Litecoin',
x: {{ dates|safe }},
y: {{ data5|safe }},
line: {
color: '#888888'
,width: 2
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Litecoin',
x: {{ dates|safe }},
y: {{ data5|safe }},
line: {
color: '#888888'
,width: 3
}
};
var data6 = {
type: "scatter",
mode: "lines",
name: 'Ripple',
x: {{ dates|safe }},
y: {{ data6|safe }},
line: {
color: '#666666'
,width: 2
}
};
var data6_mobile = {
type: "scatter",
mode: "lines",
name: 'Ripple',
x: {{ dates|safe }},
y: {{ data6|safe }},
line: {
color: '#666666'
,width: 2
}
};
var data7 = {
type: "scatter",
mode: "lines",
name: 'Dash',
x: {{ dates|safe }},
y: {{ data7|safe }},
line: {
color: '#444444'
,width: 2
}
};
var data7_mobile = {
type: "scatter",
mode: "lines",
name: 'Dash',
x: {{ dates|safe }},
y: {{ data7|safe }},
line: {
color: '#444444'
,width: 2
}
};
var data = [data1 , data3, data4, data5, data6, data7, data2];
var data_mobile = [data1_mobile, data3_mobile, data4_mobile, data5_mobile, data6_mobile, data7_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Increase (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2020-08-01', '2022-11-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y-%m",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2020-08-01', '2022-11-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,396 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Metcalfe's Law (BTC)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Estimate</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_metcalfe }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Top Estimate</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the Monero's supposed fair price, judging by the number of transactions it has each day
on. Higher transaction count means the coin is being increasingly
used, and since Metcalfe's Law proposes that more information being exchanged in a network means the
network itself should be worth more, it also means the coin should
increase in price. This was calculated as "how much Monero should be worth if it was a part of Bitcoin's
network?" The answear is that Monero should be worth as much
as its transactions represent as a percentage of Bitcoin's own transactions, but considering both coins'
supplies. The formula is XMR-Supply*XMR-Tx/(BTC-Tx*BTC-Supply);<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Fair price (XMR-Tx/BTC-Tx)',
x: {{ dates|safe }},
y: {{ metcalfe|safe }},
line: {
color: '#dd1d1d'
,width: 1
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Fair price (XMR-Tx/BTC-Tx)',
x: {{ dates|safe }},
y: {{ metcalfe|safe }},
line: {
color: '#dd1d1d'
,width: 1
}
};
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data3, data4];
var data_mobile = [data3_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (BTC)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.4f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.4f"
,nticks: 5
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,397 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Metcalfe's Law (USD)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Estimate</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_metcalfe }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Top Estimate</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the Monero's supposed fair price, judging by the number of transactions it has each day
on. Higher transaction count means the coin is being increasingly
used, and since Metcalfe's Law proposes that more information being exchanged in a network means the
network itself should be worth more, it also means the coin should
increase in price. This was calculated as "how much Monero should be worth if it was a part of Bitcoin's
network?" The answear is that Monero should be worth as much
as its transactions represent as a percentage of Bitcoin's own transactions, but considering both coins'
supplies. The formula is BTC-PriceUSD*XMR-Supply*XMR-Tx/(BTC-Tx*BTC-Supply);<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Fair price (XMR-Tx/BTC-Tx)',
x: {{ dates|safe }},
y: {{ metcalfe|safe }},
line: {
color: '#dd1d1d'
,width: 1
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Fair price (XMR-Tx/BTC-Tx)',
x: {{ dates|safe }},
y: {{ metcalfe|safe }},
line: {
color: '#dd1d1d'
,width: 1
}
};
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ prices|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data3, data4];
var data_mobile = [data3_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,342 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Daily Miner Fees (Fees excluded new coins, Dollars)
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
XMR Miner Fees (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">${{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
BTC Miner Fees (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">${{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total fees charged by miners daily.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Fees',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Fees',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Fees',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Fees',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Miner Fees (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,342 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Daily Miner Fees (Fees excluded new coins, Native Units)
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
XMR Miner Fees (XMR)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
BTC Miner Fees (BTC)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total fees charged by miners daily.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Fees',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Fees',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Fees',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Fees',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Miner Fees (Native Units)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,341 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Average Daily Miner Revenue (Dollars)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current XMR Miner Revenue (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current BTC Miner Revenue (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily miner revenue (fees plus new coins) for both Bitcoin and Monero.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Revenue',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Revenue',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Revenue',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Revenue',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Daily Miner Revenue (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,343 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Annualized Miner Revenue / Marketcap (Fees plus new coins,
percentage)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
XMR Miner Revenue (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
BTC Miner Revenue (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily miner revenue for both Bitcoin and Monero calculated as percentage of
their marketcaps.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Revenue',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Revenue',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Revenue',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Revenue',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Annualized Miner Revenue (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.4f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2008-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.4f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2008-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,343 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Total Daily Miner Revenue (Fees plus new coins, Native Units)
</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
XMR Miner Revenue (XMR)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
BTC Miner Revenue (BTC)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily miner revenue for both Bitcoin and Monero calculated in terms of the own
coin.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Revenue',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Miner Revenue',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Revenue',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Miner Revenue',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Miner Revenue (Native Units)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-06-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,437 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Price in log scale (USD)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Price (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Price To Date (USD)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Annual Inflation (%)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_inflation }}</div>
</div>
<div class="col-auto">
<i class="fas fa-percentage fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the price of the coin on a log scale. The color of the points indicate their position
on the Bitcoin pair, being red as overbought and blue as cheap.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Resistance',
x: {{ dates|safe }},
y: {{ average2|safe }},
line: {
color: '#662222'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Resistance',
x: {{ dates|safe }},
y: {{ average2|safe }},
line: {
color: '#662222'
,width: 3
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Buy line',
x: {{ dates|safe }},
y: {{ average1|safe }},
line: {
color: '#225522'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Buy line',
x: {{ dates|safe }},
y: {{ average1|safe }},
line: {
color: '#225522'
,width: 3
}
};
var data = [data3, data4, data2];
var data_mobile = [data4_mobile, data2_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.80,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'USD',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-12-20', '2026-01-10']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,317 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Transaction Percentage (XMR's tx / BTC's tx)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Percentage</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_transactions }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Percentage</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total transactions Monero has daily as a percentage of Bitcoin's transactions,
which we might call "Monero's Transaction Dominance" over Bitcoin.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Fractal of past price',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Fractal of past price',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data3];
var data_mobile = [data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.8,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Percentage (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,470 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Power Law</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Daily Close</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Annual Inflation</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_inflation }}</div>
</div>
<div class="col-auto">
<i class="fas fa-percentage fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the current support, resistance and best fit for buying using Bitcoin's Power Law
Model, ported to Monero. To see more about this, check Christopher's <a
href="https://medium.com/quantodian-publications/bitcoins-natural-long-term-power-law-corridor-of-growth-649d0e9b3c94"
target="_blank">article.</a><br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Support',
x: {{ counter|safe }},
y: {{ line1|safe }},
line: {
color: '#225522'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Support',
x: {{ counter|safe }},
y: {{ line1|safe }},
line: {
color: '#225522'
,width: 1
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Buy Zone',
x: {{ counter|safe }},
y: {{ line2|safe }},
line: {
color: '#224422',
width: 1,
},
fill: 'tonexty'
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Buy Zone',
x: {{ counter|safe }},
y: {{ line2|safe }},
line: {
color: '#224422'
,width: 1
},
fill: 'tonexty'
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Resistance',
x: {{ counter|safe }},
y: {{ line3|safe }},
line: {
color: '#552222'
,width: 1
},
fill: 'tonexty'
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Resistance',
x: {{ counter|safe }},
y: {{ line3|safe }},
line: {
color: '#552222'
,width: 1
},
fill: 'tonexty'
};
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ counter|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ counter|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data1, data2, data3, data4];
var data_mobile = [data1_mobile, data2_mobile, data3_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
type: "log",
title: {
text: 'Year',
font: {
family: 'Nunito, monospace',
size: 14,
color: '#7f7f7f'
}
},
nticks: 20,
tickvals: {{ dates|safe }},
ticktext: {{ years|safe }},
showgrid: true,
gridcolor: "#444444",
tickfont: {
color: "#dddddd"
,size: 13
},
},
margin: {
l: 120,
r: 60,
b: 60,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-12-20', '2026-01-10']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,387 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Price (USD)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Daily Close</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Annual Inflation</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_inflation }}</div>
</div>
<div class="col-auto">
<i class="fas fa-percentage fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the price of the coin on a linear scale. The color of the points indicate their
position on the Bitcoin pair, being red as overbought and blue as cheap.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data4];
var data_mobile = [data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.80,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-12-20', '2026-01-10']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,387 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Price (USD)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Daily Close</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-3 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Annual Inflation</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_inflation }}</div>
</div>
<div class="col-auto">
<i class="fas fa-percentage fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the price of the coin on a log scale. The color of the points indicate their position
on the Bitcoin pair, being red as overbought and blue as cheap.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data4];
var data_mobile = [data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.80,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2009-12-20', '2026-01-10']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,368 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Price (BTC)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bottom</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ bottom }}</div>
</div>
<div class="col-auto">
<i class="fa fa-angle-double-down fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Top</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the price of the coin on the BTC pair on a linear scale. The color of the points
indicate their position on the Bitcoin pair, being red as overbought and blue as cheap.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data4];
var data_mobile = [data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.5,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.5,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Price (BTC)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.4f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.4f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,488 @@
<!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Moneroj.net</title>
<meta content="" name="description">
<meta content="" name="keywords">
<link href="{% static 'css/style.css' %}" rel="stylesheet">
<link href="{% static 'img/favicon.png' %}" rel="icon">
<link href="{% static 'img/apple-touch-icon.png' %}" rel="apple-touch-icon">
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/boxicons/css/boxicons.min.css' %}" rel="stylesheet">
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<style>
div.a {
word-break: break-all;
}
.color-orange {
color: #ff6b3b;
}
</style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light">
<div class="container">
<a class="navbar-brand" href="{% url 'monerojnet:index' %}"><i class="fab fa-monero"></i> Monero<text class="color-orange">j</text></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inicial <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:sfmodel' %}">Gráficos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:artigos' %}">Artigos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'monerojnet:about' %}">Sobre</a>
</li>
<li class="nav-item dropdown" >
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Idiomas
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="nav-link" href="{% url 'monerojnet:index' %}">Inglês</a>
<a class="nav-link" href="{% url 'monerojnet:fr' %}">Francês</a>
<a class="nav-link" href="{% url 'monerojnet:pt' %}">Português</a>
</div>
</li>
</ul>
</div>
</div>
</nav>
<!-- ======= Hero Section ======= -->
<section id="hero" class="d-flex flex-column justify-content-center align-items-center">
<div class="container">
<h1>Você sabia que todos os seus dados são expostos quando você usa Bitcoin?</h1>
<h2>Monero é o que as pessoas pensam que estão comprando quando investem em Bitcoins.</h2>
</div>
</section>
<!-- End Hero -->
<main id="main">
<!-- ======= Why Us Section ======= -->
<section id="why-us" class="why-us">
<div class="container">
<div class="row">
<div class="col-xl-4 col-lg-5">
<div class="content">
<h3>O Monero protege sua privacidade, o Bitcoin não.</h3>
<p>
A maioria das pessoas pensa que o Bitcoin é "anônimo". Elas não poderiam estar mais longe da verdade. O Bitcoin é um livro contábil transparente e
todos os dados das transações ficam visíveis publicamente para sempre na Internet, como a quantidade, endereços do remetente e do destinatário, IPs,
histórico e assim por diante. Bitcoin é na verdade um pesadelo de privacidade. É por isso que inventaram o Monero!
</p>
<div class="text-center">
<a href="https://www.fintechweekly.com/magazine/articles/an-untraceable-currency-bitcoin-privacy-concerns" class="more-btn" target="_blank">
Saiba mais sobre os problemas do Bitcoin aqui<i class="bx bx-chevron-right"></i></a>
</div>
</div>
</div>
<div class="col-xl-8 col-lg-7 d-flex">
<div class="icon-boxes d-flex flex-column justify-content-center">
<div class="row">
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="far fa-eye-slash"></i>
<h4>Monero é anônimo</h4>
<p>Nenhuma empresa, governo ou terceiro pode ver o conteúdo das transações. Ninguém, exceto o remetente e o destinatário, podem ver o quanto foi enviado.
Ninguém pode ver seu saldo. Até o seu IP fica oculto por padrão.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="bx bx-cube-alt"></i>
<h4>Monero protege seus dados e seus fundos</h4>
<p>Monero é um software de código aberto, auditado de forma independente que garante o mais alto padrão de segurança.
O desenvolvimento é financiado por Financiamento Comunitário, protegendo contra pessoas mal-intencionadas. Suas moedas são suas e ninguém pode pegá-las.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-shield-alt"></i>
<h4>Monero devolve sua liberdade</h4>
<p>A privacidade por padrão evita vigilância e censura em massa, garantindo a liberdade pessoal de seus usuários.
Monero também tem transparência opcional como um recurso, ajudando as organizações a comprovar seus saldos, se necessário.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-8 col-lg-7 d-flex">
<div class="icon-boxes d-flex flex-column justify-content-center">
<div class="row">
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-percent"></i>
<h4>Monero tem inflação baixa</h4>
<p>A inflação anual atual é de apenas {{ now_inflation }} e está diminuindo constantemente até que a emissão "residual" comece por volta de 2022.
Não houve moedas mineradas de maneira desleal em seu início, sendo todas mineradas de forma justa desde 2014.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-coins"></i>
<h4>Monero é escasso</h4>
<p>Há menos Monero em circulação do que Bitcoin, e isso permanecerá um fato até 2040.
Até essa data, prevê-se que Monero assumirá o mercado de contas offshore, que atualmente é pelo menos 16.000 vezes maior do que toda a sua capitalização.
</p>
</div>
</div>
<div class="col-xl-4 d-flex align-items-stretch">
<div class="icon-box mt-4 mt-xl-0">
<i class="fas fa-rocket"></i>
<h4>Extremamente rápido e barato de usar</h4>
<p>As transações aparecem instantaneamente em sua carteira e levam apenas alguns minutos até que os fundos sejam desbloqueados e possam ser gastos novamente.
A transmissão da maioria das transações custa menos de um centavo.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-5"><br>
<div class="content">
<h3>As pessoas fingem que o Bitcoin resolve todos nossos problemas. Essa é uma mentira terrível.</h3>
<p>
Bitcoin é um bom projeto que fará os governos competirem com o dinheiro privado, mas não podemos fingir que resolverá os problemas de privacidade.
Embora o Bitcoin seja bom para instituições que precisam ser auditadas (já que a auditoria é mais fácil por causa da transparência), a maioria das pessoas
prefere usar dinheiro anônimo para fazer negócios, já que você não quer expor todos os seus dados a todos com quem você lida.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- End Why Us Section -->
<!-- ======= About Section ======= -->
<section id="about" class="about section-bg">
<div class="container">
<div class="row">
<div class="col-xl-5 col-lg-6 video-box d-flex justify-content-center align-items-stretch">
<a href="https://www.youtube.com/watch?v=8quGD9W7B2I" class="venobox play-btn mb-4" data-vbtype="video" data-autoplay="true"></a>
</div>
<div class="col-xl-7 col-lg-6 icon-boxes d-flex flex-column align-items-stretch justify-content-center py-5 px-lg-5">
<h4>Veja este vídeo sobre Monero</h4>
<h3>Monero é dinheiro imparável para empreendedores imparáveis</h3>
<p>Monero é um projeto da comunidade cypherpunk, totalmente descentralizado, sem nenhuma autoridade central por trás dele.
É impossível censurar suas transações, assim como o Bitcoin. A diferença é que quem usa Bitcoin ainda pode ser censurado, enquanto quem usa Monero não,
já que ninguém sabe quem está usando.
</p>
<div class="icon-box">
<div class="icon"><i class="fa fa-balance-scale"></i></div>
<h4 class="title"><a href="">Tem medo de que o governo o proíba? Pense novamente.</a></h4>
<p class="description">Como o Monero é anônimo, ele na verdade serve como uma conta off-shore sem o incômodo de abrir uma conta em um banco.
Funcionários do governo não terão sucesso em bani-lo, primeiro porque é impossível encerrar uma rede descentralizada e, segundo, porque eles também seriam
beneficiados por usá-la para ocultar fundos.
</p>
</div>
<div class="icon-box">
<div class="icon"><i class="fa fa-thermometer"></i></div>
<h4 class="title"><a href="">Banir Monero tornaria ele ainda mais caro</a></h4>
<p class="description">Monero é dinheiro escasso aprimorado com total privacidade. Há uma grande demanda por um ativo como esse,
assim pelo ouro físico. Como há utilidade nesse ativo, a demanda não desaparecerá com uma proibição. Na verdade, isso apenas criaria mais escassez,
fazendo o preço subir. Monero é anti-frágil. Pense nisso: Monero protege sua riqueza contra a inflação e protege sua privacidade. Se os governos proibirem
os cidadãos de proteger sua riqueza contra a inflação e de ter privacidade, você acha que ficaria mais barato conseguir essas coisas? De jeito nenhum.
Seria muito caro.
</p>
</div>
</div>
</div>
<br><br><br>
<div class="row">
<div class="col-xl-7 col-lg-6 icon-boxes d-flex flex-column align-items-stretch justify-content-center py-5 px-lg-5">
<h4>Aprender. Adaptar. Evoluir.</h4>
<h3>Monero pode ser exatamente o que sua carteira de investimentos precisa</h3>
<p>Monero é uma criptomoeda como nenhuma outra. Possui baixa correlação com o Bitcoin, o que o torna um bom complemento para seus
investimentos, pois ajudará a diversificar e poderá aumentar seu retorno futuro. Lembre-se: Monero é uma criança de 2 bilhões de dólares que acabará
engolindo contas off-shore de 32 trilhões de dólares. Se o dinheiro se tornar 100% digital, como as pessoas ainda pensam que será necessário abrir fisicamente
uma conta em outro país para esconder dinheiro?
</p>
<div class="icon-box">
<div class="icon"><i class="fas fa-chess-king"></i></div>
<h4 class="title"><a href="https://markets.businessinsider.com/currencies/news/why-the-dark-nets-most-active-market-ditched-bitcoin-for-monero-9698092?op=1" target="_blank">Ele destronou o Bitcoin onde é necessário privacidade</a></h4>
<p class="description">Embora a grande maioria das atividades ilegais seja realizada com o uso do dólar, o Bitcoin também foi usado para esse fim no passado.
Como o Bitcoin tem um blockchain transparente, essas transações podem ser identificadas retroativamente e marcadas como "contaminadas".
Visto que sem um software caro você não pode dizer a diferença, muitos inocentes foram acusados de transgressão.
Monero é, sem dúvida, o dinheiro mais avançado disponível, e sua total privacidade protege inocentes de falsas acusações.
</p>
</div>
<div class="icon-box">
<div class="icon"><i class="fab fa-monero"></i></div>
<h4 class="title"><a href="https://analyticsindiamag.com/monero-cryptocurrency-hackers/" target="_blank">Hackers preferem Monero a Bitcoin</a></h4>
<p class="description">Monero é a ponta da lança em privacidade. Sua tecnologia de o tornou a escolha ideal para a maioria dos hackers.
Existe uma lei econômica que diz que as pessoas preferem se livrar do dinheiro ruim e ficar com o melhor dinheiro.
Isso é o que estamos testemunhando, o Bitcoin está sendo abandonado em favor do Monero, a única opção de privacidade verdadeira.
</p>
</div>
</div>
<div class="col-xl-5 col-lg-6 video-box2 d-flex justify-content-center align-items-stretch">
<a href="https://www.youtube.com/watch?v=REC5V7d3pqM" class="venobox play-btn mb-4" data-vbtype="video" data-autoplay="true"></a>
</div>
</div>
</div>
</section>
<!-- End About Section -->
<!-- ======= Services Section ======= -->
<section id="services" class="services">
<div class="container">
<div class="section-title">
<h2>Como investir no Monero?</h2>
<p>Interessado? Basta abrir uma conta em uma corretora confiável, enviar uma transferência eletrônica, comprar e sacar para sua carteira.
Lembre-se de sempre ter sua própria carteira de Monero, caso contrário suas moedas podem ser roubadas da corretora.</p>
</div>
<div class="row">
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-check"></i></div>
<h4 class="title"><a href="https://www.kraken.com/en-us/learn/buy-monero-xmr" target="_blank">Abrir uma conta numa corretora</a></h4>
<p class="description">Abra uma conta na <a href="https://www.binance.com/pt-BR">Binance.com</a>. Envie uma transferência bancária para a troca e converta seus fundos em Monero.</p>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-wallet"></i></div>
<h4 class="title"><a href="https://www.getmonero.org/downloads/" target="_blank">INSTALE OU COMPRE UMA CARTEIRA</a></h4>
<p class="description">Use <a href="https://www.getmonero.org/downloads/">a carteira oficial</a> no PC, <a href="https://cakewallet.com/">Cake wallet</a> ou <a href="https://www.monerujo.io/">Monerujo</a> no celular.
Você também pode comprar um <a href="https://www.ledger.com/">Ledger</a>.</p>
</div>
</div>
<div class="col-lg-4 col-md-6">
<div class="icon-box">
<div class="icon"><i class="fas fa-sign-out-alt"></i></div>
<h4 class="title"><a href="https://www.getmonero.org/resources/user-guides/securely_purchase.html" target="_blank">Saque PARA SUA CARTEIRA</a></h4>
<p class="description">Entre na corretora e peça que enviem o seu Monero para a sua carteira. Nunca deixe suas moedas na bolsa! Siga o <a href="https://www.getmonero.org/resources/user-guides/securely_purchase.html">Guia oficial.</a></p>
</div>
</div>
</div>
</div>
</section>
<!-- End Services Section -->
<!-- ======= F.A.Q Section ======= -->
<section id="faq" class="faq section-bg">
<div class="container">
<div class="section-title">
<h2>Perguntas frequentes</h2>
<p>Ainda não sabe como comprar e armazenar? Leia o básico aqui.</p>
</div>
<div class="faq-list">
<ul>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" class="collapse" href="#faq-list-1">O que exatamente é o Monero?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-1" class="collapse show" data-parent=".faq-list">
<p>
Monero é uma criptomoeda, assim como o Bitcoin. Monero é um projeto de software de código aberto que roda em sua própria blockchain e serve como moeda,
assim como o dólar. Muitas pessoas deixam seus computadores "minerando", o que significa que emprestam o poder de processamento de seus PCs para validar
todas as transações na rede. Com isso, todo esse poder de processamento é usado para garantir a emissão justa de novas moedas (o que causa a inflação anual)
e para proteger seu dinheiro de hackers. Monero tem uma inflação decrescente que eventualmente tenderá a zero e, como a inflação baixa leva à escassez,
ela funciona como reserva de valor para o seu patrimônio, assim como o ouro ou o Bitcoin. Diferentemente do Bitcoin, porém, Monero tem total privacidade.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-2" class="collapsed">Como funciona a privacidade do Monero?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-2" class="collapse" data-parent=".faq-list">
<p>
Monero tem tecnologia de privacidade de ponta, como RingCTs, Stealth Addresses, Bulletproofs e Dandelion++. Ring Confidential Transactions (RingCTs) são usados para
ofuscar o remetente de uma transação e o valor, enquanto Stealth Addresses únicos são usados para ocultar o endereço do destinatário usando um método conhecido como DKSAP.
Bulletproofs é um protocolo que melhorou os RingCTs, reduzindo o tamanho das transações, resultando em tempos de verificação mais rápidos e taxas mais baixas.
Por outro lado, o Dandelion++ foi desenvolvido para ocultar o endereço IP do dispositivo remetente.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-3" class="collapsed">Por que as pessoas dizem que o Monero é imparável?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-3" class="collapse" data-parent=".faq-list">
<p>
Os desenvolvedores do Monero já testaram o conceito de trocas atômicas entre ele e o Bitcoin, que acontecerão diretamente da carteira do Monero e serão processadas
através do blockchain do Bitcoin. Os usuários em um futuro próximo poderão trocar facilmente um ativo por outro, sem ter que depender de autoridades centrais, como as
corretoras, tornando-se a melhor solução de privacidade possível para Bitcoin. Em outras palavras, para banir o Monero, os governos teriam primeiro que censurar todo
o blockchain do Bitcoin, o que não acontecerá, porque o Bitcoin já está enraizado na sociedade. Portanto, ninguém poderá impedir que as pessoas tenham privacidade.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-4" class="collapsed">Como funciona a inflação do Monero?<i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-4" class="collapse" data-parent=".faq-list">
<p>
Nunca houve uma pré-mineração em Monero. Isso significa que ninguém controla grandes quantidades de moedas, uma vez que todas as moedas geradas
sempre foram distribuídas para os mineradores que trabalhassem honestamente. Os mineradores recebem moedas com base em quanto trabalho eles colocam
em validar e defender a rede, portanto, é uma forma de receita financeira que eles obtêm por seus serviços. No início (2014) não havia moedas em
circulação, a inflação era elevada. Hoje existem {{ now_units }} unidades em circulação, a inflação anual é de apenas {{ now_inflation}}.
O pagamento por bloco diminui ao longo do tempo, e também a taxa de inflação anual diminuirá lentamente até chegar a zero.
A demanda por dinheiro fungível, digital e voltado para a privacidade provavelmente disparará nos próximos anos e ultrapassará a inflação, fazendo com que
provavelmente haja uma apreciação desse ativo.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-5" class="collapsed">O que é melhor, Bitcoin ou Monero? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-5" class="collapse" data-parent=".faq-list">
<p>
O preço do Bitcoin é muito mais alto que o do Monero já que o primeiro foi lançado em 2009, enquanto o último apenas em 2014.
Quando o Bitcoin foi criado, a tecnologia por trás do Monero nem existia. Os métodos do Bitcoin foram em si um grande salto em tecnologia.
Agora, o Bitcoin tem uma legião de investidores, é uma criptomoeda estabelecida e tem um valor de mercado de 1Tri USD. No entanto, o Bitcoin tem muitas
falhas, como custo e tempo de transação, e principalmente falta de privacidade. Bitcoin não tem privacidade alguma. Todas as transações e saldos são armazenados
em uma cadeia de blocos, e são totalmente visíveis para todos os internautas. Nesse sentido, Bitcoin não pode funcionar como dinheiro, pois um dos principais
atributos de um bom dinheiro é a fungibilidade, que é a capacidade de todas as unidades serem indistinguíveis das demais.
Como todas as transações de Bitcoins são visíveis, você pode diferenciar uma da outra. Por exemplo, você pode escolher aceitar transações de um endereço,
mas pode proibir as pessoas de aceitarem outro. Isso inevitavelmente permitirá que os governos censurem determinados endereços com base no que seus proprietários
estão fazendo. Portanto, a falta de fungibilidade não é um recurso desejado para um bom dinheiro. Nesse sentido, Monero é muito melhor
dinheiro do que Bitcoin. Monero é mais rápido, mais barato de operar e completamente fungível. Você não pode ver diferenças entre diferentes Moneroj
(Moneroj é plural de Monero), então você também não pode censurar as pessoas. Com Monero, as pessoas são livres, enquanto com Bitcoin as pessoas estão à
mercê dos líderes de seus governos.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-6" class="collapsed">O Monero é um bom investimento? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-6" class="collapse" data-parent=".faq-list">
<p>
Embora ninguém possa prever exatamente o que acontecerá no futuro, a comunidade do Monero espera que haja uma grande demanda por privacidade nos
próximos anos. Com nossa sociedade dependendo mais dos processos digitais, é plausível que esse tipo de tecnologia acabe encontrando seu nicho em nosso
dia a dia. Monero é uma aposta na digitalização do dinheiro, uma aposta na necessidade de privacidade e também uma aposta que os governos vão perder o
monopólio do dinheiro. Em termos de retorno, enquanto o BTC levou 900 dias para atingir 37x em seu primeiro ciclo de mercado em alta, Monero levou 1279
dias para dar 95x retorno. No entanto, você não deve tomar isso como um conselho financeiro e deve investir por sua própria conta e risco.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-7" class="collapsed">Qual é o primeiro passo para investir em Monero? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-7" class="collapse" data-parent=".faq-list">
<p>
Simplificando, abra uma conta em uma corretora confiável, como Kraken (EUA) ou Binance (Brasil). Você só precisa escrever seus dados em seu formulário.
Depois disso, conclua todo o processo de registro, que pode incluir procedimentos KYC, como o envio de uma foto do seu documento e rosto.
Lembre-se também de habilitar autenticação de dois fatores, que evita que hackers roubem seus fundos e também permite retiradas. Em seguida,
envie uma transferência eletrônica para a corretora e, em algumas horas, eles atualizarão seu saldo. Quando isso acontecer, compre o seu Monero e
proceda para sacá-lo.
</p>
</div>
</li>
<li>
<i class="bx bx-help-circle icon-help"></i> <a data-toggle="collapse" href="#faq-list-8" class="collapsed">Abri a conta na corretora, e agora? Qual o próximo passo? <i class="bx bx-chevron-down icon-show"></i><i class="bx bx-chevron-up icon-close"></i></a>
<div id="faq-list-8" class="collapse" data-parent=".faq-list">
<p>
Agora baixe uma carteira de software para Monero em seu telefone (como a Cake Wallet ou a Monerujo) ou para seu computador (a carteira oficial). Você também pode comprar
uma carteira de hardware, como o Ledger. Ao concluir esta etapa, você pode fazer o login em sua conta na corretora e solicitar um saque de fundos.
Isso significa pedir à corretora para enviar todos os seus Moneroj de sua conta para o endereço de sua carteira. Depois disso, você já tem controle
total de seus fundos. Parabéns.
</p>
</div>
</li>
</ul>
</div>
</div>
</section>
<!-- End F.A.Q Section -->
</main>
<!-- End #main -->
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="footer-top">
<div class="container">
<div class="row">
<div class="col-lg-6 col-md-6 footer-contact">
<h3>Moneroj.net</h3>
<p>
Desenvolvido por<br>
Morpheus<br>
<strong>Email:</strong> morpheus.anonymous@protonmail.com<br>
<strong>Twitter:</strong> CryptoMorpheus_<br>
</p>
</div>
<div class="col-lg-3 col-md-6 footer-links">
<h4>Links úteis</h4>
<ul>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:pt' %}">Página Inicial</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:sfmodel' %}">Gráficos</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="{% url 'monerojnet:about' %}">Sobre</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.getmonero.org/">Getmonero.org</a></li>
<li><i class="bx bx-chevron-right"></i> <a href="https://www.reddit.com/r/Monero/">Reddit/Monero</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container d-lg-flex py-4">
<div class="mr-lg-auto text-center text-lg-left">
<div class="copyright a">
<strong>&copy; Copyright <span>Moneroj.net</span></strong>
</div>
</div>
<div class="social-links text-center text-lg-right pt-3 pt-lg-0">
<a href="https://twitter.com/CryptoMorpheus_" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="https://github.com/cryptomorpheuss/moneropro" class="github"><i class="bx bxl-github"></i></a>
<a href="mailto:morpheus.anonymous@protonmail.com" class="github"><i class="fas fa-envelope"></i></a>
</div>
</div>
</footer>
<!-- End Footer -->
<!-- Vendor JS Files -->
<script src="{% static 'vendor/jquery/jquery2.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>

View file

@ -0,0 +1,373 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Coinmarketcap Rank</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Rank</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_value }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Rank</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows Monero's rank over the whole cryptocurrency market, judging by Coinmarketcap rankings.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Rank',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {
color: '#dd1d1d'
,width: 3
},
yaxis: "y2"
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Rank',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {
color: '#dd1d1d'
,width: 3
},
yaxis: "y2"
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data = [data3, data1];
var data_mobile = [data3_mobile, data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.5,
xanchor: 'auto',
y: 0,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0,
y: 1,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
yaxis2: {
type: "linear",
title: {
text: 'Rank (reversed axis)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
,autorange: 'reversed'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-08-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 10
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.5,
y: 0,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
yaxis2: {
type: "linear",
tickformat :",.0f"
,nticks: 8
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-08-01']
,zeroline: true
},
margin: {
l: 40,
r: 100,
b: 35,
t: 10,
pad: 10
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,6 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
{{ deleted }} entradas deletadas e {{ added }} novas entradas adicionadas
{% endblock %}

View file

@ -0,0 +1,428 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12">
<div class="alert alert-danger" role="alert">
Warning: the price described by the gray line is just a suggestion of future behavior based on
past price-action pattern (adjusted for variable inflation).
</div>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Stock-to-flow Model (log scale)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Annual Inflation</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_inflation }}</div>
</div>
<div class="col-auto">
<i class="fas fa-percentage fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the price of the coin on each date, coloring the points indicating their position on
the Bitcoin pair, being red as overbought and blue as cheap.
This chart is plotted on a log scale. The formula is Stocktoflow = (100/Inflation)^Multiplier,
Multiplier is 1.65 for Monero (it's higher for Bitcoin's stock-to-flow
model, for example).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Stock-to-flow',
x: {{ dates|safe }},
y: {{ stock_to_flow|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Stock-to-flow',
x: {{ dates|safe }},
y: {{ stock_to_flow|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Fractal of past price',
x: {{ dates|safe }},
y: {{ projection|safe }},
line: {
color: '#656565'
,width: 1
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Fractal of past price',
x: {{ dates|safe }},
y: {{ projection|safe }},
line: {
color: '#656565'
,width: 1
}
};
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data2, data3, data4];
var data_mobile = [data2_mobile, data3_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-07-31']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-07-31']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,396 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Stock-to-flow Model (linear scale)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Last Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_price }}</div>
</div>
<div class="col-auto">
<i class="fas fa-money-bill fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Price</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Annual Inflation</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_inflation }}</div>
</div>
<div class="col-auto">
<i class="fas fa-percentage fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the price of the coin on each date, coloring the points indicating their position on
the Bitcoin pair, being red as overbought and blue as cheap.
This chart is plotted on a log scale. The formula is Stocktoflow = (100/Inflation)^Multiplier,
Multiplier is 1.65 for Monero (it's higher for Bitcoin's stock-to-flow
model, for example).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Stock-to-flow',
x: {{ dates|safe }},
y: {{ stock_to_flow|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Stock-to-flow',
x: {{ dates|safe }},
y: {{ stock_to_flow|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data2, data4];
var data_mobile = [data2_mobile, data4_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.98,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,402 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Stock-to-flow Multiple (Price / SF Model)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Stock-to-flow Multiple</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_sf }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Top Stock-to-flow Multiple Last Cycle</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the Stock-to-flow Multiple, which is the comparison between its current price against
its supposed value. When the indicator reaches 100, it suggests
the coin is at the end of its cycle and will now begin a bear market. This indicator is my own
aprimoration of PlanB's model, since for this one I also considered
the coin's supply. The formula is XMR-Supply*Price/(SF-Value*1.500.000);<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Buy',
x: {{ dates|safe }},
y: {{ buy|safe }},
line: {
color: '#00ff00'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Buy',
x: {{ dates|safe }},
y: {{ buy|safe }},
line: {
color: '#00ff00'
,width: 1
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Sell',
x: {{ dates|safe }},
y: {{ sell|safe }},
line: {
color: '#ff0000'
,width: 1
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Sell',
x: {{ dates|safe }},
y: {{ sell|safe }},
line: {
color: '#ff0000'
,width: 1
}
};
var data3 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ stock_to_flow|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
title: {
text: 'Cycle on the Bitcoin pair (%)',
side: 'right'
,font: {
color: 'white'
,size: 14
}
}
,thickness: 10
,tickfont: {
color: 'white'
,size: 14
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data3_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ stock_to_flow|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorbar: {
thickness: 4
,tickfont: {
color: 'white'
,size: 6
}
,borderwidth: 0
},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data1, data2, data3];
var data_mobile = [data1_mobile, data2_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.98,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price / Stock-to-flow',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-02-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-02-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,346 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Sharpe Ratio</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This is the Sharpe Ratio for Monero, which is an indicator that calculates the return over the risk of
the investment. For more information
access <a href="https://web.stanford.edu/~wfsharpe/art/sr/SR.htm" target="_blank">this webpage.</a> This
is a rolling 52 week Sharpe Ratio,
calculated by Ratio = Yearly Moving Average(Weekly R.O.C.)/ Yearly StDev(Weekly R.O.C.))*Sqrt(52).<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Sharpe Ratio',
x: {{ dates|safe }},
y: {{ sharpe|safe }},
line: {
color: '#1dddcd'
,width: 2
},
yaxis: "y2"
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Sharpe Ratio',
x: {{ dates|safe }},
y: {{ sharpe|safe }},
line: {
color: '#1dddcd'
,width: 2
},
yaxis: "y2"
};
var data2 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data2_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data = [data1, data2];
var data_mobile = [data1_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.50,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
},
yaxis2: {
type: "linear",
title: {
text: 'Sharpe Ratio',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-02-01', '2023-12-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 10
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#252221"
},
yaxis2: {
type: "linear",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-02-01', '2023-12-01']
,zeroline: true
},
margin: {
l: 40,
r: 100,
b: 35,
t: 10,
pad: 10
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="800px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,400 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Total Number of Reddit Subscribers for Bitcoin and CryptoCurrency
</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph_2">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Total Number of Reddit Subscribers for Monero</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph2" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
CryptoCurrency Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_crypto }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total number of users for Subreddits: Monero, CryptoCurrency and Bitcoin. The more
users the subreddit has, more likely it is to
achieve mass adoption. So, sudden spikes in total number of users indicate there's a new wave of people
getting into cryptocurrencies. Also, a sudden increase in
/CryptoCurrency indicates others coins are getting into relevance, not only Bitcoin.</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: '/Cryptocurrency',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 3
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: '/Cryptocurrency',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 3
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 3
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data = [data1, data2];
var data_2 = [data3];
var data_mobile = [data1_mobile, data2_mobile];
var data_mobile_2 = [data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 1,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.40,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Reddit Subscribers',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-10-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-10-01', '2023-06-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
document.getElementById("graph_2").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
Plotly.newPlot('graph2', data_mobile_2, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
document.getElementById("graph_2").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
Plotly.newPlot('graph2', data_2, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,343 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Marketcap Divided by Number of Reddit Subscribers</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Marketcap / Redditors for Monero</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Marketcap / Redditors for Bitcoin</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_btc }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total marketcap divided by the total number of users in /Bitcoin and /Monero
subreddits. It makes sense to obeserve this metric,
since a price too high in dollars/user might indicate a bubble. Similarly, a low marketcap/user might
indicate a bottom.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin, Dollars / Subscriber',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin, Dollars / Subscriber',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 3
}
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Monero, Dollars / Subscriber',
x: {{ dates2|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero, Dollars / Subscriber',
x: {{ dates2|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data = [data2, data1];
var data_mobile = [data2_mobile, data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Dollars / Subscriber',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2012-10-01', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2012-10-01', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,364 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Reddit Subscribers of /CryptoCurrency as a Percentage of /Bitcoin
</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph12">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Reddit Subscribers of /Monero as a Percentage of /Bitcoin</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph2" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Monero Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-64 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current CryptoCurrency Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_crypto }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total number of users for subreddits /Monero ang /CryptoCurrency as a percentage
of the total users of /Bitcoin subreddit.
Sudden spikes in total percentage indicate there's a new wave of people getting into other
cryptocurrencies, not only in Bitcoin. When /CryptoCurrency dominance increase,
it makes sense to expect that such projects will appreciate against the BTC pair. However, this is just
and idea to observe.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: '/Monero as % of /Bitcoin',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: '/Monero as % of /Bitcoin',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: '/CryptoCurrency as % of /Bitcoin',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 3
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: '/CryptoCurrency as % of /Bitcoin',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 3
}
};
var data = [data2];
var data_mobile = [data2_mobile];
var data_2 = [data1];
var data_mobile_2 = [data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 1,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.85,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Subscribers Percentage',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: false,
type: 'date',
nticks: 3
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
document.getElementById("graph12").style.height="350px";
Plotly.newPlot('graph2', data_mobile_2, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="750px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
document.getElementById("graph12").style.height="750px";
Plotly.newPlot('graph2', data_2, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,603 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">/Bitcoin, /CryptoCurrency and /Monero Monthly New Subscribers
</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph12">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">/Bitcoin, /CryptoCurrency and /Monero Monthly Percentage Increase
in Subscribers</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph2" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
New Monero Subscribers (Last 30 days)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
New Bitcoin Subscribers (Last 30 days)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
New CryptoCurrency Subscribers (Last 30 days)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_crypto }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total number of users for Subreddits: Monero, CryptoCurrency and Bitcoin. The more
users the subreddit has, more likely it is to
achieve mass adoption. So, sudden spikes in total number of users indicate there's a new wave of people
getting into cryptocurrencies. Also, a sudden increase in
/CryptoCurrency indicates others coins are getting into relevance, not only Bitcoin.</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ newcomers_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ newcomers_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ speed_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ speed_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: '/CryptoCurrency',
x: {{ dates|safe }},
y: {{ speed_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: '/CryptoCurrency',
x: {{ dates|safe }},
y: {{ speed_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data4 = {
type: "scatter",
mode: "lines",
name: '/CryptoCurrency',
x: {{ dates|safe }},
y: {{ newcomers_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data4_mobile = {
type: "scatter",
mode: "lines",
name: '/CryptoCurrency',
x: {{ dates|safe }},
y: {{ newcomers_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ newcomers_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ newcomers_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data6 = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ speed_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data6_mobile = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ speed_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data = [data1, data4, data5];
var data_2 = [data2, data3, data6];
var data_mobile = [data1_mobile, data4_mobile, data5_mobile];
var data_mobile_2 = [data2_mobile, data3_mobile, data6_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'New Subscribers (units)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2012-10-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 1,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2012-10-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
var layout_2 = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'New Subscribers (%)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2012-10-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile_2 = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 1,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2012-10-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
document.getElementById("graph12").style.height="350px";
Plotly.newPlot('graph2', data_mobile_2, layout_mobile_2, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
document.getElementById("graph12").style.height="700px";
Plotly.newPlot('graph2', data_2, layout_2, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,372 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Total Number of Reddit Subscribers for Monero and Number of Transactions</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph2" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Subscribers</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Daily Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_transactions }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total number of users for Monero subreddit plotted compared to the number of daily transactions the coin has.</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Daily Transactions',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
},
yaxis: "y2"
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Daily Transactions',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
},
yaxis: "y2"
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Monero Subreddit',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#ffffff'
,width: 1
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Subreddit',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#ffffff'
,width: 1
}
};
var data_2 = [data2, data3];
var data_mobile_2 = [data2_mobile, data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.98,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Reddit Subscribers',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
yaxis2: {
type: "log",
title: {
text: 'Transactions/day',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 8
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-04-23', '2023-06-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
yaxis2: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2012-10-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph2', data_mobile_2, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph2', data_2, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,398 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Comments per day on Subreddits /Bitcoin and /CryptoCurrency
</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph_2">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Comments per day on Subreddit /Monero</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph2" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Daily Comments</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Daily Comments</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
CryptoCurrency Daily Comments</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_crypto }}</div>
</div>
<div class="col-auto">
<i class="fa fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total number of daily comments for Subreddits: Monero, CryptoCurrency and Bitcoin. The more
users the subreddit has, more likely it is to
achieve mass adoption.</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: '/Cryptocurrency',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: '/Cryptocurrency',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data = [data1, data2];
var data_2 = [data3];
var data_mobile = [data1_mobile, data2_mobile];
var data_mobile_2 = [data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 1,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.40,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: ' Comments Per Day',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2018-11-07', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2018-11-07', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
document.getElementById("graph_2").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
Plotly.newPlot('graph2', data_mobile_2, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
document.getElementById("graph_2").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
Plotly.newPlot('graph2', data_2, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,397 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Posts per day on Subreddits /Bitcoin and /CryptoCurrency
</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph_2">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Posts per day on Reddit /Monero</h6>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph2" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero Posts (24h)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin Posts (24h)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-4 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
CryptoCurrency Posts (24h)</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ last_crypto }}</div>
</div>
<div class="col-auto">
<i class="fa fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
These charts show the total number of daily posts for Subreddits: Monero, CryptoCurrency and Bitcoin. The more
users the subreddit has, more likely it is to
achieve mass adoption.</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: '/Cryptocurrency',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: '/Cryptocurrency',
x: {{ dates|safe }},
y: {{ social_crypto|safe }},
line: {
color: '#00ffff'
,width: 2
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: '/Bitcoin',
x: {{ dates|safe }},
y: {{ social_btc|safe }},
line: {
color: '#ffff00'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: '/Monero',
x: {{ dates|safe }},
y: {{ social_xmr|safe }},
line: {
color: '#dd1d1d'
,width: 3
}
};
var data = [data1, data2];
var data_2 = [data3];
var data_mobile = [data1_mobile, data2_mobile];
var data_mobile_2 = [data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 1,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 1,
y: 0.40,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: ' Posts Per Day',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2018-11-07', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2018-11-07', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
document.getElementById("graph_2").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
Plotly.newPlot('graph2', data_mobile_2, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
document.getElementById("graph_2").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
Plotly.newPlot('graph2', data_2, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,424 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Thermocap Multiple</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Thermocap multiple is the ratio obtained between dividing the current price of the coin by the
accumulated price of each mined coin.
It is often used to indicate end of a bull market. The formula is XMR-price/(SUM(Daily Reward * Price at
current date)). The Thermocap Bands are calculated
by the current sum of all mined coins multiplied to its price at that current date. You can learn more
about this <a
href="https://geertjancap.medium.com/modeling-bitcoin-price-dynamics-with-systems-dynamics-theory-c028d788fd0e"
target="_blank">here.</a><br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Accumulated Thermocap',
x: {{ dates|safe }},
y: {{ calories|safe }},
line: {
color: '#225522'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Accumulated Thermocap',
x: {{ dates|safe }},
y: {{ calories|safe }},
line: {
color: '#225522'
,width: 1
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Buy line',
x: {{ dates|safe }},
y: {{ calories2|safe }},
line: {
color: '#225522'
,width: 1
},
fill: 'tonexty'
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Buy line',
x: {{ dates|safe }},
y: {{ calories2|safe }},
line: {
color: '#225522'
,width: 1
},
fill: 'tonexty'
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Resistance',
x: {{ dates|safe }},
y: {{ calories3|safe }},
line: {
color: '#662222'
,width: 1
},
fill: 'tonexty'
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Resistance',
x: {{ dates|safe }},
y: {{ calories3|safe }},
line: {
color: '#662222'
,width: 1
},
fill: 'tonexty'
};
var data4 = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 5,
cmax: 100,
cmin: 0
}
};
var data4_mobile = {
type: "scatter",
mode: "markers",
name: 'Average price on date',
x: {{ dates|safe }},
y: {{ values|safe }},
line: {color: '#7f421d'},
marker: {
color: {{ color|safe }},
colorscale: [['0', '#0000ff'], ['0.33', '#00ff00'], ['0.66', '#ffff00'], ['1', '#ff0000']],
sizemode: 'area',
size: 3,
cmax: 100,
cmin: 0
}
};
var data5 = {
type: "scatter",
mode: "lines",
name: 'Thermocap Multiple',
x: {{ dates|safe }},
y: {{ thermocap|safe }},
line: {
color: '#1dddcd'
,width: 2
},
yaxis: "y2"
};
var data5_mobile = {
type: "scatter",
mode: "lines",
name: 'Thermocap Multiple',
x: {{ dates|safe }},
y: {{ thermocap|safe }},
line: {
color: '#1dddcd'
,width: 2
},
yaxis: "y2"
};
var data = [data1, data2, data3, data4, data5];
var data_mobile = [data1_mobile, data2_mobile, data3_mobile, data4_mobile, data5_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.05,
xanchor: 'auto',
y: 0.75,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.05,
y: 1,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
},
yaxis2: {
type: "linear",
title: {
text: 'Thermocap Multiple',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.7f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-02-01', '2023-02-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 10
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.1f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#252221"
},
yaxis2: {
type: "linear",
tickformat :",.7f"
,nticks: 10
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-02-01', '2023-12-01']
,zeroline: true
},
margin: {
l: 40,
r: 100,
b: 35,
t: 10,
pad: 10
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="800px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,320 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Monero's Daily Transaction Count in Log Scale</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Current Daily Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_transactions }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Number of Daily Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total transactions Monero has each day on a log scale. Higher transaction count
means the coin is being increasingly used, and since Metcalfe's Law
proposes that more information being exchanged in a network means the network itself should be worth
more, it also means the coin should increase in price.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Fractal of past price',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 1
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Fractal of past price',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 1
}
};
var data = [data3];
var data_mobile = [data3_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.98,
xanchor: 'auto',
y: 0.05,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.8,
y: 0.05,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Transactions/day',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2022-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.05,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2022-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,364 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Average Transaction Cost</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body pb-0 pt-0 pl-0 pr-0" style="height: 100px;">
<div id="graph" style="height: 100%; width:100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Transaction Cost</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }}</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin's Transaction Cost</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }}</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily transaction cost for both Bitcoin and Monero.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data1 = {
type: "scatter",
mode: "lines",
name: 'Simulation: Monero Tx Cost at BTC prices',
x: {{ dates|safe }},
y: {{ costxmr2|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Simulation: Monero Tx Cost at BTC prices',
x: {{ dates|safe }},
y: {{ costxmr2|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Tx Cost',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Tx Cost',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Tx Cost',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Tx Cost',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data1, data3, data2];
var data_mobile = [data1_mobile, data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Transaction Cost (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.6f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.6f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,342 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Average Transaction Cost (Native Units)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Monero's Transaction Cost</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_xmr }} XMR</div>
</div>
<div class="col-auto">
<i class="fab fa-monero fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Bitcoin's Transaction Cost</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_btc }} BTC</div>
</div>
<div class="col-auto">
<i class="fab fa-bitcoin fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows average daily transaction cost for both Bitcoin and Monero calculated in terms of the
own coin.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data2 = {
type: "scatter",
mode: "lines",
name: 'Monero Tx Cost',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data2_mobile = {
type: "scatter",
mode: "lines",
name: 'Monero Tx Cost',
x: {{ dates|safe }},
y: {{ costxmr|safe }},
line: {
color: '#dd1d1d'
,width: 2
}
};
var data3 = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Tx Cost',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Bitcoin Tx Cost',
x: {{ dates|safe }},
y: {{ costbtc|safe }},
line: {
color: '#ffd311'
,width: 2
}
};
var data = [data3, data2];
var data_mobile = [data3_mobile, data2_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Transaction Cost (Native Units)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.7f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2010-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 60,
b: 35,
t: 10,
pad: 4
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.98,
y: 0.02,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.7f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2010-11-14', '2024-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 0,
b: 35,
t: 10,
pad: 0
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,375 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Transaction Count (linear)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Daily Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_transactions }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Number of Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total transactions Monero has each day on a linear scale. Higher transaction count
means the coin is being increasingly used, and since Metcalfe's Law
proposes that more information being exchanged in a network means the network itself should be worth
more, it also means the coin should increase in price.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Transactions',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
},
yaxis: "y2"
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Transactions',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
},
yaxis: "y2"
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data = [data3, data1];
var data_mobile = [data3_mobile, data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.02,
xanchor: 'auto',
y: 0.50,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "linear",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
yaxis2: {
type: "linear",
title: {
text: 'Transactions',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 10
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "linear",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
yaxis2: {
type: "linear",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 100,
b: 35,
t: 10,
pad: 10
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

View file

@ -0,0 +1,375 @@
{% extends 'monerojnet/base.html' %}
{% block content %}
<!-- Content Wrapper -->
<div id="content-wrapper" style="background-color:rgb(48, 44, 41)">
<!-- Main Content -->
<div id="content">
<!-- Begin Page Content -->
<div class="container-fluid"><br>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card" id="graph1">
<div
class="card-header py-3 d-flex flex-row align-items-center justify-content-between text-white">
<h6 class="m-0 text-light">Transaction Count (log scale)</h6>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button"
onclick="$('#graph1').toggleClass('fullscreen');window.dispatchEvent(new Event('resize'));">
<i class="fas fa-arrows-alt fa-sm fa-fw text-gray-400"></i>
</a>
</div>
</div>
<div class="card-body" style="height: 100px;">
<div id="graph" style="height: 100%;"></div>
</div>
</div>
<br>
</div>
</div>
<!-- Content Row -->
<div class="row">
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Daily Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ now_transactions }}</div>
</div>
<div class="col-auto">
<i class="fas fa-check fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Earnings (Monthly) Card Example -->
<div class="col-xl-6 col-md-6 mb-4">
<div class="card border-left-new h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase mb-1">
Highest Number Transactions</div>
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ maximum }}</div>
</div>
<div class="col-auto">
<i class="fa fa-rocket fa-2x text-gray-300"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Row -->
<div class="row">
<div class="col-xl-11 col-md-6 mb-4">
<div class="alert alert-dark" role="alert">
Not financial advice.
For information about the chart, click the button >
</div>
</div>
<div class="col-xl-1">
<button type="button" class="btn btn-dark btn-block" data-toggle="modal" href="#"
data-target="#id_Modal">
<div class="col-auto">
<i class="fa fa-info-circle fa-2x "></i>
</div>
</button>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<!-- Modal -->
<div class="modal fade" id="id_Modal" tabindex="-1" role="dialog" aria-labelledby="Modal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="Modal">Help about the chart</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Cancelar">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
This chart shows the total transactions Monero has each day on a log scale. Higher transaction count
means the coin is being increasingly used, and since Metcalfe's Law
proposes that more information being exchanged in a network means the network itself should be worth
more, it also means the coin should increase in price.<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Fim do Modal -->
<!-- Page level plugins -->
<script>
var data3 = {
type: "scatter",
mode: "lines",
name: 'Transactions',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
},
yaxis: "y2"
};
var data3_mobile = {
type: "scatter",
mode: "lines",
name: 'Transactions',
x: {{ dates|safe }},
y: {{ transactions|safe }},
line: {
color: '#dd1d1d'
,width: 2
},
yaxis: "y2"
};
var data1 = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data1_mobile = {
type: "scatter",
mode: "lines",
name: 'Price',
x: {{ dates|safe }},
y: {{ pricexmr|safe }},
line: {
color: '#444444'
,width: 1
}
};
var data = [data3, data1];
var data_mobile = [data3_mobile, data1_mobile];
var layout = {
plot_bgcolor:"#252221",
paper_bgcolor:"#252221",
annotations: [
{
xref: 'paper',
yref: 'paper',
x: 0.50,
xanchor: 'auto',
y: 0.02,
yanchor: 'auto',
text: 'Moneroj<br>https://www.moneroj.net',
showarrow: false,
borderwidth: 1,
bordercolor: '#5f5f5f',
bgcolor: '#333333',
borderpad: 5,
align: 'center',
font: {
color: "white",
size: 12
}
}],
separators: ",.",
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#333333',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 12
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
hoverlabel: {
namelength: -1
},
yaxis: {
type: "log",
title: {
text: 'Price (USD)',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#333333"
},
yaxis2: {
type: "log",
title: {
text: 'Transactions',
font: {
size: 20,
color: 'white'
}
},
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 12
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y-%m-%d",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 13
}
,gridcolor: "#333333"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 120,
r: 120,
b: 35,
t: 10,
pad: 10
}
};
var layout_mobile = {
plot_bgcolor:"black",
paper_bgcolor:"black",
separators: ",.",
hoverlabel: {
namelength: -1
},
legend: {
x: 0.02,
y: 0.98,
bgcolor: '#000000',
bordercolor: '#5f5f5f',
borderwidth: 1,
font: {
color: 'white',
size: 5
},
traceorder: 'normal',
xanchor: 'auto',
yanchor: 'auto'
},
showlegend: false,
yaxis: {
type: "log",
tickformat :",.0f"
,nticks: 10
,tickfont: {
color: "#ffffff"
,size: 7
}
,gridcolor: "#444444"
},
yaxis2: {
type: "log",
tickformat :",.2f"
,nticks: 10
,tickfont: {
color: "white"
}
,gridcolor: "#252221"
,side: "right"
,overlaying: 'y'
},
xaxis: {
hoverformat: "%Y",
showgrid: true,
type: 'date',
nticks: 10
,tickfont: {
color: "#dddddd"
,size: 7
}
,gridcolor: "#444444"
,range: ['2014-05-01', '2023-01-01']
,zeroline: true
},
margin: {
l: 40,
r: 100,
b: 35,
t: 10,
pad: 10
}
};
function findBootstrapEnvironment() {
let envs = ['xs', 'sm', 'md', 'lg', 'xl'];
let el = document.createElement('div');
document.body.appendChild(el);
let curEnv = envs.shift();
for (let env of envs.reverse()) {
el.classList.add(`d-${env}-none`);
if (window.getComputedStyle(el).display === 'none') {
curEnv = env;
break;
}
}
document.body.removeChild(el);
return curEnv;
}
env_size = findBootstrapEnvironment();
if (env_size == "xs") {
document.getElementById("graph1").style.height="350px";
Plotly.newPlot('graph', data_mobile, layout_mobile, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
else {
document.getElementById("graph1").style.height="700px";
Plotly.newPlot('graph', data, layout, {responsive: true, modeBarButtonsToRemove: ['toImage', 'hoverCompareCartesian', 'hoverClosest2d', 'toggleSpikelines', 'lasso2d', 'select2d', 'hoverClosestCartesian'], displaylogo: false});
}
</script>
{% endblock %}

3
monerojnet/tests.py Normal file
View file

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

75
monerojnet/urls.py Normal file
View file

@ -0,0 +1,75 @@
from django.conf.urls import url
from django.urls import path
from . import views
urlpatterns = [
# Página inicial
url(r'^$', views.index, name='index'),
path('pricelog/', views.pricelog, name='pricelog'),
path('movingaverage/', views.movingaverage, name='movingaverage'),
path('pricelin/', views.pricelin, name='pricelin'),
path('powerlaw/', views.powerlaw, name='powerlaw'),
path('pricesats/', views.pricesats, name='pricesats'),
path('fractal/', views.fractal, name='fractal'),
path('golden/', views.golden, name='golden'),
path('competitors/', views.competitors, name='competitors'),
path('competitorssats/', views.competitorssats, name='competitorssats'),
path('competitorssatslin/', views.competitorssatslin, name='competitorssatslin'),
path('translin/', views.translin, name='translin'),
path('percentage/', views.percentage, name='percentage'),
path('translog/', views.translog, name='translog'),
path('metcalfesats/', views.metcalfesats, name='metcalfesats'),
path('metcalfeusd/', views.metcalfeusd, name='metcalfeusd'),
path('coins/', views.coins, name='coins'),
path('extracoins/', views.extracoins, name='extracoins'),
path('inflation/', views.inflation, name='inflation'),
path('compinflation/', views.compinflation, name='compinflation'),
path('sfmodel/', views.sfmodel, name='sfmodel'),
path('sfmodellin/', views.sfmodellin, name='sfmodellin'),
path('sfmodel/', views.sfmodel, name='sfmodel'),
path('sfmultiple/', views.sfmultiple, name='sfmultiple'),
path('about/', views.about, name='about'),
path('bitcoin/', views.bitcoin, name='bitcoin'),
path('reset/<str:symbol>/', views.reset, name='reset'),
path('pt/', views.pt, name='pt'),
path('fr/', views.fr, name='fr'),
path('index_pt/', views.pt, name='index_pt'),
path('importer/', views.importer, name='importer'),
path('thermocap/', views.thermocap, name='thermocap'),
path('sharpe/', views.sharpe, name='sharpe'),
path('social/', views.social, name='social'),
path('social2/', views.social2, name='social2'),
path('social3/', views.social3, name='social3'),
path('social4/', views.social4, name='social4'),
path('social5/', views.social5, name='social5'),
path('social6/', views.social6, name='social6'),
path('social7/', views.social7, name='social7'),
path('hashrate/', views.hashrate, name='hashrate'),
path('hashprice/', views.hashprice, name='hashprice'),
path('hashvsprice/', views.hashvsprice, name='hashvsprice'),
path('inflationfractal/', views.inflationfractal, name='inflationfractal'),
path('dailyemission/', views.dailyemission, name='dailyemission'),
path('dailyemissionntv/', views.dailyemissionntv, name='dailyemissionntv'),
path('transcost/', views.transcost, name='transcost'),
path('transcostntv/', views.transcostntv, name='transcostntv'),
path('minerrevcap/', views.minerrevcap, name='minerrevcap'),
path('minerrev/', views.minerrev, name='minerrev'),
path('minerrevntv/', views.minerrevntv, name='minerrevntv'),
path('minerfees/', views.minerfees, name='minerfees'),
path('minerfeesntv/', views.minerfeesntv, name='minerfeesntv'),
path('commit/', views.commit, name='commit'),
path('commitntv/', views.commitntv, name='commitntv'),
path('inflationreturn/', views.inflationreturn, name='inflationreturn'),
path('dread_subscribers/', views.dread_subscribers, name='dread_subscribers'),
path('coincards/', views.coincards, name='coincards'),
path('merchants/', views.merchants, name='merchants'),
path('merchants_increase/', views.merchants_increase, name='merchants_increase'),
path('merchants_percentage/', views.merchants_percentage, name='merchants_percentage'),
path('dominance/', views.dominance, name='dominance'),
path('rank/', views.rank, name='rank'),
path('marketcap/', views.marketcap, name='marketcap'),
path('artigos/', views.artigos, name='artigos'),
path('articles/', views.articles, name='articles'),
]

3562
monerojnet/views.py Normal file

File diff suppressed because it is too large Load diff

16
moneropro/asgi.py Normal file
View file

@ -0,0 +1,16 @@
"""
ASGI config for moneropro project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'moneropro.settings')
application = get_asgi_application()

127
moneropro/settings.py Normal file
View file

@ -0,0 +1,127 @@
"""
Django settings for moneropro project.
Generated by 'django-admin startproject' using Django 3.1.7.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.1/ref/settings/
"""
import os
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/
STATIC_URL = '/static/'
BASE_DIR = Path(__file__).resolve().parent.parent
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ''
# SECURITY WARNING: don't run with debug turned on in production!
#DEBUG = True
DEBUG = False
STATIC_ROOT = "/var/www/moneropro/static/"
ALLOWED_HOSTS = ['www.moneroj.net', 'localhost', '127.0.0.1', 'moneroj.net']
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'monerojnet',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'moneropro.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'moneropro.wsgi.application'
# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/3.1/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True

24
moneropro/urls.py Normal file
View file

@ -0,0 +1,24 @@
"""moneropro URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.conf.urls import include, url
from django.contrib import admin
from django.urls import path
app_name = 'monerojnet'
urlpatterns = [
path('admin/', admin.site.urls),
url(r'', include(('monerojnet.urls', 'monerojnet'), namespace='monerojnet')),
]

16
moneropro/wsgi.py Normal file
View file

@ -0,0 +1,16 @@
"""
WSGI config for moneropro project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'moneropro.settings')
application = get_wsgi_application()

21
requirements.txt Normal file
View file

@ -0,0 +1,21 @@
asgiref==3.3.1
beautifulsoup4==4.9.3
certifi==2020.12.5
chardet==4.0.0
dj-database-url==0.5.0
dj-static==0.0.6
Django==3.1.7
django-bootstrap4==2.3.1
gunicorn==20.0.4
idna==2.10
numpy==1.20.1
pandas==1.2.3
psycopg2-binary==2.8.6
python-dateutil==2.8.1
pytz==2021.1
requests==2.25.1
six==1.15.0
soupsieve==2.2
sqlparse==0.4.1
static3==0.7.0
urllib3==1.26.3

1
runtime.txt Normal file
View file

@ -0,0 +1 @@
python-3.8.5

View file

0
static/assets/css/sb-admin-2.min.css vendored Normal file
View file

190
static/assets/css/style.css Normal file
View file

@ -0,0 +1,190 @@
/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/**
* Desktop Navigation
*/
.navbar {
padding: 0;
}
.navbar ul {
margin: 0;
padding: 0;
display: flex;
list-style: none;
align-items: center;
}
.navbar li {
position: relative;
}
.navbar a, .navbar a:focus {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 0 10px 30px;
font-size: 15px;
color: #4e4039;
white-space: nowrap;
transition: 0.3s;
}
.navbar a i, .navbar a:focus i {
font-size: 12px;
line-height: 0;
margin-left: 5px;
}
.navbar a:hover, .navbar .active, .navbar .active:focus, .navbar li:hover > a {
color: #ff4d21;
}
.navbar .getstarted, .navbar .getstarted:focus {
background: #ff4d21;
color: #fff;
padding: 10px 25px;
margin-left: 30px;
border-radius: 50px;
}
.navbar .getstarted:hover, .navbar .getstarted:focus:hover {
color: #fff;
background: #ee7843;
}
.navbar .dropdown ul {
display: block;
position: absolute;
left: 14px;
top: calc(100% + 30px);
margin: 0;
padding: 10px 0;
z-index: 99;
opacity: 0;
visibility: hidden;
background: #fff;
box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
transition: 0.3s;
}
.navbar .dropdown ul li {
min-width: 200px;
}
.navbar .dropdown ul a {
padding: 10px 20px;
font-size: 15px;
text-transform: none;
}
.navbar .dropdown ul a i {
font-size: 12px;
}
.navbar .dropdown ul a:hover, .navbar .dropdown ul .active:hover, .navbar .dropdown ul li:hover > a {
color: #ff4d21;
}
.navbar .dropdown:hover > ul {
opacity: 1;
top: 100%;
visibility: visible;
}
.navbar .dropdown .dropdown ul {
top: 0;
left: calc(100% - 30px);
visibility: hidden;
}
.navbar .dropdown .dropdown:hover > ul {
opacity: 1;
top: 0;
left: 100%;
visibility: visible;
}
@media (max-width: 1800px) {
.navbar .dropdown .dropdown ul {
left: -90%;
}
.navbar .dropdown .dropdown:hover > ul {
left: -100%;
}
}
/**
* Mobile Navigation
*/
.mobile-nav-toggle {
color: #7a6960;
font-size: 28px;
cursor: pointer;
display: none;
line-height: 0;
transition: 0.3s;
}
.mobile-nav-toggle.bi-x {
color: #fff;
}
@media (max-width: 991px) {
.mobile-nav-toggle {
display: block;
}
.navbar ul {
display: none;
}
}
.navbar-mobile {
position: fixed;
overflow: hidden;
top: 0;
right: 0;
left: 0;
bottom: 0;
background: rgba(78, 64, 57, 0.9);
transition: 0.3s;
}
.navbar-mobile .mobile-nav-toggle {
position: absolute;
top: 15px;
right: 15px;
}
.navbar-mobile ul {
display: block;
position: absolute;
top: 55px;
right: 15px;
bottom: 15px;
left: 15px;
padding: 10px 0;
background-color: #fff;
overflow-y: auto;
transition: 0.3s;
}
.navbar-mobile a, .navbar-mobile a:focus {
padding: 10px 20px;
font-size: 15px;
color: #7a6960;
}
.navbar-mobile a:hover, .navbar-mobile .active, .navbar-mobile li:hover > a {
color: #ff4d21;
}
.navbar-mobile .getstarted, .navbar-mobile .getstarted:focus {
margin: 15px;
}
.navbar-mobile .dropdown ul {
position: static;
display: none;
margin: 10px 20px;
padding: 10px 0;
z-index: 99;
opacity: 1;
visibility: visible;
background: #fff;
box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
}
.navbar-mobile .dropdown ul li {
min-width: 200px;
}
.navbar-mobile .dropdown ul a {
padding: 10px 20px;
}
.navbar-mobile .dropdown ul a i {
font-size: 12px;
}
.navbar-mobile .dropdown ul a:hover, .navbar-mobile .dropdown ul .active:hover, .navbar-mobile .dropdown ul li:hover > a {
color: #ff4d21;
}
.navbar-mobile .dropdown > .dropdown-active {
display: block;
}

7
static/assets/js/Chart.min.js vendored Executable file

File diff suppressed because one or more lines are too long

81
static/assets/js/main.js Normal file
View file

@ -0,0 +1,81 @@
/**
* Developed by: Ben Hur Gonçalves
* Contact: benhur.goncalves@protonmail.com
*/
(function() {
"use strict";
/**
* Easy selector helper function
*/
const select = (el, all = false) => {
el = el.trim()
if (all) {
return [...document.querySelectorAll(el)]
} else {
return document.querySelector(el)
}
}
/**
* Easy event listener function
*/
const on = (type, el, listener, all = false) => {
let selectEl = select(el, all)
if (selectEl) {
if (all) {
selectEl.forEach(e => e.addEventListener(type, listener))
} else {
selectEl.addEventListener(type, listener)
}
}
}
/**
* Easy on scroll event listener
*/
const onscroll = (el, listener) => {
el.addEventListener('scroll', listener)
}
/**
* Navbar links active state on scroll
*/
let navbarlinks = select('#navbar .scrollto', true)
const navbarlinksActive = () => {
let position = window.scrollY + 200
navbarlinks.forEach(navbarlink => {
if (!navbarlink.hash) return
let section = select(navbarlink.hash)
if (!section) return
if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
navbarlink.classList.add('active')
} else {
navbarlink.classList.remove('active')
}
})
}
window.addEventListener('load', navbarlinksActive)
onscroll(document, navbarlinksActive)
/**
* Mobile nav toggle
*/
on('click', '.mobile-nav-toggle', function(e) {
select('#navbar').classList.toggle('navbar-mobile')
this.classList.toggle('bi-list')
this.classList.toggle('bi-x')
})
/**
* Mobile nav dropdowns activate
*/
on('click', '.navbar .dropdown > a', function(e) {
if (select('#navbar').classList.contains('navbar-mobile')) {
e.preventDefault()
this.nextElementSibling.classList.toggle('dropdown-active')
}
}, true)
})()

10
static/css/sb-admin-2.min.css vendored Normal file

File diff suppressed because one or more lines are too long

2160
static/css/style.css Normal file

File diff suppressed because it is too large Load diff

BIN
static/img/about-img.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
static/img/about-img2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
static/img/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
static/img/hero-bg-2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

BIN
static/img/hero-bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

BIN
static/img/img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
static/img/incognito.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
static/img/morpheus.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Some files were not shown because too many files have changed in this diff Show more