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 0000000..e901973 Binary files /dev/null and b/public/assets/chain-icons/base.webp differ 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 @@ > - +