rebranding upgrade and various fixes

This commit is contained in:
d0x
2024-04-28 22:20:58 -07:00
parent 2ba29503f6
commit 6db10719a7
24 changed files with 486 additions and 285 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 16 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,12 +1,12 @@
.btn-etho { .btn-etho {
color: #ffffff; color: #ffffff;
background-color: #840032; background-color: #25D4DC;
border-color: #103024; border-color: #103024;
} }
.btn-etho:hover { .btn-etho:hover {
background: #fff; background: #fff;
box-shadow: 0px 2px 10px 5px #840032; box-shadow: 0px 2px 10px 5px #25D4DC;
color: #000; color: #000;
} }
@@ -41,12 +41,12 @@ fieldset[disabled] .btn-etho:active,
.btn-etho.disabled.active, .btn-etho.disabled.active,
.btn-etho[disabled].active, .btn-etho[disabled].active,
fieldset[disabled] .btn-etho.active { fieldset[disabled] .btn-etho.active {
background-color: #840032; background-color: #25D4DC;
border-color: #450118; border-color: #450118;
} }
.btn-etho .badge { .btn-etho .badge {
color: #840032; color: #25D4DC;
background-color: #ffffff; background-color: #ffffff;
} }
@@ -57,7 +57,7 @@ fieldset[disabled] .btn-etho.active {
font-size: 12px; font-size: 12px;
letter-spacing: 2px; letter-spacing: 2px;
position: relative; position: relative;
background-color: #840032; background-color: #25D4DC;
border: none; border: none;
color: #fff; color: #fff;
padding: 2px; padding: 2px;
@@ -71,13 +71,13 @@ fieldset[disabled] .btn-etho.active {
.button2:hover { .button2:hover {
background: #fff; background: #fff;
box-shadow: 0px 2px 10px 5px #840032; box-shadow: 0px 2px 10px 5px #25D4DC;
color: #000; color: #000;
} }
.button2:after { .button2:after {
content: ""; content: "";
background: #840032; background: #25D4DC;
display: block; display: block;
position: absolute; position: absolute;
padding-top: 300%; padding-top: 300%;
@@ -106,7 +106,7 @@ fieldset[disabled] .btn-etho.active {
font-size: 10px; font-size: 10px;
letter-spacing: 1px; letter-spacing: 1px;
position: relative; position: relative;
background-color: #840032; background-color: #25D4DC;
border: none; border: none;
color: #fff; color: #fff;
width: 110px; width: 110px;
@@ -119,13 +119,13 @@ fieldset[disabled] .btn-etho.active {
.button3:hover { .button3:hover {
background: #fff; background: #fff;
box-shadow: 0px 2px 10px 5px #840032; box-shadow: 0px 2px 10px 5px #25D4DC;
color: #000; color: #000;
} }
.button3:after { .button3:after {
content: ""; content: "";
background: #840032; background: #25D4DC;
display: block; display: block;
position: absolute; position: absolute;
padding-top: 300%; padding-top: 300%;
@@ -154,7 +154,7 @@ fieldset[disabled] .btn-etho.active {
font-size: 12px; font-size: 12px;
letter-spacing: 2px; letter-spacing: 2px;
position: relative; position: relative;
background-color: #840032; background-color: #25D4DC;
border: none; border: none;
color: #fff; color: #fff;
padding: 8px; padding: 8px;
@@ -167,13 +167,13 @@ fieldset[disabled] .btn-etho.active {
.button4:hover { .button4:hover {
background: #fff; background: #fff;
box-shadow: 0px 2px 10px 5px #840032; box-shadow: 0px 2px 10px 5px #25D4DC;
color: #000; color: #000;
} }
.button4:after { .button4:after {
content: ""; content: "";
background: #840032; background: #25D4DC;
display: block; display: block;
position: absolute; position: absolute;
padding-top: 300%; padding-top: 300%;
@@ -194,3 +194,4 @@ fieldset[disabled] .btn-etho.active {
.button4:focus { .button4:focus {
outline: 0; outline: 0;
} }

View File

@@ -7,7 +7,7 @@
} }
.dropdown-content li>a, .dropdown-content li>span { .dropdown-content li>a, .dropdown-content li>span {
color: rgb(36, 13, 21); color: rgb(13, 36, 33);
} }
#sendFeeRange { #sendFeeRange {
@@ -27,7 +27,7 @@
} }
#tableTransactionsForAll .fa-sign-out-alt { #tableTransactionsForAll .fa-sign-out-alt {
color: red; color: rgb(0, 238, 255);
} }
#tableTransactionsForAll .fa-arrow-left { #tableTransactionsForAll .fa-arrow-left {
@@ -45,3 +45,4 @@
#tableTransactionsForAll .fa-check { #tableTransactionsForAll .fa-check {
color: #228B22; color: #228B22;
} }

View File

@@ -796,11 +796,11 @@
} }
.teal.lighten-1 { .teal.lighten-1 {
background-color: #840032 !important background-color: #24F9DD !important
} }
.teal-text.text-lighten-1 { .teal-text.text-lighten-1 {
color: #840032 !important color: #24F9DD !important
} }
.teal.darken-1 { .teal.darken-1 {
@@ -2446,7 +2446,7 @@ td, th {
} }
.collection .collection-item.active { .collection .collection-item.active {
background-color: #840032; background-color: #24F9DD;
color: #eafaf9 color: #eafaf9
} }
@@ -2458,7 +2458,7 @@ td, th {
display: block; display: block;
-webkit-transition: .25s; -webkit-transition: .25s;
transition: .25s; transition: .25s;
color: #840032 color: #24F9DD
} }
.collection a.collection-item:not(.active):hover { .collection a.collection-item:not(.active):hover {
@@ -2481,7 +2481,7 @@ td, th {
.secondary-content { .secondary-content {
float: right; float: right;
color: #840032 color: #24F9DD
} }
.collapsible .collection { .collapsible .collection {
@@ -2520,13 +2520,13 @@ td, th {
top: 0; top: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
background-color: #840032; background-color: #24F9DD;
-webkit-transition: width .3s linear; -webkit-transition: width .3s linear;
transition: width .3s linear transition: width .3s linear
} }
.progress .indeterminate { .progress .indeterminate {
background-color: #840032 background-color: #24F9DD
} }
.progress .indeterminate:before { .progress .indeterminate:before {
@@ -2693,7 +2693,7 @@ span.badge.new {
font-weight: 300; font-weight: 300;
font-size: 0.8rem; font-size: 0.8rem;
color: #fff; color: #fff;
background-color: #840032; background-color: #24F9DD;
border-radius: 2px border-radius: 2px
} }
@@ -4207,7 +4207,7 @@ small {
} }
.card .card-title { .card .card-title {
font-size: 24px; font-size: 19px;
font-weight: 300 font-weight: 300
} }
@@ -4355,6 +4355,11 @@ small {
line-height: 32px line-height: 32px
} }
.cardValue {
font-size:33px;
margin-bottom:8px;
}
.card .card-action { .card .card-action {
background-color: inherit; background-color: inherit;
border-top: 1px solid rgba(160, 160, 160, 0.2); border-top: 1px solid rgba(160, 160, 160, 0.2);
@@ -4657,7 +4662,7 @@ small {
.btn, .btn-large, .btn-small { .btn, .btn-large, .btn-small {
text-decoration: none; text-decoration: none;
color: #fff; color: #fff;
background-color: #840032; background-color: #24F9DD;
text-align: center; text-align: center;
letter-spacing: .5px; letter-spacing: .5px;
-webkit-transition: background-color .2s ease-out; -webkit-transition: background-color .2s ease-out;
@@ -4679,7 +4684,7 @@ small {
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
padding: 0; padding: 0;
background-color: #840032; background-color: #24F9DD;
border-radius: 50%; border-radius: 50%;
-webkit-transition: background-color .3s; -webkit-transition: background-color .3s;
transition: background-color .3s; transition: background-color .3s;
@@ -4688,7 +4693,7 @@ small {
} }
.btn-floating:hover { .btn-floating:hover {
background-color: #840032 background-color: #24F9DD
} }
.btn-floating:before { .btn-floating:before {
@@ -4890,7 +4895,7 @@ button.btn-floating {
z-index: -1; z-index: -1;
width: 40px; width: 40px;
height: 40px; height: 40px;
background-color: #840032; background-color: #24F9DD;
border-radius: 50%; border-radius: 50%;
-webkit-transform: scale(0); -webkit-transform: scale(0);
transform: scale(0) transform: scale(0)
@@ -4990,7 +4995,7 @@ button.btn-floating {
.dropdown-content li>a, .dropdown-content li>span { .dropdown-content li>a, .dropdown-content li>span {
font-size: 16px; font-size: 16px;
color: #840032; color: #24F9DD;
display: block; display: block;
line-height: 22px; line-height: 22px;
padding: 14px 16px padding: 14px 16px
@@ -5357,7 +5362,7 @@ body.keyboard-focused .dropdown-content li:focus {
.chip:focus { .chip:focus {
outline: none; outline: none;
background-color: #840032; background-color: #24F9DD;
color: #fff color: #fff
} }
@@ -5390,9 +5395,9 @@ body.keyboard-focused .dropdown-content li:focus {
} }
.chips.focus { .chips.focus {
border-bottom: 1px solid #840032; border-bottom: 1px solid #24F9DD;
-webkit-box-shadow: 0 1px 0 0 #840032; -webkit-box-shadow: 0 1px 0 0 #24F9DD;
box-shadow: 0 1px 0 0 #840032 box-shadow: 0 1px 0 0 #24F9DD
} }
.chips:hover { .chips:hover {
@@ -5547,9 +5552,9 @@ input:not([type]):disabled+label, input:not([type])[readonly="readonly"]+label,
} }
input:not([type]):focus:not([readonly]), input[type=text]:not(.browser-default):focus:not([readonly]), input[type=password]:not(.browser-default):focus:not([readonly]), input[type=email]:not(.browser-default):focus:not([readonly]), input[type=url]:not(.browser-default):focus:not([readonly]), input[type=time]:not(.browser-default):focus:not([readonly]), input[type=date]:not(.browser-default):focus:not([readonly]), input[type=datetime]:not(.browser-default):focus:not([readonly]), input[type=datetime-local]:not(.browser-default):focus:not([readonly]), input[type=tel]:not(.browser-default):focus:not([readonly]), input[type=number]:not(.browser-default):focus:not([readonly]), input[type=search]:not(.browser-default):focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { input:not([type]):focus:not([readonly]), input[type=text]:not(.browser-default):focus:not([readonly]), input[type=password]:not(.browser-default):focus:not([readonly]), input[type=email]:not(.browser-default):focus:not([readonly]), input[type=url]:not(.browser-default):focus:not([readonly]), input[type=time]:not(.browser-default):focus:not([readonly]), input[type=date]:not(.browser-default):focus:not([readonly]), input[type=datetime]:not(.browser-default):focus:not([readonly]), input[type=datetime-local]:not(.browser-default):focus:not([readonly]), input[type=tel]:not(.browser-default):focus:not([readonly]), input[type=number]:not(.browser-default):focus:not([readonly]), input[type=search]:not(.browser-default):focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) {
border-bottom: 1px solid #840032; border-bottom: 1px solid #24F9DD;
-webkit-box-shadow: 0 1px 0 0 #840032; -webkit-box-shadow: 0 1px 0 0 #24F9DD;
box-shadow: 0 1px 0 0 #840032 box-shadow: 0 1px 0 0 #24F9DD
} }
input:not([type]):focus:not([readonly])+label, input[type=text]:not(.browser-default):focus:not([readonly])+label, input[type=password]:not(.browser-default):focus:not([readonly])+label, input[type=email]:not(.browser-default):focus:not([readonly])+label, input[type=url]:not(.browser-default):focus:not([readonly])+label, input[type=time]:not(.browser-default):focus:not([readonly])+label, input[type=date]:not(.browser-default):focus:not([readonly])+label, input[type=datetime]:not(.browser-default):focus:not([readonly])+label, input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label, input[type=tel]:not(.browser-default):focus:not([readonly])+label, input[type=number]:not(.browser-default):focus:not([readonly])+label, input[type=search]:not(.browser-default):focus:not([readonly])+label, textarea.materialize-textarea:focus:not([readonly])+label { input:not([type]):focus:not([readonly])+label, input[type=text]:not(.browser-default):focus:not([readonly])+label, input[type=password]:not(.browser-default):focus:not([readonly])+label, input[type=email]:not(.browser-default):focus:not([readonly])+label, input[type=url]:not(.browser-default):focus:not([readonly])+label, input[type=time]:not(.browser-default):focus:not([readonly])+label, input[type=date]:not(.browser-default):focus:not([readonly])+label, input[type=datetime]:not(.browser-default):focus:not([readonly])+label, input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label, input[type=tel]:not(.browser-default):focus:not([readonly])+label, input[type=number]:not(.browser-default):focus:not([readonly])+label, input[type=search]:not(.browser-default):focus:not([readonly])+label, textarea.materialize-textarea:focus:not([readonly])+label {
@@ -5691,7 +5696,7 @@ input:not([type])+label:after, input[type=text]:not(.browser-default)+label:afte
} }
.input-field .prefix.active { .input-field .prefix.active {
color: #840032 color: #24F9DD
} }
.input-field .prefix~input, .input-field .prefix~textarea, .input-field .prefix~label, .input-field .prefix~.validate~label, .input-field .prefix~.helper-text, .input-field .prefix~.autocomplete-content { .input-field .prefix~input, .input-field .prefix~textarea, .input-field .prefix~label, .input-field .prefix~.validate~label, .input-field .prefix~.helper-text, .input-field .prefix~.autocomplete-content {
@@ -5857,11 +5862,11 @@ textarea.materialize-textarea {
} }
[type="radio"]:checked+span:after, [type="radio"].with-gap:checked+span:before, [type="radio"].with-gap:checked+span:after { [type="radio"]:checked+span:after, [type="radio"].with-gap:checked+span:before, [type="radio"].with-gap:checked+span:after {
border: 2px solid #840032 border: 2px solid #24F9DD
} }
[type="radio"]:checked+span:after, [type="radio"].with-gap:checked+span:after { [type="radio"]:checked+span:after, [type="radio"].with-gap:checked+span:after {
background-color: #840032 background-color: #24F9DD
} }
[type="radio"]:checked+span:after { [type="radio"]:checked+span:after {
@@ -5969,8 +5974,8 @@ textarea.materialize-textarea {
height: 22px; height: 22px;
border-top: 2px solid transparent; border-top: 2px solid transparent;
border-left: 2px solid transparent; border-left: 2px solid transparent;
border-right: 2px solid #840032; border-right: 2px solid #24F9DD;
border-bottom: 2px solid #840032; border-bottom: 2px solid #24F9DD;
-webkit-transform: rotate(40deg); -webkit-transform: rotate(40deg);
transform: rotate(40deg); transform: rotate(40deg);
-webkit-backface-visibility: hidden; -webkit-backface-visibility: hidden;
@@ -5991,7 +5996,7 @@ textarea.materialize-textarea {
height: 22px; height: 22px;
border-top: none; border-top: none;
border-left: none; border-left: none;
border-right: 2px solid #840032; border-right: 2px solid #24F9DD;
border-bottom: none; border-bottom: none;
-webkit-transform: rotate(90deg); -webkit-transform: rotate(90deg);
transform: rotate(90deg); transform: rotate(90deg);
@@ -6059,8 +6064,8 @@ textarea.materialize-textarea {
top: 0; top: 0;
width: 20px; width: 20px;
height: 20px; height: 20px;
border: 2px solid #840032; border: 2px solid #24F9DD;
background-color: #840032; background-color: #24F9DD;
z-index: 0 z-index: 0
} }
@@ -6072,8 +6077,8 @@ textarea.materialize-textarea {
[type="checkbox"].filled-in.tabbed:checked:focus+span:not(.lever):after { [type="checkbox"].filled-in.tabbed:checked:focus+span:not(.lever):after {
border-radius: 2px; border-radius: 2px;
background-color: #840032; background-color: #24F9DD;
border-color: #840032 border-color: #24F9DD
} }
[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):before { [type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):before {
@@ -6122,7 +6127,7 @@ textarea.materialize-textarea {
} }
.switch label input[type=checkbox]:checked+.lever:after { .switch label input[type=checkbox]:checked+.lever:after {
background-color: #840032 background-color: #24F9DD
} }
.switch label .lever { .switch label .lever {
@@ -6194,7 +6199,7 @@ select {
background-color: #fff; background-color: #fff;
color: #000; color: #000;
width: 100%; width: 100%;
border: 3px solid #840032; border: 2px ridge #6dbb9b;
height: 30px; height: 30px;
margin-top: 10px; margin-top: 10px;
} }
@@ -6234,7 +6239,7 @@ select {
} }
.select-wrapper input.select-dropdown:focus { .select-wrapper input.select-dropdown:focus {
border-bottom: 1px solid #840032 border-bottom: 1px solid #24F9DD
} }
.select-wrapper .caret { .select-wrapper .caret {
@@ -6402,7 +6407,7 @@ input[type=range]+.thumb {
height: 0; height: 0;
width: 0; width: 0;
border-radius: 50%; border-radius: 50%;
background-color: #840032; background-color: #24F9DD;
margin-left: 7px; margin-left: 7px;
-webkit-transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%; transform-origin: 50% 50%;
@@ -6414,7 +6419,7 @@ input[type=range]+.thumb .value {
display: block; display: block;
width: 30px; width: 30px;
text-align: center; text-align: center;
color: #840032; color: #24F9DD;
font-size: 0; font-size: 0;
-webkit-transform: rotate(45deg); -webkit-transform: rotate(45deg);
transform: rotate(45deg) transform: rotate(45deg)
@@ -6446,13 +6451,13 @@ input[type=range]::-webkit-slider-thumb {
height: 14px; height: 14px;
width: 14px; width: 14px;
border-radius: 50%; border-radius: 50%;
background: #840032; background: #24F9DD;
-webkit-transition: -webkit-box-shadow .3s; -webkit-transition: -webkit-box-shadow .3s;
transition: -webkit-box-shadow .3s; transition: -webkit-box-shadow .3s;
transition: box-shadow .3s; transition: box-shadow .3s;
transition: box-shadow .3s, -webkit-box-shadow .3s; transition: box-shadow .3s, -webkit-box-shadow .3s;
-webkit-appearance: none; -webkit-appearance: none;
background-color: #840032; background-color: #24F9DD;
-webkit-transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%; transform-origin: 50% 50%;
margin: -5px 0 0 0 margin: -5px 0 0 0
@@ -6482,7 +6487,7 @@ input[type=range]::-moz-range-thumb {
height: 14px; height: 14px;
width: 14px; width: 14px;
border-radius: 50%; border-radius: 50%;
background: #840032; background: #24F9DD;
-webkit-transition: -webkit-box-shadow .3s; -webkit-transition: -webkit-box-shadow .3s;
transition: -webkit-box-shadow .3s; transition: -webkit-box-shadow .3s;
transition: box-shadow .3s; transition: box-shadow .3s;
@@ -6520,7 +6525,7 @@ input[type=range]::-ms-thumb {
height: 14px; height: 14px;
width: 14px; width: 14px;
border-radius: 50%; border-radius: 50%;
background: #840032; background: #24F9DD;
-webkit-transition: -webkit-box-shadow .3s; -webkit-transition: -webkit-box-shadow .3s;
transition: -webkit-box-shadow .3s; transition: -webkit-box-shadow .3s;
transition: box-shadow .3s; transition: box-shadow .3s;
@@ -6637,7 +6642,7 @@ input[type=range]::-ms-thumb {
} }
.sidenav li>a.btn-floating:hover { .sidenav li>a.btn-floating:hover {
background-color: #840032 background-color: #24F9DD
} }
.sidenav li>a>i, .sidenav li>a>[class^="mdi-"], .sidenav li>a li>a>[class*="mdi-"], .sidenav li>a>i.material-icons { .sidenav li>a>i, .sidenav li>a>[class^="mdi-"], .sidenav li>a li>a>[class*="mdi-"], .sidenav li>a>i.material-icons {
@@ -6823,7 +6828,7 @@ input[type=range]::-ms-thumb {
width: 100%; width: 100%;
height: 100%; height: 100%;
opacity: 0; opacity: 0;
border-color: #840032 border-color: #24F9DD
} }
.spinner-blue, .spinner-blue-only { .spinner-blue, .spinner-blue-only {
@@ -7736,7 +7741,7 @@ input[type=range]::-ms-thumb {
-webkit-flex: 1 auto; -webkit-flex: 1 auto;
-ms-flex: 1 auto; -ms-flex: 1 auto;
flex: 1 auto; flex: 1 auto;
background-color: #840032; background-color: #24F9DD;
color: #fff; color: #fff;
padding: 20px 22px; padding: 20px 22px;
font-weight: 500 font-weight: 500
@@ -7793,11 +7798,11 @@ input[type=range]::-ms-thumb {
} }
.datepicker-table td.is-today { .datepicker-table td.is-today {
color: #840032 color: #24F9DD
} }
.datepicker-table td.is-selected { .datepicker-table td.is-selected {
background-color: #840032; background-color: #24F9DD;
color: #fff color: #fff
} }
@@ -7837,7 +7842,7 @@ input[type=range]::-ms-thumb {
} }
.datepicker-cancel, .datepicker-clear, .datepicker-today, .datepicker-done { .datepicker-cancel, .datepicker-clear, .datepicker-today, .datepicker-done {
color: #840032; color: #24F9DD;
padding: 0 1rem padding: 0 1rem
} }
@@ -7901,7 +7906,7 @@ input[type=range]::-ms-thumb {
-webkit-flex: 1 auto; -webkit-flex: 1 auto;
-ms-flex: 1 auto; -ms-flex: 1 auto;
flex: 1 auto; flex: 1 auto;
background-color: #840032; background-color: #24F9DD;
padding: 10px; padding: 10px;
font-weight: 300 font-weight: 300
} }
@@ -8017,7 +8022,7 @@ input[type=range]::-ms-thumb {
} }
.timepicker-canvas line { .timepicker-canvas line {
stroke: #840032; stroke: #24F9DD;
stroke-width: 4; stroke-width: 4;
stroke-linecap: round stroke-linecap: round
} }
@@ -8028,12 +8033,12 @@ input[type=range]::-ms-thumb {
.timepicker-canvas-bearing { .timepicker-canvas-bearing {
stroke: none; stroke: none;
fill: #840032 fill: #24F9DD
} }
.timepicker-canvas-bg { .timepicker-canvas-bg {
stroke: none; stroke: none;
fill: #840032 fill: #24F9DD
} }
.timepicker-footer { .timepicker-footer {
@@ -8054,7 +8059,7 @@ input[type=range]::-ms-thumb {
} }
.timepicker-close { .timepicker-close {
color: #840032 color: #24F9DD
} }
.timepicker-clear, .timepicker-close { .timepicker-clear, .timepicker-close {
@@ -8086,3 +8091,4 @@ input[type=range]::-ms-thumb {
margin-top: 1.2rem margin-top: 1.2rem
} }
} }

View File

@@ -1,6 +1,6 @@
html { html {
color: #fff; color: #fff;
font-family: Arial, Helvetica, sans-serif; font-family: 'Fira Mono', monospace;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
} }
@@ -21,7 +21,7 @@ body.pg-loaded>.inner {
/* Style the sidebar - fixed full height */ /* Style the sidebar - fixed full height */
.sidebar { .sidebar {
height: 100%; height: 100%;
width: 160px; width: 200px;
position: fixed; position: fixed;
z-index: 1; z-index: 1;
top: 0; top: 0;
@@ -34,8 +34,8 @@ body.pg-loaded>.inner {
/* Style sidebar links */ /* Style sidebar links */
.sidebar a { .sidebar a {
text-decoration: none; text-decoration: none;
font-size: 20px; font-size: 18px;
color: #840032; color: #25D4DC;
display: block; display: block;
} }
@@ -67,11 +67,11 @@ body.pg-loaded>.inner {
#mainContent { #mainContent {
position: fixed; position: fixed;
z-index: 1; z-index: 1;
left: 160px; left: 184px;
top: 0; top: 0;
right: 0; right: 0;
bottom: 20px; bottom: 20px;
background-color: #212529; background-color: #293838;
overflow: auto; overflow: auto;
} }
@@ -188,12 +188,12 @@ body.pg-loaded>.inner {
.modalDialog { .modalDialog {
display: none; display: none;
border-bottom: 3px solid #7A1336 !important; border-bottom: 3px solid #28709F !important;
border-radius: 0px !important; border-radius: 0px !important;
} }
.iziModal-header { .iziModal-header {
background: #7A1336 !important; background: #28709F !important;
} }
#walletsToolbar { #walletsToolbar {
@@ -223,7 +223,7 @@ div.loadingText {
} }
div.sidebar svg { div.sidebar svg {
color: #7A1336; color: #28709F;
} }
#tableTransactionsForAll_filter { #tableTransactionsForAll_filter {
@@ -252,7 +252,7 @@ div.sidebar svg {
} }
.dataTables_scrollBody .transactionsBlockNum { .dataTables_scrollBody .transactionsBlockNum {
color: #f92472; color: #24f9dd;
cursor: pointer; cursor: pointer;
} }
@@ -286,11 +286,12 @@ div.sidebar svg {
.sendTXInfo { .sendTXInfo {
height: 30px; height: 30px;
color:#b1aa58;
} }
.sendTXInfo label { .sendTXInfo label {
line-height: 30px; line-height: 30px;
font-size: 1.1em; font-size: 1em;
} }
.txInfo label { .txInfo label {
@@ -300,7 +301,7 @@ div.sidebar svg {
} }
.txInfo label+label { .txInfo label+label {
color: #7A1336; color: #28709F;
margin-left: 0px; margin-left: 0px;
} }
@@ -313,13 +314,13 @@ div.sidebar svg {
#toAddressInfo, #toAddressInfo,
#valueToSendInfo, #valueToSendInfo,
#feeToPayInfo { #feeToPayInfo {
color: #ee6e73; color: #24f9dd;
margin-left: 5px; margin-left: 5px;
margin-right: 5px; margin-right: 5px;
} }
.accountName { .accountName {
color: #7A1336; color: #28709F;
} }
.accountAddr { .accountAddr {
@@ -430,7 +431,7 @@ div.noAddressWrapper {
} }
.etho-red { .etho-red {
background-color: #7A1336 !important; background-color: #28709F !important;
} }
#chartMarketPrice { #chartMarketPrice {
@@ -440,3 +441,4 @@ div.noAddressWrapper {
#addrQRCode { #addrQRCode {
text-align: center; text-align: center;
} }

View File

@@ -5,8 +5,8 @@
.dt-button { .dt-button {
margin-left: 10px !important; margin-left: 10px !important;
color: #ffffff !important; color: #ffffff !important;
background-color: #7A1336 !important; background-color: #13737a !important;
border: 1px solid #450118 !important; border: 1px solid #012c45 !important;
background-image: none !important; background-image: none !important;
} }
@@ -15,8 +15,8 @@
.dt-button.active, .dt-button.active,
.open .dropdown-toggle.dt-button { .open .dropdown-toggle.dt-button {
color: #ffffff !important; color: #ffffff !important;
background-color: #B01549 !important; background-color: #1594b0 !important;
border: 1px solid #450118 !important; border: 1px solid #012445 !important;
background-image: none !important; background-image: none !important;
} }
@@ -40,12 +40,12 @@ fieldset[disabled] .dt-button:active,
.dt-button.disabled.active, .dt-button.disabled.active,
.dt-button[disabled].active, .dt-button[disabled].active,
fieldset[disabled] .dt-button.active { fieldset[disabled] .dt-button.active {
background-color: #7A1336 !important; background-color: #28709F !important;
border-color: #450118 !important; border-color: #013045 !important;
} }
.dt-button .badge { .dt-button .badge {
color: #7A1336 !important; color: #28709F !important;
background-color: #ffffff !important; background-color: #ffffff !important;
} }
@@ -410,3 +410,4 @@ table.dataTable td {
text-align: center; } text-align: center; }
.dataTables_wrapper .dataTables_filter { .dataTables_wrapper .dataTables_filter {
margin-top: 0.5em; } } margin-top: 0.5em; } }

View File

@@ -28,31 +28,105 @@
<br> <br>
<center> <center>
<h2 style="color:white; margin-top: 12px">Buy ETHO</h2> <h2 style="color:white; margin-top: 12px">Markets</h2>
</center> </center>
<br> <br>
<div class="ui grid container"> <div class="ui grid container">
<div class="four column row"> <div class="four column row">
<div class="column"> <div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.probit.com/r/41540915')">ProBit</button> <button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.probit.com/r/26069458')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/477.png" alt="ProBit Logo" style="width: 24px; height: 24px; vertical-align: middle;">
<span style="vertical-align: middle;">ProBit</span>
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.kucoin.com/ucenter/signup?rcode=rJUCF6W')">KuCoin</button> <button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://xeggex.com?ref=662d0099f852ffbc4da4f8bf')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/7500.png" alt="Xeggex Logo" style="width: 24px; height: 24px; vertical-align: middle;">
<span style="vertical-align: middle;">Xeggex</span>
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://mercatox.com/?referrer=467736')">Mercatox</button> <button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://mercatox.com/?referrer=765491')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/213.png" alt="Mercatox Logo" style="width: 24px; height: 24px; vertical-align: middle;">
<span style="vertical-align: middle;">Mercatox</span>
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://graviex.net')">Graviex</button> <button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://graviex.net')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/419.png" alt="Graviex Logo" style="width: 24px; height: 24px; vertical-align: middle;">
<span style="vertical-align: middle;">Graviex</span>
</button>
</div> </div>
</div> </div>
</div> </div>
<div class="ui grid container"> <div class="ui grid container">
<div class="one column row"> <div class="four column row">
<div class="column"> <div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://app.stex.com?ref=26491159')">Stex</button> <button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.dextools.io/app/en/bnb/pair-explorer/0xb77cf2bd2571c3e58c79107cbc155a7f9ca28b75')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/6706.png" alt="Pancake Logo" style="width: 24px; height: 24px; display: inline-block; vertical-align: middle;">
<span style="vertical-align: middle;">PancakeSwap v2 ETHO / USDT</span>
</button>
</div>
<div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.dextools.io/app/en/bnb/pair-explorer/0xef2b9739de830bdc651ae2aa146762c499cbf7c1')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/6706.png" alt="Pancake Logo" style="width: 24px; height: 24px; display: inline-block; vertical-align: middle;">
<span style="vertical-align: middle;">PancakeSwap v3 ETHO / USDT</span>
</button>
</div>
<div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.dextools.io/app/en/ether/pair-explorer/0xa6dc0957e7c1935e80f5ec746be85eb4f0753dae')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/1348.png" alt="Uniswap Logo" style="width: 24px; height: 24px; display: inline-block; vertical-align: middle;">
<span style="vertical-align: middle;">Uniswap ETHO / WETH</span>
</button>
</div>
<div class="column">
<button class="aboutbutton ui violet inverted button" type="button" onclick="require('electron').shell.openExternal('https://www.dextools.io/app/en/ether/pair-explorer/0xb77cf2bd2571c3e58c79107cbc155a7f9ca28b75')">
<img src="https://s2.coinmarketcap.com/static/img/exchanges/64x64/1348.png" alt="Uniswap Logo" style="width: 24px; height: 24px; display: inline-block; vertical-align: middle;">
<span style="vertical-align: middle;">Uniswap ETHO / USDT</span>
</button>
</div>
</div>
</div>
<br>
<center>
<h2 style="color:white; margin-top: 15px">Links 🌐</h2>
</center>
<br>
<div class="ui grid container">
<div class="four column row">
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://ethoprotocol.com')">
<i class="fas fa-globe"></i> Etho Website
</button>
</div>
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://uploads.ethoprotocol.com')">
<i class="fas fa-server"></i> Etho Hosting
</button>
</div>
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://github.com/Ether1Project')">
<i class="fab fa-github"></i> Etho Github
</button>
</div>
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://github.com/Ether1Project/Ethoprotocol')">
<i class="fab fa-github"></i> Etho Geth
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -60,32 +134,7 @@
<br> <br>
<center> <center>
<h2 style="color:white; margin-top: 15px">Etho Protocol Links</h2> <h2 style="color:white; margin-top: 15px">Social Media 📱</h2>
</center>
<br>
<div class="ui grid container">
<div class="four column row">
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://ethoprotocol.com')">Etho Protocol Website</button>
</div>
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://uploads.ethoprotocol.com/')">ethoFS Website</button>
</div>
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://github.com/Ether1Project')">Etho Protocol Github</button>
</div>
<div class="column">
<button class="aboutbutton ui inverted green button" type="button" onclick="require('electron').shell.openExternal('https://github.com/Ether1Project/Ether1')">Etho Protocol Geth</button>
</div>
</div>
</div>
<br>
<center>
<h2 style="color:white; margin-top: 15px">Etho Protocol Social Media</h2>
</center> </center>
<br> <br>
@@ -94,26 +143,39 @@
<div class="doubling six column row"> <div class="doubling six column row">
<div class="column"> <div class="column">
<!-- Etho Protocol --> <!-- Etho Protocol -->
<button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://discord.gg/Ap5FmXc')">Discord</button> <button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://discord.com/invite/VanQ23KMZv')">
<i class="fab fa-discord"></i> Discord
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://twitter.com/EthoProtocol/')">Twitter</button> <button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://twitter.com/EthoProtocol/')">
<i class="fab fa-twitter"></i> Twitter
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://ethoprotocol.medium.com')">Medium</button> <button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://ethoprotocol.medium.com')">
<i class="fab fa-medium"></i> Medium
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://t.me/Ether_1')">Telegram</button> <button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://t.me/Ether_1')">
<i class="fab fa-telegram"></i> Telegram
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://ethoprotocol.com/blog/')">News Blog</button> <button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('https://ethoprotocol.com/blog/')">
<i class="far fa-newspaper"></i> Blog
</button>
</div> </div>
<div class="column"> <div class="column">
<button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('mailto:admin@ethoprotocol.com')">Email</button> <button class="aboutbutton ui inverted blue button" type="button" onclick="require('electron').shell.openExternal('mailto:admin@ethoprotocol.com')">
<i class="far fa-envelope"></i> Email
</button>
</div> </div>
</div> </div>
</div> </div>
<script> <script>
$('.message .close') $('.message .close')
.on('click', function() { .on('click', function() {
@@ -122,3 +184,4 @@
.transition('fade'); .transition('fade');
}); });
</script> </script>

View File

@@ -3,44 +3,44 @@
<div class="col s12 m3"> <div class="col s12 m3">
<div class="card etho-red"> <div class="card etho-red">
<div class="card-content white-text"> <div class="card-content white-text">
<span class="card-title">ETHO to USD</span> <span class="card-title">ETHO to USD 💵</span>
<p id="ETHOToUSD">N/A</p> <p id="ETHOToUSD">N/A</p>
</div> </div>
<div class="card-action"> <div class="card-action">
<p id="changeUSD">This is a link</p> 7 days change: <p id="changeUSD" class="cardValue">N/A 🔗</p>
</div> </div>
</div> </div>
</div><!-- col-3 --> </div><!-- col-3 -->
<div class="col s12 m3"> <div class="col s12 m3">
<div class="card etho-red"> <div class="card etho-red">
<div class="card-content white-text"> <div class="card-content white-text">
<span class="card-title">ETHO to BTC</span> <span class="card-title">ETHO to BTC</span>
<p id="ETHOToBTC">N/A</p> <p id="ETHOToBTC">N/A</p>
</div> </div>
<div class="card-action"> <div class="card-action">
<p id="changeBTC">This is a link</p> 7 days change:<p id="changeBTC" class="cardValue">N/A 🔗</p>
</div> </div>
</div> </div>
</div><!-- col-3 --> </div><!-- col-3 -->
<div class="col s12 m3"> <div class="col s12 m3">
<div class="card etho-red"> <div class="card etho-red">
<div class="card-content white-text"> <div class="card-content white-text">
<span class="card-title">Marketcap</span> <span class="card-title">Marketcap 💰</span>
<p id="marketcap">N/A</p> <p id="marketcap">N/A</p>
</div> </div>
<div class="card-action"> <div class="card-action">
<p id="changeMarketcap">This is a link</p> high 24h: <p id="changeMarketcap" class="cardValue">N/A 🔗</p>
</div> </div>
</div> </div>
</div><!-- col-3 --> </div><!-- col-3 -->
<div class="col s12 m3"> <div class="col s12 m3">
<div class="card etho-red"> <div class="card etho-red">
<div class="card-content white-text"> <div class="card-content white-text">
<span class="card-title">Daily Volume</span> <span class="card-title">Daily Volume 📊</span>
<p id="dailyVolume">N/A</p> <p id="dailyVolume">N/A</p>
</div> </div>
<div class="card-action"> <div class="card-action">
<p id="changeVolume">This is a link</p> all time high:<p id="changeVolume" class="cardValue">N/A 🔗</p>
</div> </div>
</div> </div>
</div><!-- col-3 --> </div><!-- col-3 -->
@@ -51,3 +51,4 @@
<a class="chart-style"></a> <a class="chart-style"></a>
</div> </div>
<span id="nodestorage" style="display:none;">Loading</span> <span id="nodestorage" style="display:none;">Loading</span>

View File

@@ -3,15 +3,16 @@
<form class="col s12"> <form class="col s12">
<div class="row"> <div class="row">
<div class="input-field col s6"> <div class="input-field col s6">
<label for="sendToAddress" class="active">Sender:</label>
<select id="sendFromAddress"> <select id="sendFromAddress">
{{#addressData}} {{#addressData}}
<option value="{{address}}">{{name}} - {{address}}</option> <option value="{{address}}">{{balance}} | {{name}} | {{address}}</option>
{{/addressData}} {{/addressData}}
</select> </select>
<small id="sendFromAddressName" class="form-text text-muted"></small>
</div> </div>
<div class="input-field col s6"> <div class="input-field col s6">
<label for="sendToAddress" class="active">To address:</label> <label for="sendToAddress" class="active">Recipient:</label>
<div class="addressInputWrapper"> <div class="addressInputWrapper">
<input id="sendToAddress" placeholder="recipient address" type="text"> <input id="sendToAddress" placeholder="recipient address" type="text">
<button type="button" class="btn button3 btnSendToolButton" id="btnAddToAddressBook"> <button type="button" class="btn button3 btnSendToolButton" id="btnAddToAddressBook">
@@ -26,12 +27,16 @@
</div> </div>
<div class="row"> <div class="row">
<div class="input-field col s6"> <div class="input-field col s6">
<label for="sendAmmount" style="display:flex">
<img height="22px" width="22px" style="margin: 11px 6px 0 2px;" src="https://raw.githubusercontent.com/Ether1Project/ETHO-Protocol-Branding/master/NewLogo2024/newethologo_32.png" alt="ETHO" />
<input id="sendAmmount" placeholder="0" type="number"> <input id="sendAmmount" placeholder="0" type="number">
</label>
<label for="sendAmmount" class="active">Amount:</label> <label for="sendAmmount" class="active">Amount:</label>
</div> </div>
<div class="input-field col s6"> <div class="input-field col s6">
<div class="input-field col s12"> <div class="input-field col s12">
<span id="sendMaxAmmount">0</span><span>ETHO</span> <span id="sendMaxAmmount">0</span><img height="22px" width="22px" style="margin-bottom: -6px;" src="https://raw.githubusercontent.com/Ether1Project/ETHO-Protocol-Branding/master/NewLogo2024/newethologo_32.png" alt="ETHO" />Total
<button type="button" class="button4" id="btnSendAll">ALL</button> <button type="button" class="button4" id="btnSendAll">ALL</button>
</div> </div>
</div> </div>

View File

@@ -16,8 +16,10 @@
</button> </button>
<div id="sumBalance"> <div id="sumBalance">
<span class="sumBalance" id="labelSumBalance">{{sumBalance}}</span> <span class="sumBalance" id="labelSumBalance">{{sumBalance}}</span>
<span class="sumCurrency" id="labelSumCurrency">ETHO</span> <span class="sumCurrency" id="labelSumCurrency"><img height="22px" width="22px" style="margin-bottom: -6px;margin-left:-7px;margin-right:-2px;" src="https://raw.githubusercontent.com/Ether1Project/ETHO-Protocol-Branding/master/NewLogo2024/newethologo_32.png" alt="ETHO" />
<span class="sumDollars" id="labelSumDollars">/ 0.00 $ / 0.00 $ per ETHO</span></div> </span>
<span class="sumDollars" id="labelSumDollars">= 0.00 💵 | 0.00 💵 per
</span><img height="22px" width="22px" style="margin-bottom: -6px;margin-left:8px;margin-right:2px;" src="https://raw.githubusercontent.com/Ether1Project/ETHO-Protocol-Branding/master/NewLogo2024/newethologo_32.png" alt="ETHO" />ETHO</div>
</div> </div>
<div id="addressList" class="{{#if addressData.length}}walletsWrapper{{else}}noWalletsWrapper{{/if}}"> <div id="addressList" class="{{#if addressData.length}}walletsWrapper{{else}}noWalletsWrapper{{/if}}">
{{#if addressData.length}} {{#if addressData.length}}
@@ -51,7 +53,7 @@
<i class="fas fa-times"></i> <i class="fas fa-times"></i>
</button> </button>
</td> </td>
<td>{{balance}}</td> <td>{{balance}} <img height="22px" width="22px" style="margin-bottom: -6px;margin-left:-5px;" src="https://raw.githubusercontent.com/Ether1Project/ETHO-Protocol-Branding/master/NewLogo2024/newethologo_32.png" alt="ETHO" /></td>
</tr> </tr>
{{/addressData}} {{/addressData}}
</tbody> </tbody>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>$ETHO Desktop Wallet</title> <title>$ETHO Desktop Wallet</title>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;500;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="./assets/styles/materialize.min.css"> <link rel="stylesheet" href="./assets/styles/materialize.min.css">
<link rel="stylesheet" href="./assets/styles/datatables.min.css"> <link rel="stylesheet" href="./assets/styles/datatables.min.css">
<link rel="stylesheet" href="./assets/styles/iziModal.min.css"> <link rel="stylesheet" href="./assets/styles/iziModal.min.css">
@@ -65,24 +65,43 @@
<body> <body>
<script> <script>
var loadingHtml = "<div class='spinner'><div class='bounce bounce1'></div><div class='bounce bounce2'></div><div class='bounce bounce3'></div></div><div class='loadingText' id='startextEL'>Loading Resources...</div>";
var loading_screen = pleaseWait({ var loading_screen = pleaseWait({
logo: "assets/images/logo-glitch.gif", logo: "assets/images/logo-glitch.gif",
backgroundColor: '#000000', backgroundColor: '#000000',
loadingHtml: "<div class='spinner'><div class='bounce bounce1'></div><div class='bounce bounce2'></div><div class='bounce bounce3'></div></div><div class='loadingText'>Starting the node and loading app, please wait...</div>" loadingHtml: loadingHtml
}); });
$(document).on("onGethReady", function() { var timeouts = [
{ text: "Starting Node...", delay: 1250 },
{ text: "Connecting to Network...", delay: 6400 },
{ text: "Updating...", delay: 7320 },
{ text: "Launching...", delay: 7400 }
];
timeouts.forEach((item, index) => {
setTimeout(() => {
document.getElementById('startextEL').innerHTML = item.text;
}, item.delay + Math.random() * 50 * index);
});
$(document).on("onGethReady", function () {
setTimeout(() => { setTimeout(() => {
loading_screen.finish(); loading_screen.finish();
}, 4000); }, 5500);
}); });
$(window).on("beforeunload", function() { $(window).on("beforeunload", function () {
EthoBlockchain.closeConnection(); EthoBlockchain.closeConnection();
}) });
</script> </script>
<div class="inner"> <div class="inner">
<!-- The sidebar --> <!-- The sidebar -->
<div class="ui left demo vertical inverted sidebar labeled icon menu"> <div class="ui left demo vertical inverted sidebar labeled icon menu">

View File

@@ -74,6 +74,7 @@ locker.lock().then(function() {
// code. You can also put them in separate files and require them here. // code. You can also put them in separate files and require them here.
// listen for request to get template // listen for request to get template
// get the template content from file // get the template content from file
ipcMain.on("getTemplateContent", (event, arg) => { ipcMain.on("getTemplateContent", (event, arg) => {
event.returnValue = fs.readFileSync(path.join(app.getAppPath(), "assets/templates/") + arg, "utf8"); event.returnValue = fs.readFileSync(path.join(app.getAppPath(), "assets/templates/") + arg, "utf8");

View File

@@ -1,4 +1,4 @@
const {app, dialog, ipcMain} = require("electron"); const { app, dialog, ipcMain } = require("electron");
const admZip = require("adm-zip"); const admZip = require("adm-zip");
const path = require("path"); const path = require("path");
const fs = require("fs-extra"); const fs = require("fs-extra");
@@ -8,24 +8,49 @@ class Accounts {
constructor() {} constructor() {}
getKeyStoreLocation() { getKeyStoreLocation() {
switch (os.type()) { const platform = os.type();
let keystorePath;
switch (platform) {
case "Darwin": case "Darwin":
return path.join(os.homedir(), "Library", "Ether1", "keystore"); keystorePath = path.join(os.homedir(), "Library", "Ether1", "keystore");
break;
case "Windows_NT":
if (process.env.APPDATA) {
keystorePath = path.join(process.env.APPDATA.replace('Roaming', 'Local'), "Ether1", "keystore");
} else {
keystorePath = path.join(app.getPath("userData"), "Ether1", "keystore");
}
break;
case "Linux":
keystorePath = path.join(app.getPath("home"), ".ether1", "keystore");
break; break;
default: default:
return path.join(process.env.APPDATA.replace('Roaming', 'Local'), "Ether1", "keystore"); keystorePath = path.join(app.getPath("userData"), "Ether1", "keystore");
break;
} }
return Promise.resolve(keystorePath);
} }
exportAccounts() { exportAccounts() {
var savePath = dialog.showSaveDialog({ dialog.showSaveDialog({
defaultPath: path.join(app.getPath("documents"), "accounts.zip") defaultPath: path.join(app.getPath("documents"), "accounts.zip")
}); }).then(result => {
if (!result.canceled) {
if (savePath) { const savePath = result.filePath;
const accPath = EthoAccounts.getKeyStoreLocation(); const accPathPromise = this.getKeyStoreLocation();
accPathPromise.then(accPath => {
fs.readdir(accPath, function (err, files) { fs.readdir(accPath, function (err, files) {
if (err) {
console.error("Error reading directory:", err);
// Handle the error, e.g., show an error dialog to the user
return;
}
var zip = new admZip(); var zip = new admZip();
for (let filePath of files) { for (let filePath of files) {
@@ -35,95 +60,130 @@ class Accounts {
// store zip to path // store zip to path
zip.writeZip(savePath); zip.writeZip(savePath);
}); });
}).catch(err => {
console.error("Error getting keystore location:", err);
// Handle the error, e.g., show an error dialog to the user
});
} }
}).catch(err => {
console.error("Error showing save dialog:", err);
// Handle the error, e.g., show an error dialog to the user
});
} }
importAccounts(accountsFile) {
var extName = path.extname(accountsFile).toUpperCase();
const accPath = EthoAccounts.getKeyStoreLocation();
if (extName == ".ZIP") { async importAccounts() {
var zip = new admZip(accountsFile);
zip.extractAllTo(accPath, true);
return {success: true, text: "Accounts ware successfully imported."};
} else {
try { try {
fs.copySync(accountsFile, path.join(accPath, path.basename(accountsFile))); const openPath = await dialog.showOpenDialog({
return {success: true, text: "Account was successfully imported."};
} catch (err) {
return {success: false, text: err};
}
}
}
saveAccount(account) {
fs.writeFile(path.join(tEthoAccountshis.getKeyStoreLocation(), "0x" + account.address), JSON.stringify(account), "utf8", function () {
// file was written
});
}
deteteAccount(address) {
return new Promise((resolve, reject) => {
const accPath = EthoAccounts.getKeyStoreLocation();
fs.readdir(accPath, function (err, files) {
let deleteFilePath = null;
if (err) reject(err);
else {
const searchStr = String(address).substring(2, String(address).length).toLowerCase();
for (let filePath of files) {
if (String(filePath).toLowerCase().indexOf(searchStr) > -1) {
deleteFilePath = filePath;
break;
}
}
if (deleteFilePath) {
fs.unlink(path.join(accPath, deleteFilePath), function(error) {
if (error) reject(error);
else resolve(true);
});
} else resolve(true)
}
});
});
}
}
ipcMain.on("exportAccounts", (event, arg) => {
EthoAccounts.exportAccounts();
});
ipcMain.on("importAccounts", (event, arg) => {
var openPath = dialog.showOpenDialog({
defaultPath: app.getPath("documents"), defaultPath: app.getPath("documents"),
filters: [ filters: [
{ {
name: "archive", name: "archive",
extensions: ["zip"] extensions: ["zip"]
}, { },
{
name: "json", name: "json",
extensions: ["json"] extensions: ["json"]
}, { },
{
name: "All", name: "All",
extensions: ["*"] extensions: ["*"]
} }
] ]
}); });
if (openPath) { if (!openPath.canceled && openPath.filePaths.length > 0) {
event.returnValue = EthoAccounts.importAccounts(openPath[0]); const accPath = await this.getKeyStoreLocation();
const extName = path.extname(openPath.filePaths[0]).toUpperCase();
if (extName === ".ZIP") {
const zip = new admZip(openPath.filePaths[0]);
zip.extractAllTo(accPath, true);
return { success: true, text: "Accounts were successfully imported." };
} else { } else {
event.returnValue = {}; await fs.copy(openPath.filePaths[0], path.join(accPath, path.basename(openPath.filePaths[0])));
return { success: true, text: "Account was successfully imported." };
}
} else {
return { success: false, text: "No file selected for import." };
}
} catch (error) {
return { success: false, text: error.message };
}
}
saveAccount(account) {
fs.writeFile(path.join(this.getKeyStoreLocation(), "0x" + account.address), JSON.stringify(account), "utf8", function () {
// file was written
});
}
deteteAccount(address) {
return new Promise((resolve, reject) => {
const accPathPromise = this.getKeyStoreLocation();
accPathPromise.then(accPath => {
fs.readdir(accPath, function (err, files) {
if (err) {
reject(err);
return;
}
let deleteFilePath = null;
const searchStr = String(address).substring(2, String(address).length).toLowerCase();
for (let filePath of files) {
if (String(filePath).toLowerCase().indexOf(searchStr) > -1) {
deleteFilePath = filePath;
break;
}
}
if (deleteFilePath) {
fs.unlink(path.join(accPath, deleteFilePath), function (error) {
if (error) reject(error);
else resolve(true);
});
} else {
resolve(true);
}
});
}).catch(err => {
reject(err);
});
});
}
}
ipcMain.on("exportAccounts", (event, arg) => {
const ethoAccounts = new Accounts();
ethoAccounts.exportAccounts();
});
ipcMain.on("importAccounts", async (event, arg) => {
const ethoAccounts = new Accounts();
try {
const importResult = await ethoAccounts.importAccounts();
event.reply("importAccountsReply", importResult);
} catch (error) {
event.reply("importAccountsReply", { success: false, text: error.message });
} }
}); });
ipcMain.on("saveAccount", (event, arg) => { ipcMain.on("saveAccount", (event, arg) => {
EthoAccounts.saveAccount(arg); const ethoAccounts = new Accounts();
ethoAccounts.saveAccount(arg);
event.returnValue = true; event.returnValue = true;
}); });
ipcMain.on("deteteAccount", (event, arg) => { ipcMain.on("deteteAccount", (event, arg) => {
EthoAccounts.deteteAccount(arg) const ethoAccounts = new Accounts();
ethoAccounts.deteteAccount(arg)
.then((res) => { .then((res) => {
event.returnValue = res; event.returnValue = res;
}) })
@@ -132,4 +192,3 @@ ipcMain.on("deteteAccount", (event, arg) => {
}); });
}); });
EthoAccounts = new Accounts();

View File

@@ -44,6 +44,8 @@ class Geth {
if (this.logGethEvents) { if (this.logGethEvents) {
this.logStream.write(text); this.logStream.write(text);
} }
// Print log messages to the console
//console.log("geth..."+text);
} }
startGeth() { startGeth() {

View File

@@ -1,6 +1,6 @@
{ {
"name": "EthoWallet", "name": "EthoWallet",
"version": "2.4.7", "version": "3.0.0",
"description": "Desktop wallet for Etho Protocol ($ETHO)", "description": "Desktop wallet for Etho Protocol ($ETHO)",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {

View File

@@ -13,10 +13,10 @@ class Markets {
$("#marketcap").html(data.market_data.market_cap.usd.toFixed(0) + " $ (" + data.market_cap_rank + ")"); $("#marketcap").html(data.market_data.market_cap.usd.toFixed(0) + " $ (" + data.market_cap_rank + ")");
$("#dailyVolume").html(data.market_data.total_volume.usd.toFixed(0) + " $"); $("#dailyVolume").html(data.market_data.total_volume.usd.toFixed(0) + " $");
$("#changeUSD").html("7 days change: " + data.market_data.price_change_percentage_7d_in_currency.usd.toFixed(2) + "%"); $("#changeUSD").html(data.market_data.price_change_percentage_7d_in_currency.usd.toFixed(2) + "%");
$("#changeBTC").html("7 days change: " + data.market_data.price_change_percentage_7d_in_currency.btc.toFixed(2) + "%"); $("#changeBTC").html(data.market_data.price_change_percentage_7d_in_currency.btc.toFixed(2) + "%");
$("#changeMarketcap").html("high 24h: " + data.market_data.high_24h.usd.toFixed(5) + " $"); $("#changeMarketcap").html(data.market_data.high_24h.usd.toFixed(5) + "$");
$("#changeVolume").html("all time high: " + data.market_data.ath.usd.toFixed(5) + " $"); $("#changeVolume").html(data.market_data.ath.usd.toFixed(5) + "$");
new Chart(document.getElementById("chartMarketPriceCanvas"), { new Chart(document.getElementById("chartMarketPriceCanvas"), {
type: "line", type: "line",
@@ -29,7 +29,7 @@ class Markets {
fill: true, fill: true,
borderWidth: 3, borderWidth: 3,
pointRadius: 0, pointRadius: 0,
borderColor: "#7A1336" borderColor: "#25D4DC"
} }
] ]
}, },
@@ -55,7 +55,7 @@ class Markets {
} }
}, },
gridLines: { gridLines: {
color: "rgba(255,255,255,.08)" color: "rgba(255,255,255,.35)"
} }
} }
], ],

View File

@@ -57,17 +57,29 @@ class SendTransaction {
$(document).on("render_send", function () { $(document).on("render_send", function () {
//$("select").formSelect({classes: "fromAddressSelect"}); //$("select").formSelect({classes: "fromAddressSelect"});
setTimeout(() => {
var optionText = $("#sendFromAddress").find("option:selected").text();
var selectedAddressBalance = optionText.substr(0, optionText.indexOf("|"));
console.log("selectedAddressBalance", selectedAddressBalance);
$("#sendMaxAmmount").html(parseFloat(selectedAddressBalance));
//$("#sendAmmount").val(selectedAddressBalance);
}, 500);
$("#sendFromAddress").on("change", function () { $("#sendFromAddress").on("change", function () {
var optionText = $(this).find("option:selected").text(); var optionText = $(this).find("option:selected").text();
var addrName = optionText.substr(0, optionText.indexOf("-"));
var addrValue = optionText.substr(optionText.indexOf("-") + 1);
$(".fromAddressSelect input").val(addrValue.trim());
$("#sendFromAddressName").html(addrName.trim());
web3Local.eth.getBalance(this.value, function (error, balance) { var addrBalance = optionText.substr(0, optionText.indexOf("|"));
$("#sendMaxAmmount").html(parseFloat(web3Local.utils.fromWei(balance, "ether"))); var addrName = optionText.substr(optionText.indexOf("|")+1);
}); var addrValue = addrName.substr(addrName.indexOf("|")+1);
$(".fromAddressSelect input").val(addrValue.trim());
$("#sendMaxAmmount").html(parseFloat(addrBalance));
}); });
$("#btnSendAll").off("click").on("click", function () { $("#btnSendAll").off("click").on("click", function () {
@@ -98,10 +110,28 @@ $(document).on("render_send", function () {
var adddressObject = {}; var adddressObject = {};
adddressObject.address = key; adddressObject.address = key;
adddressObject.name = addressBook[key]; adddressObject.name = addressBook[key];
adddressObject.balance = 0;
addressList.addressData.push(adddressObject); addressList.addressData.push(adddressObject);
web3Local.eth.getBalance(key, function (error, balance) {
if (error) {
console.error("Error fetching balance:", error);
return;
}
// Update the balance display
var etherBalance = web3Local.utils.fromWei(balance, "ether");
//$("#sendFromAddressBalance").text("Balance: " + etherBalance + " ETHO");
adddressObject.balance = parseFloat(etherBalance)
});
} }
} }
$("#dlgAddressList").iziModal({width: "800px"}); $("#dlgAddressList").iziModal({width: "800px"});
EthoMainGUI.renderTemplate("addresslist.html", addressList, $("#dlgAddressListBody")); EthoMainGUI.renderTemplate("addresslist.html", addressList, $("#dlgAddressListBody"));
$("#dlgAddressList").iziModal("open"); $("#dlgAddressList").iziModal("open");

View File

@@ -9,7 +9,7 @@ SyncProgress = new ProgressBar.Line("#syncProgress", {
strokeWidth: 6, strokeWidth: 6,
easing: "easeInOut", easing: "easeInOut",
duration: 1400, duration: 1400,
color: "#7A1336", color: "#25D4DC",
trailColor: "#eee", trailColor: "#eee",
trailWidth: 1, trailWidth: 1,
text: { text: {

View File

@@ -114,7 +114,7 @@ class Wallets {
$(document).trigger("render_wallets"); $(document).trigger("render_wallets");
EthoWallets.enableButtonTooltips(); EthoWallets.enableButtonTooltips();
$("#labelSumDollars").html(vsprintf("/ %.2f $ / %.4f $ per ETHO", [ $("#labelSumDollars").html(vsprintf("= %.2f 💵 | %.4f 💵 per", [
data.sumBalance * EthoWallets._getPrice(), data.sumBalance * EthoWallets._getPrice(),
EthoWallets._getPrice() EthoWallets._getPrice()
])); ]));
@@ -231,15 +231,23 @@ $(document).on("render_wallets", function () {
ipcRenderer.send("exportAccounts", {}); ipcRenderer.send("exportAccounts", {});
}); });
$("#btnImportAccounts").off("click").on("click", function () { $("#btnImportAccounts").off("click").on("click", function () {
var ImportResult = ipcRenderer.sendSync("importAccounts", {}); ipcRenderer.send("importAccounts");
if (ImportResult.success) { ipcRenderer.once("importAccountsReply", (event, importResult) => {
iziToast.success({title: "Imported", message: ImportResult.text, position: "topRight", timeout: 2000}); if (importResult.success) {
} else if (ImportResult.success == false) { iziToast.success({ title: "Imported", message: importResult.text, position: "topRight", timeout: 2000 });
EthoMainGUI.showGeneralError(ImportResult.text); // Reload wallets after successful import
setTimeout(() => {
EthoWallets.renderWalletsState();
}, 500);
} else {
EthoMainGUI.showGeneralError(importResult.text);
} }
}); });
});
$("#btnImportFromPrivateKey").off("click").on("click", function () { $("#btnImportFromPrivateKey").off("click").on("click", function () {
$("#dlgImportFromPrivateKey").iziModal(); $("#dlgImportFromPrivateKey").iziModal();