Rename files
This commit is contained in:
parent
86ead431c3
commit
829deacb57
|
@ -1,6 +1,6 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>404</title>
|
<title>MetaMask</title>
|
||||||
<style>
|
<style>
|
||||||
*{
|
*{
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Portal Network</title>
|
<title>MetaMask Error</title>
|
||||||
<link href="https://fonts.googleapis.com/css?family=Rokkitt" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Rokkitt" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
*{
|
*{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Portal Network</title>
|
<title>MetaMask Loading</title>
|
||||||
<style>
|
<style>
|
||||||
#div-logo {
|
#div-logo {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>no_mainnet</title>
|
|
||||||
</head>
|
|
||||||
<style>
|
|
||||||
*{
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
img{
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
html, body{
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
@keyframes logoAmin{
|
|
||||||
from {transform: scale(1);}
|
|
||||||
50%{transform: scale(1.1);}
|
|
||||||
to {transform: scale(1);}
|
|
||||||
}
|
|
||||||
.no_mainnet{
|
|
||||||
width: 80%;
|
|
||||||
height: auto;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
.no_mainnet > img{
|
|
||||||
margin: 0 auto 31px auto;
|
|
||||||
width: 136px;
|
|
||||||
height: auto;
|
|
||||||
animation: logoAmin 1s infinite linear;
|
|
||||||
}
|
|
||||||
.no_mainnet > h1{
|
|
||||||
text-align: center;
|
|
||||||
font-family: Gotham;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: 500;
|
|
||||||
font-style: normal;
|
|
||||||
font-stretch: normal;
|
|
||||||
line-height: normal;
|
|
||||||
letter-spacing: 1.3px;
|
|
||||||
color: #33559f;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<body>
|
|
||||||
<div class="no_mainnet">
|
|
||||||
<img src="./images/cancel.png" alt="">
|
|
||||||
<h1>ENS resolver only support on Ethereum mainnet</h1>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -25,7 +25,7 @@ const setupMetamaskMeshMetrics = require('./lib/setupMetamaskMeshMetrics')
|
||||||
const EdgeEncryptor = require('./edge-encryptor')
|
const EdgeEncryptor = require('./edge-encryptor')
|
||||||
const getFirstPreferredLangCode = require('./lib/get-first-preferred-lang-code')
|
const getFirstPreferredLangCode = require('./lib/get-first-preferred-lang-code')
|
||||||
const getObjStructure = require('./lib/getObjStructure')
|
const getObjStructure = require('./lib/getObjStructure')
|
||||||
const pw = require('./lib/portalnetwork.js')
|
const ipfsContent = require('./lib/ipfsContent.js')
|
||||||
|
|
||||||
const {
|
const {
|
||||||
ENVIRONMENT_TYPE_POPUP,
|
ENVIRONMENT_TYPE_POPUP,
|
||||||
|
@ -61,9 +61,6 @@ const diskStore = new LocalStorageStore({ storageKey: STORAGE_KEY })
|
||||||
const localStore = new LocalStore()
|
const localStore = new LocalStore()
|
||||||
let versionedData
|
let versionedData
|
||||||
|
|
||||||
console.log('localStore', localStore);
|
|
||||||
console.log('diskStore', diskStore);
|
|
||||||
|
|
||||||
// initialization flow
|
// initialization flow
|
||||||
initialize().catch(log.error)
|
initialize().catch(log.error)
|
||||||
|
|
||||||
|
@ -161,8 +158,7 @@ async function initialize () {
|
||||||
const initLangCode = await getFirstPreferredLangCode()
|
const initLangCode = await getFirstPreferredLangCode()
|
||||||
await setupController(initState, initLangCode)
|
await setupController(initState, initLangCode)
|
||||||
log.debug('MetaMask initialization complete.')
|
log.debug('MetaMask initialization complete.')
|
||||||
// porto network init
|
ipfsContent(initState.NetworkController.provider)
|
||||||
pw(initState.NetworkController.provider);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
const extension = require('extensionizer')
|
||||||
|
const resolver = require('./resolver.js')
|
||||||
|
|
||||||
|
module.exports = function (provider) {
|
||||||
|
extension.webRequest.onBeforeRequest.addListener(details => {
|
||||||
|
const name = details.url.substring(7, details.url.length - 1)
|
||||||
|
let clearTime = null
|
||||||
|
extension.tabs.getSelected(null, tab => {
|
||||||
|
extension.tabs.update(tab.id, { url: 'loading.html' })
|
||||||
|
|
||||||
|
clearTime = setTimeout(() => {
|
||||||
|
return extension.tabs.update(tab.id, { url: '404.html' })
|
||||||
|
}, 60000)
|
||||||
|
|
||||||
|
resolver.resolve(name, provider).then(ipfsHash => {
|
||||||
|
clearTimeout(clearTime)
|
||||||
|
let url = 'https://gateway.ipfs.io/ipfs/' + ipfsHash
|
||||||
|
return fetch(url, { method: 'HEAD' }).then(response => response.status).then(statusCode => {
|
||||||
|
if (statusCode !== 200) return 'Local'
|
||||||
|
extension.tabs.update(tab.id, { url: url })
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
url = 'https://gateway.ipfs.io/ipfs/' + ipfsHash
|
||||||
|
extension.tabs.update(tab.id, {url: url})
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
clearTimeout(clearTime)
|
||||||
|
const url = err === 'unsupport' ? 'unsupport' : 'error'
|
||||||
|
extension.tabs.update(tab.id, {url: `${url}.html?name=${name}`})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return { cancel: true }
|
||||||
|
}, {urls: ['*://*.eth/']})
|
||||||
|
}
|
|
@ -1,36 +0,0 @@
|
||||||
const extension = require('extensionizer')
|
|
||||||
const resolver = require('./resolver.js');
|
|
||||||
module.exports = function (provider) {
|
|
||||||
extension.webRequest.onBeforeRequest.addListener(details => {
|
|
||||||
let name = details.url.substring(7, details.url.length - 1);
|
|
||||||
let clearTime = null;
|
|
||||||
extension.tabs.getSelected(null, tab => {
|
|
||||||
extension.tabs.update(tab.id, { url: "loading.html" });
|
|
||||||
|
|
||||||
clearTime = setTimeout(() => {
|
|
||||||
return extension.tabs.update(tab.id, { url: "404.html" });
|
|
||||||
}, 60000);
|
|
||||||
|
|
||||||
resolver.resolve(name, provider).then(ipfsHash => {
|
|
||||||
clearTimeout(clearTime);
|
|
||||||
let url = "https://gateway.ipfs.io/ipfs/" + ipfsHash;
|
|
||||||
return fetch(url, { method: "HEAD" }).then(response => response.status).then(statusCode => {
|
|
||||||
if (statusCode !== 200) return "Local"
|
|
||||||
extension.tabs.update(tab.id, { url: url })
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
url = "https://gateway.ipfs.io/ipfs/" + ipfsHash
|
|
||||||
extension.tabs.update(tab.id, {url: url})
|
|
||||||
return err
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
clearTimeout(clearTime);
|
|
||||||
let nameWithoutTld = name.substring(0, name.lastIndexOf('.'))
|
|
||||||
let url = err === "no_mainnet" ? "no_mainnet" : "error"
|
|
||||||
extension.tabs.update(tab.id, {url: `${url}.html?name=${name}`})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
return { cancel: true }
|
|
||||||
}, {urls: ["*://*.eth/"]})
|
|
||||||
}
|
|
|
@ -1,43 +1,44 @@
|
||||||
const namehash = require('eth-ens-namehash')
|
const namehash = require('eth-ens-namehash')
|
||||||
const multihash = require('multihashes')
|
const multihash = require('multihashes')
|
||||||
const REGISTRAR_ENS_MAIN_NET = "0x314159265dd8dbb310642f98f50c066173c1259b"
|
const REGISTRAR_ENS_MAIN_NET = '0x314159265dd8dbb310642f98f50c066173c1259b'
|
||||||
const HttpProvider = require('ethjs-provider-http')
|
const HttpProvider = require('ethjs-provider-http')
|
||||||
const Eth = require('ethjs-query')
|
const Eth = require('ethjs-query')
|
||||||
const EthContract = require('ethjs-contract')
|
const EthContract = require('ethjs-contract')
|
||||||
const registrarAbi = require('./contracts/registrar')
|
const registrarAbi = require('./contracts/registrar')
|
||||||
const resolverAbi = require('./contracts/resolver')
|
const resolverAbi = require('./contracts/resolver')
|
||||||
function ens(name, provider) {
|
|
||||||
// provider need mainnet
|
function ens (name, provider) {
|
||||||
let eth = new Eth(new HttpProvider(provider.rpcTarget))
|
const eth = new Eth(new HttpProvider(provider.rpcTarget))
|
||||||
let hash = namehash.hash(name)
|
const hash = namehash.hash(name)
|
||||||
let contract = new EthContract(eth)
|
const contract = new EthContract(eth)
|
||||||
let Registrar = contract(registrarAbi).at(REGISTRAR_ENS_MAIN_NET)
|
const Registrar = contract(registrarAbi).at(REGISTRAR_ENS_MAIN_NET)
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (provider.type !== "mainnet") reject('no_mainnet')
|
if (provider.type !== 'mainnet') reject('unsupport')
|
||||||
Registrar.resolver(hash).then((address) => {
|
Registrar.resolver(hash).then((address) => {
|
||||||
if (address === '0x0000000000000000000000000000000000000000') {
|
if (address === '0x0000000000000000000000000000000000000000') {
|
||||||
reject(null)
|
reject(null)
|
||||||
} else {
|
} else {
|
||||||
let Resolver = contract(resolverAbi).at(address["0"])
|
const Resolver = contract(resolverAbi).at(address['0'])
|
||||||
return Resolver.content(hash)
|
return Resolver.content(hash)
|
||||||
}
|
}
|
||||||
}).then((contentHash) => {
|
}).then((contentHash) => {
|
||||||
if (contentHash["0"] === '0x0000000000000000000000000000000000000000000000000000000000000000') reject(null)
|
if (contentHash['0'] === '0x0000000000000000000000000000000000000000000000000000000000000000') reject(null)
|
||||||
if (contentHash.ret !== "0x") {
|
if (contentHash.ret !== '0x') {
|
||||||
let hex = contentHash["0"].substring(2)
|
const hex = contentHash['0'].substring(2)
|
||||||
let buf = multihash.fromHexString(hex)
|
const buf = multihash.fromHexString(hex)
|
||||||
resolve(multihash.toB58String(multihash.encode(buf, 'sha2-256')))
|
resolve(multihash.toB58String(buf))
|
||||||
} else {
|
} else {
|
||||||
reject('fisk')
|
reject(null)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports.resolve = function (name, provider) {
|
module.exports.resolve = function (name, provider) {
|
||||||
let path = name.split(".");
|
const path = name.split('.')
|
||||||
let tld = path[path.length - 1];
|
const tld = path[path.length - 1]
|
||||||
if (tld === 'eth') {
|
if (tld === 'eth') {
|
||||||
return ens(name, provider);
|
return ens(name, provider)
|
||||||
} else {
|
} else {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
reject(null)
|
reject(null)
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>MetaMask</title>
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
*{
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
html, body{
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
@keyframes logoAmin{
|
||||||
|
from {transform: scale(1);}
|
||||||
|
50%{transform: scale(1.1);}
|
||||||
|
to {transform: scale(1);}
|
||||||
|
}
|
||||||
|
.unsupport{
|
||||||
|
width: 80%;
|
||||||
|
height: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
.unsupport > img{
|
||||||
|
margin: 0 auto 31px auto;
|
||||||
|
width: 136px;
|
||||||
|
height: auto;
|
||||||
|
animation: logoAmin 1s infinite linear;
|
||||||
|
}
|
||||||
|
.unsupport > h1{
|
||||||
|
text-align: center;
|
||||||
|
font-family: Gotham;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-stretch: normal;
|
||||||
|
line-height: normal;
|
||||||
|
letter-spacing: 1.3px;
|
||||||
|
color: #33559f;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<div class="unsupport">
|
||||||
|
<img src="./images/cancel.png" alt="">
|
||||||
|
<h1>ENS resolver only support on Ethereum mainnet</h1>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue