Merge pull request #973 from ethereum/fixDeploySwarm

Fix deploy to swarm
pull/1/head
yann300 7 years ago committed by GitHub
commit 829194bd31
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      src/app.js
  2. 10
      src/app/compiler/compiler-imports.js
  3. 2
      src/app/contract/contractParser.js
  4. 7
      src/app/files/basicReadOnlyExplorer.js
  5. 9
      src/app/files/fileManager.js

@ -201,10 +201,9 @@ function run () {
if (provider && provider.exists(url)) {
return provider.get(url, cb)
}
handleImports.import(url, (error, content, cleanUrl, type) => {
handleImports.import(url, (error, content, cleanUrl, type, url) => {
if (!error) {
// FIXME: at some point we should invalidate the browser cache
filesProviders[type].addReadOnly(cleanUrl, content)
filesProviders[type].addReadOnly(cleanUrl, content, url)
cb(null, content)
} else {
cb(error)

@ -39,12 +39,16 @@ module.exports = {
})
},
import: function (url, cb) {
var handlers = [
handlers: function () {
return [
{ type: 'github', match: /^(https?:\/\/)?(www.)?github.com\/([^/]*\/[^/]*)\/(.*)/, handler: (match, cb) => { this.handleGithubCall(match[3], match[4], cb) } },
{ type: 'swarm', match: /^(bzz[ri]?:\/\/?.*)$/, handler: (match, cb) => { this.handleSwarmImport(match[1], cb) } },
{ type: 'ipfs', match: /^(ipfs:\/\/?.+)/, handler: (match, cb) => { this.handleIPFS(match[1], cb) } }
]
},
import: function (url, cb) {
var handlers = this.handlers()
var found = false
handlers.forEach(function (handler) {
@ -63,7 +67,7 @@ module.exports = {
return
}
cb(null, content, cleanUrl, handler.type)
cb(null, content, cleanUrl, handler.type, url)
})
}
})

@ -38,7 +38,7 @@ var getDetails = function (contractName, contract, source) {
detail['Runtime Bytecode'] = contract.evm.deployedBytecode
}
if (contract.assembly !== null) {
if (source && contract.assembly !== null) {
detail['Assembly'] = formatAssemblyText(contract.evm.legacyAssembly, '', source.content)
}

@ -5,6 +5,7 @@ class BasicReadOnlyExplorer {
constructor (type) {
this.event = new EventManager()
this.files = {}
this.normalizedNames = {} // contains the raw url associated with the displayed path
this.type = type
this.readonly = true
}
@ -25,6 +26,9 @@ class BasicReadOnlyExplorer {
get (path, cb) {
var content = this.files[path]
if (!content) {
content = this.files[this.type + '/' + this.normalizedNames[path]]
}
if (cb) {
cb(null, content)
}
@ -37,12 +41,13 @@ class BasicReadOnlyExplorer {
return true
}
addReadOnly (path, content) {
addReadOnly (path, content, rawPath) {
var unprefixedPath = this.removePrefix(path)
try { // lazy try to format JSON
content = JSON.stringify(JSON.parse(content), null, '\t')
} catch (e) {}
this.files[this.type + '/' + unprefixedPath] = content
this.normalizedNames[rawPath] = path
this.event.trigger('fileAdded', [this.type + '/' + unprefixedPath, true])
return true
}

@ -4,6 +4,7 @@ var $ = require('jquery')
var remixLib = require('remix-lib')
var yo = require('yo-yo')
var EventManager = remixLib.EventManager
var imports = require('../compiler/compiler-imports')
/*
attach to files event (removed renamed)
@ -145,8 +146,14 @@ class FileManager {
fileProviderOf (file) {
var provider = file.match(/[^/]*/)
if (provider !== null) {
if (provider !== null && this.opt.filesProviders[provider[0]]) {
return this.opt.filesProviders[provider[0]]
} else {
for (var handler of imports.handlers()) {
if (handler.match.exec(file)) {
return this.opt.filesProviders[handler.type]
}
}
}
return null
}

Loading…
Cancel
Save