From fe8e4c273b592a4a207f7c1ea7bc4d0cc56b24ca Mon Sep 17 00:00:00 2001 From: Andrei O Date: Wed, 24 Jan 2024 02:41:31 +0200 Subject: [PATCH] chore: changes for `1.3.0` --- CHANGELOG.md | 16 + eval-sandbox.html | 20 + index.html | 2 +- package.json | 8 +- public/assets/chain-icons/base.webp | Bin 0 -> 260 bytes public/index.html | 2 +- release-scripts/post-build.ts | 7 +- src/App.vue | 60 ++- src/extension/content.ts | 82 ++-- src/extension/inject.ts | 120 +++-- src/extension/manifest.json | 18 +- src/extension/serviceWorker.ts | 122 ++++- src/extension/types.ts | 17 +- src/extension/userRequest.ts | 32 +- src/router/index.ts | 13 + src/utils/networks.ts | 19 +- src/utils/platform.ts | 129 ++++- src/utils/wallet.ts | 61 +-- src/views/AbiAdd.vue | 212 ++++++++ src/views/AbiList.vue | 146 ++++++ src/views/AbiSelectFunction.vue | 115 +++++ src/views/AccountsTab.vue | 8 +- src/views/AddAccount.vue | 23 +- src/views/AddContact.vue | 153 ++++++ src/views/AddNetwork.vue | 25 +- src/views/AppTabs.vue | 36 +- src/views/AssetsTab.vue | 9 +- src/views/ContactsSelect.vue | 173 +++++++ src/views/ContractError.vue | 2 +- src/views/HistoryTab.vue | 1 + src/views/HomeTab.vue | 66 ++- src/views/ReadContract.vue | 637 +++++++++++++++++++++++++ src/views/RequestNetwork.vue | 10 +- src/views/SavedReadWriteActionList.vue | 139 ++++++ src/views/SendToken.vue | 302 ++++++++++++ src/views/SettingsTab.vue | 18 +- src/views/SignTx.vue | 52 +- src/views/SwitchNetwork.vue | 1 - src/views/UnitConvertor.vue | 0 src/views/UnlockModal.vue | 2 +- src/views/WalletError.vue | 3 +- src/views/WriteContract.vue | 494 +++++++++++++++++++ vite.config.ts | 7 +- 43 files changed, 3113 insertions(+), 249 deletions(-) create mode 100644 eval-sandbox.html create mode 100644 public/assets/chain-icons/base.webp create mode 100644 src/views/AbiAdd.vue create mode 100644 src/views/AbiList.vue create mode 100644 src/views/AbiSelectFunction.vue create mode 100644 src/views/AddContact.vue create mode 100644 src/views/ContactsSelect.vue create mode 100644 src/views/ReadContract.vue create mode 100644 src/views/SavedReadWriteActionList.vue create mode 100644 src/views/SendToken.vue create mode 100644 src/views/UnitConvertor.vue create mode 100644 src/views/WriteContract.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a378f8..d5a9b45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## Manifest Version 1.3.0 + +- refactored the wallet to use etheres V6 +- implemented EIP6963Provider +- updated all dependencies +- added ability to send native tokens +- added ability to manage ABIs +- added ability to perfrom arbitrary read calls to contracts +- added ability to perfrom arbitrary write calls to contracts +- added ability to save read or write calls for later use +- added sandbox to be able to evaluate JS code in order to pass complex parameters to read or write calls +- added base Network to templates class +- added Icon for base network +- added ability to add contacts and load them in Read contract and Write and Send token pages +- added ability to paste current selected address to both webpages and insde wallet itself + ## Manifest Version 1.2.8 - better support for estimate gas diff --git a/eval-sandbox.html b/eval-sandbox.html new file mode 100644 index 0000000..57c0550 --- /dev/null +++ b/eval-sandbox.html @@ -0,0 +1,20 @@ + + + + + +

Eval Sandbox

