feat: 后端全量更新 - 含所有本次需求

- Contract.php: 返回合约账户余额(balance_contract)
- My.php: 地址管理增加BTC/ETH
- AppContract.php: 一键平仓(closeall)
- AppProxy.php: 代理专属注册链接 + 分级权限(L1/L2)
- site.php: 手续费减半(0.018→0.009)
- agent_permission_setup.sql: 代理权限SQL
- crypto_news_crawler.py: 新闻自动采集脚本
This commit is contained in:
li
2026-03-30 20:16:32 +08:00
commit 1b24994e74
6721 changed files with 1308571 additions and 0 deletions
+99
View File
@@ -0,0 +1,99 @@
/* overrides main.css */
p {
font-size: 100%;
line-height: normal;
}
pre {
white-space: pre-wrap;
}
.fineprint
{
float: right;
margin-right: 2em;
font-size: .7em;
}
/* eg Group "Extends Node" */
span.extends
{
display: block;
margin-bottom: 1em;
}
.light {
color: #777;
font-style: italic;
}
.detailList dt {
font-weight: normal;
}
dt.heading {
font-weight: 700;
}
.since {
border-radius:4px 4px 4px 4px;
padding: 2px;
/*margin-left: 1em;*/
background: #DDD;
color: #444;
}
.seealso {
display: block; margin-left: 10px; margin-top: .5em;
}
ul.seealsolist { display: inline; list-style: none; margin: 0; padding: 0; }
ul.seealsolist li { display: inline; }
ul.seealsolist li:after { content: ","; }
ul.seealsolist li:last-child:after { content: ""; }
span.nodetails
{
display:none;
}
.box, .boxrun, .boxread {
border: 1px solid #BBB;
padding: .6em;
background: #f4f4fa;
}
.morelink {
background: #E6E6F7;
padding: 2px;
border-radius: 5px;
margin: 5px;
cursor: pointer;
}
/* make table fit small screens */
@media (max-width: 767px) {
td.attributes {
max-width: 140px;
overflow-wrap: break-word;
word-wrap: break-word;
}
td.name {
max-width: 120px;
overflow-wrap: break-word;
word-wrap: break-word;
}
td.description {
}
}
@media screen and (max-width: 767px) {
.table-responsive>.table>tbody>tr>td,
.table-responsive>.table>tbody>tr>th,
.table-responsive>.table>tfoot>tr>td,
.table-responsive>.table>tfoot>tr>th,
.table-responsive>.table>thead>tr>td,
.table-responsive>.table>thead>tr>th {
white-space: normal;
}
}
File diff suppressed because one or more lines are too long
+114
View File
@@ -0,0 +1,114 @@
/*
* Visual Studio 2015 dark style
* Author: Nicolas LLOBERA <nllobera@gmail.com>
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #1E1E1E;
color: #DCDCDC;
}
.hljs-keyword,
.hljs-literal,
.hljs-symbol,
.hljs-name {
color: #569CD6;
}
.hljs-link {
color: #569CD6;
text-decoration: underline;
}
.hljs-built_in,
.hljs-type {
color: #4EC9B0;
}
.hljs-number,
.hljs-class {
color: #B8D7A3;
}
.hljs-string,
.hljs-meta-string {
color: #D69D85;
}
.hljs-regexp,
.hljs-template-tag {
color: #9A5334;
}
.hljs-subst,
.hljs-function,
.hljs-title,
.hljs-params,
.hljs-formula {
color: #DCDCDC;
}
.hljs-comment,
.hljs-quote {
color: #57A64A;
}
.hljs-doctag {
color: #608B4E;
}
.hljs-meta,
.hljs-meta-keyword,
.hljs-tag {
color: #9B9B9B;
}
.hljs-variable,
.hljs-template-variable {
color: #BD63C5;
}
.hljs-attr,
.hljs-attribute,
.hljs-builtin-name {
color: #9CDCFE;
}
.hljs-section {
color: gold;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
/*.hljs-code {
font-family:'Monospace';
}*/
.hljs-bullet,
.hljs-selector-tag,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #D7BA7D;
}
.hljs-addition {
background-color: #144212;
display: inline-block;
width: 100%;
}
.hljs-deletion {
background-color: #600;
display: inline-block;
width: 100%;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because one or more lines are too long
+369
View File
@@ -0,0 +1,369 @@
@import url(https://fonts.googleapis.com/css?family=Lato:400,900,700);
body {
font-family: 'Lato', sans-serif;
}
.banner {
background-position: top center;
height: 265px;
background-color: #FFF;
}
.banner h1 span, h2 span {
background-color: rgba(255,255,255,0.8);
border-radius: 5px;
}
#bannerlogo {
background-color: #1F4963; /* nwoods blue */
font-weight: 900;
font-size: 120%;
color: white;
padding: 6px;
border-radius: 9px;
}
#toplogo {
background-color: #1F4963; /* nwoods blue */
font-weight: 900;
font-size: 120%;
color: white;
padding: 6px;
border-radius: 4px;
}
#bannertop {
background-image: url('../images/banner2.png');
background-repeat: no-repeat;
box-shadow: 0px 2px 5px #D3D3D3;
padding-top: 48px;
}
.img-thumbnail {
padding: 0px;
margin: 4px;
border: 0;
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
border-radius: 2px;
}
a {
color: #337ab7;
text-decoration: none;
}
a:hover, a:focus {
color: #23527c;
text-decoration: none;
}
a:hover img {
box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);
}
h1 {
font-size: 50px;
font-weight: bold;
}
#frontpage p {
font-size: 18px;
line-height: 1.5;
}
#footer {
background-color: #292c2f;
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.12);
box-sizing: border-box;
width: 100%;
padding: 25px 50px 50px 50px;
margin: 0px;
color: #ffffff;
}
#footer ul {
list-style: none;
margin-top: 20px;
}
#footer p {
font-size: 13px;
}
#footer h3 {
background-color: #1F4963; /* nwoods blue */
font-weight: 900;
font-size: 40px;
color: white;
padding: 6px;
border-radius: 6px;
display: inline-block;
text-align: center;
}
#navindex {
padding-left: 0px;
padding-right: 0px;
margin-bottom: 110px;
}
.navbar-inverse .navbar-nav > li > a {
color: white;
font-weight: bold;
}
.navbar-brand {
height: auto;
margin: 9px 10px;
padding: 6px;
}
.navbar-inverse .navbar-brand {
color: white;
}
.navbar-inverse .navbar-brand:hover {
background-color: #1F4963; /* nwoods blue */
}
.nav > li > a {
padding-left: 9px;
padding-right: 9px;
font-size: 14px;
}
.navbar {
border-radius: 0px;
border-width: 0px;
}
.navbar-right {
margin-right: 0px;
}
.nav li {
float: left;
line-height: 40px;
-o-transition:.5s;
-ms-transition:.5s;
-moz-transition:.5s;
-webkit-transition:.5s;
transition:.5s;
}
.nav li:hover {
background-color: #707070;
}
.sidebar-nav .navbar-collapse {
padding: 0px;
}
.buy {
background-color: #79C900;
}
.activate {
background-color: #00A9C9;
}
/* bootstrap override */
.container-fluid {
max-width: 1170px;
padding-left: inherit;
padding-right: inherit;
}
.container-fluid>.navbar-header {
margin-left: inherit;
margin-right: inherit;
}
.mt30 {
margin-top: 30px;
}
.mt70 {
margin-top: 70px;
}
.plr15 {
padding-left: 15px;
padding-right: 15px;
}
.footer {
text-align: right;
font-size: 10px;
}
/* used on learn pages */
.learn-container {
max-width: 940px;
padding-left: 15px;
padding-right: 15px;
}
.diagramStyling { /* intro */
background-color: #F8F8F8;
}
p.box {
padding: 15px;
}
/* Sidebar */
.sidebar-nav .navbar {
margin-bottom: 0px;
}
.classList {
width: 100%;
margin: 0;
}
.navbar-nav>li>a.selected { background: #707070; color: #FFF;}
.navbar-default .navbar-nav>li>a:hover { color: #FFF;}
/* used in api, intro, and samples pages */
#non-fixed-nav {
margin-bottom: 0px;
}
/* For the samples index.html */
.btn-tag {
background-color: #3E5264;
border-color: #3E5264;
border-bottom: 2px solid rgba(0, 0, 0, 0.15);
margin: 2px;
}
.btn-tag:hover {
background-color: #4E878B;
border-color: #4E878B;
border-bottom: 2px solid rgba(0, 0, 0, 0.15);
}
.btn-selected-tag {
background-color: white;
border-color: #3E5264;
color: #3E5264;
border-bottom: 2px solid #354655;
margin: 2px;
}
.btn-selected-tag:hover {
background-color: white;
border-color: #3E5264;
color: #3E5264;
}
/* Samples, override Bootstrap settings for certain elements */
#samplesDiv h2 {
margin-top: 4px;
margin-bottom: 4px;
}
#samplesDiv p {
margin: 4px 4px 15px 4px
}
#sample {
padding-top: 15px;
}
#sample input[type=radio] {
margin: 3px 3px 0px 5px;
}
#sample input[type=range] {
display: inline-block;
width: auto;
}
#sample label {
margin-bottom: 0px;
font-weight: normal;
}
#sample pre {
font-size : 9pt;
}
#sample textarea {
font-family: monospace;
font-size: 9pt;
}
.samplespan {
position: absolute;
z-index: 99;
display: none;
left: 135px;
margin-top: -80px;
border: 2px solid gray;
height: 204px;
}
ul hr {
margin-top: 0px;
margin-bottom: 0px;
border-top-color: #CCC;
}
hr.changelog {
margin-top: 40px;
margin-bottom: 40px;
border-top: 4px solid #CCC;
}
/* BOOTSTRAP MEDIA BREAKPOINTS */
@media (min-width: 768px) {
a:not(.selected):hover .samplespan {
display: block; /* Only make screenshots visible when not collapsed and not selected */
}
.col-md-2 {
float: left;
width: 20%;
}
.col-md-10 {
float: left;
width: 80%;
}
.navbar>.container-fluid .navbar-brand {
margin-left: 10px;
}
.navbar-fixed-top .navbar-collapse {
padding-left: 15px;
padding-right: 15px;
}
#navindex {
max-width: 180px;
padding: 0px;
}
.sidebar-nav .navbar li {
float: none;
display: block;
}
.sidebar-nav .navbar li a {
padding-top: 1px;
padding-bottom: 1px;
}
}
@media (max-width: 767px) {
.navbar-collapse.collapse {
display: none !important;
}
.navbar-collapse.collapse.in {
display: block !important;
}
.navbar-header .collapse, .navbar-toggle {
display: block !important;
}
.navheader-container {
position: relative;
width: 100%;
height: 50px;
}
.navheader-container .navheader-collapse {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.navbar-nav {
margin: 7.5px 0px;
}
.couple {
display: inline-block;
}
}