1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 12:29:06 +01:00
metamask-extension/ui/lib/account-link.js
bguiz 96929d99c0 fix: handle trailing / in block explorer URLs
What

- modify `ui/app/helpers/utils/transactions.util.js` and
  `ui/lib/account-link.js` to strip trailing slashes
  if they are present.
- added relevant tests not just for the new scenario,
  but also the general scenarios for these functions,
  as there previously was no test coverage for these
  two functions.

Why

- Current behaviour, when user enters a block explorer URL
  when configuring a custom RPC, and that block explorer URL
  contains a trailing `/`.
  - e.g. `https://block.explorer/`
  - this results in a double-slash (`//`) in the transaction
    and account URLs generated by MetaMask.
  - e.g. `https://block.explorer/tx/0xabcd...`,
    `https://block.explorer/account/0xabcd...`
  - This needs to be handled using a router redirect
    on the server of the block explorer,
    and this changes would avoid that requirement.
2020-05-14 17:15:17 +08:00

34 lines
944 B
JavaScript

export default function getAccountLink (address, network, rpcPrefs) {
if (rpcPrefs && rpcPrefs.blockExplorerUrl) {
return `${rpcPrefs.blockExplorerUrl.replace(/\/+$/, '')}/address/${address}`
}
const net = parseInt(network)
let link
switch (net) {
case 1: // main net
link = `https://etherscan.io/address/${address}`
break
case 2: // morden test net
link = `https://morden.etherscan.io/address/${address}`
break
case 3: // ropsten test net
link = `https://ropsten.etherscan.io/address/${address}`
break
case 4: // rinkeby test net
link = `https://rinkeby.etherscan.io/address/${address}`
break
case 42: // kovan test net
link = `https://kovan.etherscan.io/address/${address}`
break
case 5: // goerli test net
link = `https://goerli.etherscan.io/address/${address}`
break
default:
link = ''
break
}
return link
}