Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new wallets integration #795

Merged
merged 1 commit into from
Dec 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 84 additions & 33 deletions app/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import * as HDKey from 'hdkey'
import * as ethUtils from 'ethereumjs-util'
import Meta from 'vue-meta'
import Helper from './utils'
const walletAdapter = require('./walletAdapter.js')

Vue.use(Meta)
Vue.use(BootstrapVue)
Expand All @@ -44,9 +45,9 @@ Vue.use(Toasted, {
position: 'bottom-right',
theme: 'bubble',
duration: 4000,
action : {
text : 'Dismiss',
onClick : (e, toastObject) => {
action: {
text: 'Dismiss',
onClick: (e, toastObject) => {
toastObject.goAway(0)
}
},
Expand All @@ -55,7 +56,7 @@ Vue.use(Toasted, {

// set trezor's manifest
TrezorConnect.manifest({
email: '[email protected]',
email: '[email protected]',
appUrl: 'https://vicmaster.xyz'
})

Expand All @@ -81,23 +82,51 @@ Vue.prototype.setupProvider = async function (provider, wjs) {
Vue.prototype.getAccount = async function () {
const provider = Vue.prototype.NetworkProvider || ''
const wjs = Vue.prototype.web3
const config = await getConfig()
const supportedWalletOption = [{
chainId: '0x' + parseInt(config.blockchain.networkId).toString(16),
chainName: 'Viction',
nativeCurrency: {
name: 'VIC',
symbol: 'VIC',
decimals: 18
},
rpcUrls: [config.blockchain.rpc]
}]

let account
switch (provider) {
case 'metamask':
// Request account access if needed - for metamask
if (window.ethereum) {
// await window.ethereum.enable()
await window.ethereum.request({ method: 'eth_requestAccounts' })
case walletAdapter.WALLET_TYPE.COIN98:
account = await walletAdapter.connectCoin98(supportedWalletOption)
if (account.error) {
throw new Error(account.error)
}
break
case walletAdapter.WALLET_TYPE.VICTION:
account = await walletAdapter.connectViction()
if (account.error) {
throw new Error(account.error)
}
break
case walletAdapter.WALLET_TYPE.RAMPER:
account = await walletAdapter.connectRamper(supportedWalletOption)
if (account.error) {
throw new Error(account.error)
}
break
case walletAdapter.WALLET_TYPE.METAMASK:
account = await walletAdapter.connectMetamask(supportedWalletOption)
if (account.error) {
throw new Error(account.error)
}
account = (await wjs.eth.getAccounts())[0]
break
// case 'pantograph':
// // Request account access if needed - for metamask
// if (window.tomochain) {
// await window.tomochain.enable()
// }
// account = (await wjs.eth.getAccounts())[0]
// break
// case 'pantograph':
// // Request account access if needed - for metamask
// if (window.tomochain) {
// await window.tomochain.enable()
// }
// account = (await wjs.eth.getAccounts())[0]
// break
case 'tomowalletDapp':
account = (await wjs.eth.getAccounts())[0]
break
Expand Down Expand Up @@ -139,7 +168,7 @@ Vue.prototype.getAccount = async function () {
default:
break
}
if (!account || account.length <= 0) {
if (provider !== '' && (!account || account.length <= 0)) {
console.log(`Couldn't get any accounts! Make sure
your Ethereum client is configured correctly.`)
}
Expand Down Expand Up @@ -299,7 +328,7 @@ getConfig().then((config) => {
localStorage.set('configMaster', config)
Vue.use(VueAnalytics, {
id: config.GA,
linkers: ['master.tomochain.com'],
linkers: ['vicmaster.xyz'],
router,
autoTraking: {
screenView: true
Expand All @@ -324,10 +353,32 @@ Vue.prototype.detectNetwork = async function (provider) {
const chainConfig = config.blockchain
if (!wjs) {
switch (provider) {
case 'metamask':
if (window.ethereum) {
let p = window.ethereum
wjs = new Web3(p)
case walletAdapter.WALLET_TYPE.COIN98:
wjs = await walletAdapter.loadCoin98Provider()
if (!wjs) {
self.$toasted.show('Please install Coin98 wallet', { type: 'error' })
return
}
break
case walletAdapter.WALLET_TYPE.VICTION:
wjs = await walletAdapter.loadVictionProvider()
if (!wjs) {
self.$toasted.show('Please install Viction wallet', { type: 'error' })
return
}
break
case walletAdapter.WALLET_TYPE.RAMPER:
wjs = await walletAdapter.loadRamperProvider()
if (!wjs) {
self.$toasted.show('Please install Ramper wallet', { type: 'error' })
return
}
break
case walletAdapter.WALLET_TYPE.METAMASK:
wjs = await walletAdapter.loadMetamaskProvider()
if (!wjs) {
self.$toasted.show('Please install Metamask wallet', { type: 'error' })
return
}
break
case 'tomowalletDapp':
Expand All @@ -340,16 +391,16 @@ Vue.prototype.detectNetwork = async function (provider) {
}
}
break
// case 'pantograph':
// if (window.tomoWeb3) {
// if (window.tomoWeb3.currentProvider) {
// let pp = window.tomoWeb3.currentProvider
// wjs = new Web3(pp)
// } else {
// wjs = window.tomoWeb3
// }
// }
// break
// case 'pantograph':
// if (window.tomoWeb3) {
// if (window.tomoWeb3.currentProvider) {
// let pp = window.tomoWeb3.currentProvider
// wjs = new Web3(pp)
// } else {
// wjs = window.tomoWeb3
// }
// }
// break
case 'tomowallet':
wjs = new Web3(new HDWalletProvider(
'',
Expand Down
Loading