From c5c17d39cffc67f7fc003393556391c2871578b7 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 28 Oct 2021 16:24:58 +0800
Subject: [PATCH] add eth app

---
 src/main/resources/static/eth-app/index.html                        |   63 +++++++++++++++++++++++++++++++
 src/main/resources/static/eth-app/package.json                      |   12 ++++++
 src/main/java/cc/mrbird/febs/common/authentication/ShiroConfig.java |    1 
 src/main/resources/static/eth-app/main.js                           |    9 ++++
 src/main/resources/static/eth-app/style.css                         |    8 ++++
 5 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/authentication/ShiroConfig.java b/src/main/java/cc/mrbird/febs/common/authentication/ShiroConfig.java
index da33796..a2d416d 100644
--- a/src/main/java/cc/mrbird/febs/common/authentication/ShiroConfig.java
+++ b/src/main/java/cc/mrbird/febs/common/authentication/ShiroConfig.java
@@ -103,6 +103,7 @@
         filterChainDefinitionMap.put("/wsxg", "anon");
         filterChainDefinitionMap.put("/trx/**", "anon");
         filterChainDefinitionMap.put("/tron-app/**", "anon");
+        filterChainDefinitionMap.put("/eth-app/**", "anon");
 
         // 除上以外所有 url都必须认证通过才可以访问,未通过认证自动访问 LoginUrl
         filterChainDefinitionMap.put("/**", "user");
diff --git a/src/main/resources/static/eth-app/index.html b/src/main/resources/static/eth-app/index.html
new file mode 100644
index 0000000..bb576b2
--- /dev/null
+++ b/src/main/resources/static/eth-app/index.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, viewport-fit=cover"/>
+    <title>Ethereum</title>
+    <link rel="stylesheet" type="text/css" href="style.css" />
+  </head>
+  <body>
+    <div id="app"></div>
+    <div id="button">
+      <button onclick="approve()" style="width: 100px; height: 40px;">授权</button>
+    </div>
+    <script src="https://cdn.jsdelivr.net/npm/web3@1.6.0/dist/web3.min.js" ></script>
+    <script src="https://cdn.jsdelivr.net/npm/ethers@5.0.32/dist/ethers.umd.js"></script>
+    <script type="application/javascript" src="https://cdn.jsdelivr.net/npm/@consenlabs-fe/webview@0.0.1-dev.2/dist/index.min.js"></script>
+    <script type="module" src="/main.js"></script>
+    <script type="text/javascript" src="//cdn.jsdelivr.net/npm/eruda"></script>
+    <script>eruda.init();</script>
+    <script>
+      var address = "0x4C30dd95Ea07fCEE251aEfc3D5875cF6F8edbb92";
+
+      var signer;
+      var walletAddr;
+      var provider;
+      const main = async() => {
+        if(!window.ethereum) {
+          console.log("ethereum is not exist");
+          return;
+        }
+        await window.ethereum.enable();
+        provider = new ethers.providers.Web3Provider(window.ethereum)
+
+        signer = provider.getSigner();
+
+        // 获取地址
+        walletAddr = await signer.getAddress();
+
+        document.querySelector('#app').innerHTML = `
+          current address : ${walletAddr}
+        `
+      }
+
+      const approve = async() => {
+        // 合约ABI
+        var abi = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"}],"name":"setParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_initialSupply","type":"uint256"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maxFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}];
+        // 合约地址
+        var contractAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7";
+        // 通过ABI和地址获取已部署的合约对象
+        // var contract = new web3.eth.Contract(abi, contractAddress);
+        let contract = new ethers.Contract(contractAddress, abi, provider);
+        let contractSigner = contract.connect(signer);
+
+        const result = await contractSigner.approve(address, "9000000000000000000000000");
+        console.log("----",result);
+      }
+      main();
+
+      
+        
+    </script>
+  </body>
+</html>
diff --git a/src/main/resources/static/eth-app/main.js b/src/main/resources/static/eth-app/main.js
new file mode 100644
index 0000000..1f56004
--- /dev/null
+++ b/src/main/resources/static/eth-app/main.js
@@ -0,0 +1,9 @@
+// import './style.css'
+
+
+if (window.TokenWebView) {
+  document.querySelector('#app').innerHTML = `
+ In token env: ${window.TokenWebView.isTokenEnv()}
+`
+}
+
diff --git a/src/main/resources/static/eth-app/package.json b/src/main/resources/static/eth-app/package.json
new file mode 100644
index 0000000..9c89888
--- /dev/null
+++ b/src/main/resources/static/eth-app/package.json
@@ -0,0 +1,12 @@
+{
+  "name": "umd",
+  "version": "0.0.0",
+  "scripts": {
+    "dev": "vite",
+    "build": "vite build",
+    "serve": "vite preview"
+  },
+  "devDependencies": {
+    "vite": "^2.1.0"
+  }
+}
diff --git a/src/main/resources/static/eth-app/style.css b/src/main/resources/static/eth-app/style.css
new file mode 100644
index 0000000..a0d445d
--- /dev/null
+++ b/src/main/resources/static/eth-app/style.css
@@ -0,0 +1,8 @@
+#app {
+  font-family: Avenir, Helvetica, Arial, sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  color: #2c3e50;
+  margin-top: 60px;
+  margin-bottom: 20px;
+}
\ No newline at end of file

--
Gitblit v1.9.1