+ + + \ No newline at end of file diff --git a/index.html b/index.html index 2f26e1f..8f589b8 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + Clear Wallet diff --git a/package.json b/package.json index 2c03b86..c8ccdbb 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,11 @@ { "name": "clear-wallet", - "version": "1.2.8", + "version": "1.2.9", "private": true, + "description": "Clear Wallet (CLW) is a wallet that helps you manage your Ethereum assets and interact with Ethereum dApps and contracts with the main focus on absolute privacy.", "scripts": { "dev": "vite", - "inject": "tsc --outFile src/extension/inject.js src/extension/inject.ts", + "inject": "tsc --downlevelIteration --outFile src/extension/inject.js src/extension/inject.ts", "content": "tsc --outFile src/extension/content.js src/extension/content.ts", "post-build": "ts-node ./release-scripts/post-build.ts", "build": "yarn inject && yarn content && vue-tsc --noEmit && vite build && yarn post-build", @@ -53,6 +54,5 @@ "vite": "^4.4.9", "vue-tsc": "^1.8.8", "yarn-upgrade-all": "^0.7.2" - }, - "description": "An Ionic project" + } } diff --git a/public/assets/chain-icons/base.webp b/public/assets/chain-icons/base.webp new file mode 100644 index 0000000000000000000000000000000000000000..e901973f60d290e5ae906b8f4fabf21a2230de84 GIT binary patch literal 260 zcmV+f0sH<^Nk&He00012MM6+kP&gp)000261^}G_Dj)zL06u*-m`VcyfWQF2_>N!; z5%WX%2o|U&lL(4czg+)mL1;Dn6>Cd;>biiK@F(4;+c}#g+5oaRRR KW=TBR00018LwhIy literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index 3d6e6c9..2f98757 100644 --- a/public/index.html +++ b/public/index.html @@ -1,5 +1,5 @@ - + Clear Wallet diff --git a/release-scripts/post-build.ts b/release-scripts/post-build.ts index f095a0f..a09f117 100644 --- a/release-scripts/post-build.ts +++ b/release-scripts/post-build.ts @@ -1,16 +1,15 @@ (async () => { const CONTENT_BUILD_PATH = 'src/extension/content.js' - const METAMASK_STUB_PATH = 'src/extension/metamask-stub.js' + const METAMASK_INJECT_PATH = 'src/extension/inject.js' const fs = (await import('fs')).default const path = (await import('path')).default const pkg = JSON.parse(fs.readFileSync('dist/manifest.json').toString()); pkg.content_scripts[0].js[0] = CONTENT_BUILD_PATH - pkg.content_scripts[1].js[0] = METAMASK_STUB_PATH + pkg.content_scripts[1].js[0] = METAMASK_INJECT_PATH fs.writeFileSync('dist/manifest.json', JSON.stringify(pkg, null, 2)) - // fs.writeFileSync('dist/rules.js', fs.readFileSync('rules.json').toString()) fs.writeFileSync('dist/'+ CONTENT_BUILD_PATH, fs.readFileSync('src/extension/content.js').toString()) - fs.writeFileSync('dist/'+ METAMASK_STUB_PATH, fs.readFileSync('src/extension/metamask-stub.js').toString()) + fs.writeFileSync('dist/'+ METAMASK_INJECT_PATH, fs.readFileSync('src/extension/inject.js').toString()) const directory = 'dist/assets/'; fs.readdir(directory, (err, files) => { files.forEach(file => { diff --git a/src/App.vue b/src/App.vue index 2a8f6c2..11893d0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,9 +6,11 @@ diff --git a/src/views/AbiList.vue b/src/views/AbiList.vue new file mode 100644 index 0000000..d13c93b --- /dev/null +++ b/src/views/AbiList.vue @@ -0,0 +1,146 @@ + + + diff --git a/src/views/AbiSelectFunction.vue b/src/views/AbiSelectFunction.vue new file mode 100644 index 0000000..8beacdf --- /dev/null +++ b/src/views/AbiSelectFunction.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/views/AccountsTab.vue b/src/views/AccountsTab.vue index 4b7ac67..caa1c1f 100644 --- a/src/views/AccountsTab.vue +++ b/src/views/AccountsTab.vue @@ -15,6 +15,7 @@ PK - + diff --git a/src/views/AddAccount.vue b/src/views/AddAccount.vue index cf5cbaa..76c12ac 100644 --- a/src/views/AddAccount.vue +++ b/src/views/AddAccount.vue @@ -9,8 +9,7 @@ - Name - + Get Random Name @@ -23,8 +22,12 @@ :icon="clipboardOutline" button /> - PK - + @@ -67,7 +70,7 @@ Enter Index (default: 0) - + + + + Close Extract @@ -111,7 +117,6 @@ import { saveSelectedAccount, getAccounts, saveAccount, - getRandomPk, smallRandomString, paste, getSettings, @@ -123,7 +128,7 @@ import UnlockModal from "@/views/UnlockModal.vue"; import { encrypt, getCryptoParams } from "@/utils/webCrypto"; import { clipboardOutline } from "ionicons/icons"; -import { getFromMnemonic } from "@/utils/wallet"; +import { getFromMnemonic, getRandomPk } from "@/utils/wallet"; export default defineComponent({ components: { diff --git a/src/views/AddContact.vue b/src/views/AddContact.vue new file mode 100644 index 0000000..e7782a5 --- /dev/null +++ b/src/views/AddContact.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/AddNetwork.vue b/src/views/AddNetwork.vue index afdd33b..4c3d044 100644 --- a/src/views/AddNetwork.vue +++ b/src/views/AddNetwork.vue @@ -10,13 +10,17 @@ >Add from popular chain list - Name(*) - + - ChainId(*) - RPC URL(*) - - Native Token Symbol(?) - Explorer(?) Settings + + + + + Send Tokens + + + + + Read Contract + + + + + Write Contracts + + @@ -50,9 +67,19 @@ import { IonTabBar, IonTabButton, IonLabel, - IonIcon + IonIcon, } from "@ionic/vue"; -import { personCircle, walletOutline, diamondOutline, cogOutline, receiptOutline, gitNetworkOutline } from "ionicons/icons"; +import { + personCircle, + walletOutline, + diamondOutline, + cogOutline, + receiptOutline, + gitNetworkOutline, + sendOutline, + glassesOutline, + pushOutline, +} from "ionicons/icons"; export default defineComponent({ components: { @@ -63,7 +90,7 @@ export default defineComponent({ IonTabBar, IonTabButton, IonLabel, - IonIcon + IonIcon, }, name: "AppTabs", setup() { @@ -81,8 +108,11 @@ export default defineComponent({ cogOutline, receiptOutline, gitNetworkOutline, + sendOutline, beforeTabChange, afterTabChange, + glassesOutline, + pushOutline, }; }, }); diff --git a/src/views/AssetsTab.vue b/src/views/AssetsTab.vue index 8b91ee5..c848117 100644 --- a/src/views/AssetsTab.vue +++ b/src/views/AssetsTab.vue @@ -16,6 +16,7 @@ > - +