indexworkspace2
bunsenstraat 3 years ago
parent c88952594d
commit f5c59acfb1
  1. 528
      apps/remix-ide-e2e/src/local-plugin/src/app/Client.ts
  2. 131
      apps/remix-ide-e2e/src/local-plugin/src/app/app.css
  3. 27
      apps/remix-ide-e2e/src/local-plugin/src/app/app.tsx
  4. 5
      apps/remix-ide-e2e/src/local-plugin/src/app/logger.tsx
  5. 17
      apps/remix-ide-e2e/src/local-plugin/src/app/logo.svg
  6. 11
      apps/remix-ide-e2e/src/local-plugin/src/app/star.svg
  7. 1
      apps/remix-ide-e2e/src/local-plugin/src/app/usesubscribe/index.ts
  8. 32
      apps/remix-ide-e2e/src/local-plugin/src/app/usesubscribe/use-observable.ts
  9. 2
      apps/remix-ide-e2e/src/local-plugin/src/index.html
  10. 70
      package-lock.json
  11. 14
      package.json

@ -1,534 +1,8 @@
import { PluginClient } from '@remixproject/plugin'
import { customAction } from '@remixproject/plugin-api/lib/file-system/file-panel'
import { createClient } from '@remixproject/plugin-webview'
import { BehaviorSubject } from 'rxjs'
import axios from 'axios'
const simpleContract = `pragma solidity >=0.4.22 <0.7.0;
/**
* @title Storage
* @dev Store & retreive value in a variable
*/
contract StorageTestUpdateConfiguration {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retreive() public view returns (uint256){
return number;
}
}
`
export class WorkSpacePlugin extends PluginClient {
callBackEnabled: boolean = true;
feedback = new BehaviorSubject<any>('');
export class RemixPlugin extends PluginClient {
constructor () {
super()
createClient(this)
this.methods = ['customAction']
this.onload()
.then(async (x) => {
// console.log("client loaded", JSON.stringify(this));
try {
// await this.call("solidityUnitTesting", "testFromSource", "");
} catch (e) {
// console.log("not available");
}
/*
let acc = await this.call("udapp","getSettings")
console.log(acc)
let ac2 = await this.call("udapp","getAccounts")
console.log(ac2)
const privateKey = "71975fbf7fe448e004ac7ae54cad0a383c3906055a75468714156a07385e96ce"
const balance = "0x56BC75E2D63100000"
let na = await this.call("udapp","createVMAccount",{ privateKey, balance })
console.log(na)
this.on('udapp', 'newTransaction', (tx: any) => {
// Do something
console.log("new transaction", tx)
})
this.on("solidity","compilationFinished",function(x){
console.log("comp fin",x)
})
*/
})
.catch(async (e) => {
console.log('ERROR CONNECTING', e)
})
}
async setCallBacks () {
const cmd: customAction = {
id: this.name,
name: 'customAction',
type: ['file', 'folder'],
extension: [],
path: [],
pattern: []
// sticky: true
}
const cmd2: customAction = {
id: this.name,
name: 'myAction2',
type: ['file', 'folder'],
extension: [],
path: [],
pattern: []
}
this.call('filePanel', 'registerContextMenuItem', cmd)
this.call('filePanel', 'registerContextMenuItem', cmd2)
console.log('set listeners')
const me = this
this.on('fileManager', 'currentFileChanged', function (x) {
me.setFeedback({
event: 'currentFileChanged',
result: x
})
})
this.on('filePanel', 'customAction', function (x) {
console.log('custom ACTION', x)
})
this.on('fileManager', 'fileRemoved', function (x) {
me.setFeedback(`fileRemoved:${x}`)
})
this.on(
'solidity',
'compilationFinished',
function (target, source, version, data) {
console.log('compile finished', target, source, version, data)
}
)
this.on('fileManager', 'fileAdded', function (x) {
console.log('added file', x)
me.log(x)
})
/* this.on("fileExplorers", "createWorkspace", function (x) {
console.log("ws create", x);
me.log(x);
});
this.on("fileExplorers", "setWorkspace", function (x) {
console.log("ws set", x);
me.log(x);
});
this.on("fileExplorers", "deleteWorkspace", function (x) {
console.log("wS DELETE", x);
me.log(x);
});
this.on("fileExplorers", "renameWorkspace", function (x) {
console.log("wS rn", x);
me.log(x);
}); */
}
setFeedback (ob: any) {
this.feedback.next(ob)
console.log(ob)
}
async customAction (o:customAction) {
console.log('custom action called', o)
}
async log (message: string) {
// console.log(message)
this.call('terminal', 'log', { type: 'info', value: 'Name\r\nAniket' })
this.call('terminal', 'log', { type: 'html', value: '<div>test</div><ul><li>test</li></ul>' })
}
async changetoinjected () {
this.call('udapp', 'setEnvironmentMode', 'injected')
}
async test (p: string) {}
async activate (id: string) {
this.call('manager', 'activatePlugin', id)
}
async deactivate (id: string) {
this.call('manager', 'deactivatePlugin', id)
}
async getresult () {
const r = await this.call('solidity', 'getCompilationResult')
console.log('RESULT', r)
}
async gitbranches () {
// let r = await this.call("dGitProvider","branches")
// console.log("branches", r)
}
async gitbranch (dir: string) {
// let r = await this.call("dGitProvider","branch",dir)
}
async gitcurrentbranch () {
try {
const r = await this.call('dGitProvider', 'currentbranch')
this.setFeedback(r)
} catch (e) {
this.setFeedback(e.message)
}
}
async gitcheckout (dir: string) {
// let r = await this.call("dGitProvider","checkout",dir)
}
async gitinit (dir: string) {
// let s = await this.call("fileExplorers","getCurrentWorkspace")
// let r = await this.call("dGitProvider","init")
}
async gitstatus (dir: string) {
// let r = await this.call("dGitProvider","status",'HEAD')
// console.log("git status ", r)
}
async gitadd (dir: string) {
// let r = await this.call("dGitProvider","add",dir)
// console.log("git add ", r)
}
async gitremove (dir: string) {
// let r = await this.call("dGitProvider","rm",dir)
// console.log("git rm ", r)
}
async gitlog () {
// let r = await this.call("dGitProvider","log",'HEAD')
// console.log("git log ", r)
}
async gitcommit () {
// let r = await this.call("dGitProvider","commit",{})
// console.log("git log ", r)
}
async gitlsfiles () {
// let r = await this.call("dGitProvider","lsfiles",'HEAD')
// console.log("git log ", r)
}
async gitresolveref () {
// let r = await this.call("dGitProvider","resolveref",'HEAD')
// console.log("git resolve ", r)
}
async gitreadblob (file: string) {
// let c = await this.call("dGitProvider","log",'HEAD')
// console.log(c[c.length-1].oid)
// let r = await this.call("dGitProvider","readblob",{oid:c[c.length-1].oid, filepath:"README.txt"})
// console.log("git blob ", r)
}
async ipfspush () {
console.log(await this.call('dGitProvider', 'push'))
}
async pinatapush () {
try {
const r = await this.call('dGitProvider' as any, 'pin', '124def6d9115e0c2c521', '130c1a8b18fd0c77f9ee8c1614146d277c3def661506dbf1c78618325cc53c8b')
console.log(r)
} catch (err) {
console.log(err)
}
}
async pinlist () {
try {
const r = await this.call('dGitProvider' as any, 'pinList', '124def6d9115e0c2c521', '130c1a8b18fd0c77f9ee8c1614146d277c3def661506dbf1c78618325cc53c8b')
console.log(r)
} catch (err) {
console.log(err)
}
}
async ipfspull (cid: string) {
try {
await this.call('dGitProvider', 'pull', cid)
} catch (e) {}
}
async ipfsConfig () {
/* try{
let r = await this.call("dGitProvider", "setIpfsConfig", {
host: 'localhost',
port: 5002,
protocol: 'http',
ipfsurl: 'https://ipfsgw.komputing.org/ipfs/'
});
console.log(r)
}catch(e){
console.log(e)
} */
}
async readddir (dir: string) {
try {
const files = await this.call('fileManager', 'readdir', dir)
this.setFeedback(files)
} catch (e) {
this.setFeedback(e.message)
}
}
async write (dir: string) {
try {
this.call('fileManager', 'setFile', dir, 'simple readme')
} catch (e) {
this.setFeedback(e.message)
}
}
async getcurrentfile () {
try {
const files = await this.call('fileManager', 'getCurrentFile')
this.setFeedback(files)
} catch (e) {
this.setFeedback(e.message)
}
}
async switchfile (dir: string) {
try {
await this.call('fileManager', 'switchFile', dir)
} catch (e) {
this.setFeedback(e.message)
}
}
async zip () {
const r = await this.call('dGitProvider', 'zip')
}
async fetch (dir: string) {
try {
var files = await fetch(dir)
console.log(files)
console.log(files.toString())
} catch (e) {
console.error(e)
}
}
async axios (dir: string) {
try {
var files = await axios.get(dir)
console.log(files)
console.log(files.toString())
} catch (e) {
console.error(e)
}
}
async getcompilerconfig () {
// let config = await this.call("solidity","getCompilerConfig")
// console.log(config)
}
async getWorkSpace () {
try {
const s = await this.call('filePanel' as any, 'getCurrentWorkspace')
this.setFeedback(s)
} catch (e) {
this.setFeedback(e.message)
}
}
async getWorkSpaces () {
// let s = await this.call("fileExplorers","getWorkspaces")
// console.log(s)
}
async createWorkSpace (name: string) {
try {
await this.call('filePanel', 'createWorkspace', name)
} catch (e) {
this.setFeedback(e.message)
}
}
async importcontent (dir: string) {
console.log('import content')
var content = await this.call(
'contentImport',
'resolve',
'ipfs://Qmd1gr9VeQaYNA8wVDq86RwdeMZkfF93JZhhWgfCVewYtc'
)
console.log('content', content)
}
async open (dir: string) {
await this.call('fileManager', 'open', dir)
}
async highlight (f: string) {
this.call(
'editor',
'highlight',
{
start: {
line: 0,
column: 1
},
end: {
line: 1,
column: 10
}
},
f,
'#ffffff'
)
}
async addAnnotation (f: string) {
this.call('editor', 'addAnnotation', {
row: 1,
column: 1,
text: 'annotation',
type: 'error'
})
this.call('editor', 'addAnnotation', {
row: 10,
column: 2,
text: 'annotation',
type: 'info'
})
this.call('editor', 'addAnnotation', {
row: 12,
column: 1,
text: 'annotation',
type: 'warning'
})
}
async clearAnnotations (f: string) {
this.call('editor', 'clearAnnotations')
}
async activatePlugin (f:string) {
try {
await this.call('manager', 'activatePlugin', f)
this.setFeedback(await this.call('manager', 'isActive', f))
} catch (e) {
this.setFeedback(e.message)
}
}
async deActivatePlugin (f:string) {
try {
await this.call('manager', 'deactivatePlugin', f)
this.setFeedback(await this.call('manager', 'isActive', f))
} catch (e) {
this.setFeedback(e.message)
}
}
async getSettings () {
try {
const settings = await this.call('udapp', 'getSettings')
this.setFeedback(settings)
} catch (e) {
this.setFeedback(e.message)
}
}
async setSettings () {
const settings = await this.call('udapp', 'setEnvironmentMode', 'injected')
await this.getSettings()
}
async debug (hash:string) {
const settings = await this.call('remixdprovider' as any, 'debug', hash)
}
async getAccounts () {
try {
const settings = await this.call('udapp', 'getAccounts')
this.setFeedback(settings)
} catch (e) {
this.setFeedback(e.message)
}
}
async soltest () {
const f = `pragma solidity >=0.4.0;
contract SimpleStorage {
uint storedData;
// a public function named set that returns a uint goes here
function set(uint _p1) public returns (uint) {
storedData = _p1;
}
function get() public view returns (uint) {
return storedData;
}
}
`
const t = `pragma solidity >=0.4.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "./modifyVariable.sol";
contract test3 {
SimpleStorage storageToTest;
function beforeAll () public {
storageToTest = new SimpleStorage();
}
function checkSetFunction () public {
storageToTest.set(12345);
Assert.equal(storageToTest.get(), uint(12345), "the contract should contain the function set");
}
}
`
// await this.call('fileManager', 'setFile', '/modifyVariable.sol', f)
await this.call('fileManager', 'switchFile', 'tests/4_Ballot_test.sol')
// await this.call('fileManager', 'setFile', '/modifyVariable_test.sol', t)
const result = await this.call(
'solidityUnitTesting',
'testFromPath',
'tests/4_Ballot_test.sol'
)
this.setFeedback(result)
}
async disableCallBacks () {
this.callBackEnabled = false
}
async enableCallBacks () {
this.callBackEnabled = true
}
}

@ -1,128 +1,3 @@
.app {
font-family: sans-serif;
min-width: 300px;
max-width: 600px;
margin: 50px auto;
}
.app .gutter-left {
margin-left: 9px;
}
.app .col-span-2 {
grid-column: span 2;
}
.app .flex {
display: flex;
align-items: center;
justify-content: center;
}
.app header {
background-color: #143055;
color: white;
padding: 5px;
border-radius: 3px;
}
.app main {
padding: 0 36px;
}
.app p {
text-align: center;
}
.app h1 {
text-align: center;
margin-left: 18px;
font-size: 24px;
}
.app h2 {
text-align: center;
font-size: 20px;
margin: 40px 0 10px 0;
}
.app .resources {
text-align: center;
list-style: none;
padding: 0;
display: grid;
grid-gap: 9px;
grid-template-columns: 1fr 1fr;
}
.app .resource {
color: #0094ba;
height: 36px;
background-color: rgba(0, 0, 0, 0);
border: 1px solid rgba(0, 0, 0, 0.12);
border-radius: 4px;
padding: 3px 9px;
text-decoration: none;
}
.app .resource:hover {
background-color: rgba(68, 138, 255, 0.04);
}
.app pre {
padding: 9px;
border-radius: 4px;
background-color: black;
color: #eee;
}
.app details {
border-radius: 4px;
color: #333;
background-color: rgba(0, 0, 0, 0);
border: 1px solid rgba(0, 0, 0, 0.12);
padding: 3px 9px;
margin-bottom: 9px;
}
.app summary {
outline: none;
height: 36px;
line-height: 36px;
}
.app .github-star-container {
margin-top: 12px;
line-height: 20px;
}
.app .github-star-container a {
display: flex;
align-items: center;
text-decoration: none;
color: #333;
}
.app .github-star-badge {
color: #24292e;
display: flex;
align-items: center;
font-size: 12px;
padding: 3px 10px;
border: 1px solid rgba(27, 31, 35, 0.2);
border-radius: 3px;
background-image: linear-gradient(-180deg, #fafbfc, #eff3f6 90%);
margin-left: 4px;
font-weight: 600;
}
.app .github-star-badge:hover {
background-image: linear-gradient(-180deg, #f0f3f6, #e6ebf1 90%);
border-color: rgba(27, 31, 35, 0.35);
background-position: -0.5em;
}
.app .github-star-badge .material-icons {
height: 16px;
width: 16px;
margin-right: 4px;
}
.jumbotron {
max-height: 25vh;
}

@ -1,6 +1,6 @@
import React, { useEffect, useRef, useState } from 'react'
import { WorkSpacePlugin } from './Client'
import React, { useEffect, useState } from 'react'
import { RemixPlugin } from './Client'
import { Logger } from './logger'
import { filePanelProfile } from '@remixproject/plugin-api/lib/file-system/file-panel/profile'
@ -16,15 +16,17 @@ import { contentImportProfile } from '@remixproject/plugin-api/lib/content-impor
import { unitTestProfile } from '@remixproject/plugin-api/lib/unit-testing'
import { windowProfile } from '@remixproject/plugin-api/lib/window'
import { pluginManagerProfile } from '@remixproject/plugin-api/lib/plugin-manager'
import { Profile } from '@remixproject/plugin-utils'
export const client = new WorkSpacePlugin()
import './app.css'
export const client = new RemixPlugin()
function App () {
const [payload, setPayload] = useState<string>('')
const [append, setAppend] = useState<boolean>(false)
const [log, setLog] = useState<any>()
const [events, setEvents] = useState<any>()
const [profiles, setProfiles] = useState<Profile[]>([pluginManagerProfile, filePanelProfile, filSystemProfile, dGitProfile, networkProfile, settingsProfile, editorProfile, terminalProfile, compilerProfile, udappProfile, contentImportProfile, unitTestProfile, windowProfile])
const handleChange = ({ target }: any) => {
@ -33,12 +35,14 @@ function App () {
useEffect(() => {
client.onload(async () => {
const customProfiles = ['solidity', 'menuicons', 'tabs']
const customProfiles = ['menuicons', 'tabs']
let addProfiles = []
for (const name of customProfiles) {
const p = await client.call('manager', 'getProfile', name)
setProfiles(profiles => [p, ...profiles])
addProfiles = [...addProfiles, p]
}
setProfiles(profiles => [...profiles, ...addProfiles])
profiles.map((profile: Profile) => {
if (profile.events) {
@ -46,6 +50,10 @@ function App () {
console.log(profile.name, event)
client.on(profile.name as any, event, (...args:any) => {
console.log(event, args)
setEvents({
event: event,
args: args
})
})
})
}
@ -75,7 +83,10 @@ function App () {
return (
<div className="App container-fluid">
<h5>PLUGIN API TESTER</h5>
<Logger log={log} append={append}></Logger>
<label>method results</label>
<Logger id='methods' log={log} append={append}></Logger>
<label>events</label>
<Logger id='events' log={events} append={append}></Logger>
<input
className='form-control w-100'
type="text"
@ -91,7 +102,7 @@ function App () {
return <button data-id={`${profile.name}:${method}`} key={method} className='btn btn-primary btn-sm ml-1 mb-1' onClick={async () => await clientMethod(profile, method)}>{method}</button>
})
const events = profile.events ? profile.events.map((event: string) => {
return <label className='m-1'>{event}</label>
return <label key={event} className='m-1'>{event}</label>
}) : null
return <div key={profile.name} className='small border-bottom'><label className='text-uppercase'>{profile.name}</label><br></br>{methods}<br></br>{events ? <label>EVENTS:</label> : null}{events}</div>
})}

@ -4,7 +4,8 @@ import { client } from './app'
interface loggerProps {
append: boolean,
log: any
log: any,
id: string
}
export const Logger: React.FC<loggerProps> = (props) => {
@ -17,5 +18,5 @@ export const Logger: React.FC<loggerProps> = (props) => {
})
}, [props])
return (<div className="jumbotron text-break">{value}</div>)
return (<div id={props.id} className="jumbotron overflow-auto text-break mb-1 p-2">{value}</div>)
}

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="262px" height="163px" viewBox="0 0 262 163" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Styles-&amp;-Quick-Wins" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Nx---Quick-Wins" transform="translate(-476.000000, -1284.000000)" fill-rule="nonzero">
<g id="Logos" transform="translate(-11.000000, 782.000000)">
<g id="Nx_Flat_White" transform="translate(487.000000, 502.000000)">
<polygon id="Path" fill="#FFFFFF" points="130.68 104.59 97.49 52.71 97.44 96.3 40.24 0 0 0 0 162.57 39.79 162.57 39.92 66.39 96.53 158.26"></polygon>
<polygon id="Path" fill="#FFFFFF" points="97.5 41.79 137.24 41.79 137.33 41.33 137.33 0 97.54 0 97.49 41.33"></polygon>
<path d="M198.66,86.86 C189.139872,86.6795216 180.538723,92.516445 177.19,101.43 C182.764789,93.0931021 193.379673,89.7432211 202.73,93.37 C207.05,95.13 212.73,97.97 217.23,96.45 C212.950306,90.4438814 206.034895,86.8725952 198.66,86.86 L198.66,86.86 Z" id="Path" fill="#96D8E9"></path>
<path d="M243.75,106.42 C243.75,101.55 241.1,100.42 235.6,98.42 C231.52,97 226.89,95.4 223.52,91 C222.86,90.13 222.25,89.15 221.6,88.11 C220.14382,85.4164099 218.169266,83.037429 215.79,81.11 C212.58,78.75 208.37,77.6 202.91,77.6 C191.954261,77.6076705 182.084192,84.2206169 177.91,94.35 C183.186964,87.0278244 191.956716,83.0605026 200.940147,83.9314609 C209.923578,84.8024193 217.767888,90.3805017 221.54,98.58 C223.424615,101.689762 227.141337,103.174819 230.65,102.22 C236.02,101.07 235.65,106.15 243.76,107.87 L243.75,106.42 Z" id="Path" fill="#48C4E5"></path>
<path d="M261.46,105.38 L261.46,105.27 C261.34,73.03 235.17,45.45 202.91,45.45 C183.207085,45.4363165 164.821777,55.3450614 154,71.81 L153.79,71.45 L137.23,45.45 L97.5,45.4499858 L135.25,104.57 L98.41,162.57 L137,162.57 L153.79,136.78 L170.88,162.57 L209.48,162.57 L174.48,107.49 C173.899005,106.416838 173.583536,105.220114 173.56,104 C173.557346,96.2203871 176.64661,88.7586448 182.147627,83.2576275 C187.648645,77.7566101 195.110387,74.6673462 202.89,74.67 C219.11,74.67 221.82,84.37 225.32,88.93 C232.23,97.93 246.03,93.99 246.03,105.73 L246.03,105.73 C246.071086,108.480945 247.576662,111.001004 249.979593,112.340896 C252.382524,113.680787 255.317747,113.636949 257.679593,112.225896 C260.041438,110.814842 261.471086,108.250945 261.43,105.5 L261.43,105.5 L261.43,105.38 L261.46,105.38 Z" id="Path" fill="#FFFFFF"></path>
<path d="M261.5,113.68 C261.892278,116.421801 261.504116,119.218653 260.38,121.75 C258.18,126.84 254.51,125.14 254.51,125.14 C254.51,125.14 251.35,123.6 253.27,120.65 C255.4,117.36 259.61,117.74 261.5,113.68 Z" id="Path" fill="#FFFFFF"></path>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg
className="material-icons"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
>
<path d="M0 0h24v24H0z" fill="none" />
<path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z" />
</svg>

Before

Width:  |  Height:  |  Size: 347 B

@ -1,32 +0,0 @@
import { useState, useEffect } from 'react'
import { Subscribable, BehaviorSubject, Observable, Subject } from 'rxjs'
export const useSubscribable = <T>(
s: Subscribable<T>,
defaultValue?: T
) => {
const [value, setValue] = useState(defaultValue)
useEffect(
() => {
const subscription = s.subscribe(setValue)
return () => subscription.unsubscribe()
},
[s]
)
return value
}
export const useRx = useSubscribable
export const useObservable = <T>(
o: Observable<T>,
defaultValue?: T
) => useSubscribable(o, defaultValue)
export const useSubject = <T>(
s: Subject<T>,
defaultValue?: T
) => useSubscribable(s, defaultValue)
export const useBehaviorSubject = <T>(
s: BehaviorSubject<T>
) => useSubscribable(s, s.value)

@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<title>LocalPlugin</title>
<title>Remix Plugin API Testser</title>
<base href="/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />

70
package-lock.json generated

@ -9832,46 +9832,46 @@
"integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw=="
},
"@remixproject/engine": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/engine/-/engine-0.3.208.tgz",
"integrity": "sha512-kEWHrkQZUbik4uAVotFRVWA1+Za5m1EUYsKYaFLdroQHIUzuiWZjgYfxDixFb/hGYUZy2GPLzwTkNfJnRmSSaQ==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/engine/-/engine-0.3.21.tgz",
"integrity": "sha512-IT2rQyiMG97WY4BMQzG0TOMOabhqafippUrGNUNk4FKKR6dXTEjD+mXaOJuesmK50UM+zpcxhsc7IQGIoCIXbQ==",
"requires": {
"@remixproject/plugin-api": "0.3.208",
"@remixproject/plugin-utils": "0.3.208"
"@remixproject/plugin-api": "0.3.21",
"@remixproject/plugin-utils": "0.3.21"
}
},
"@remixproject/engine-web": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/engine-web/-/engine-web-0.3.208.tgz",
"integrity": "sha512-3/OqsTKub5J374GoNo3H/889BdfL+khfj9uyKiyWMVK+hCQ5acdpLa+H7CPdUBbqk/Gt1HjjD+iV2zzRw/vdWg==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/engine-web/-/engine-web-0.3.21.tgz",
"integrity": "sha512-ZSzuZLiB8EZVlGgXwl5riZdpU0lgMNcwY8U/e3b9D8PbSEr2XoOS0VD6P83KiYaPyNV9IKYoGcB1aqImm/58nA==",
"requires": {
"@remixproject/engine": "0.3.208",
"@remixproject/plugin-api": "0.3.208",
"@remixproject/plugin-utils": "0.3.208"
"@remixproject/engine": "0.3.21",
"@remixproject/plugin-api": "0.3.21",
"@remixproject/plugin-utils": "0.3.21"
}
},
"@remixproject/plugin": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/plugin/-/plugin-0.3.208.tgz",
"integrity": "sha512-6bA8823xaRYn+dYf1a1AObiCgSf6Q4tlSmVvcS/KYWQmi2upDmfGCILxAVaKD6CWCTP/3bdeXeH/q766NdpLcQ==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/plugin/-/plugin-0.3.21.tgz",
"integrity": "sha512-JxKcXxjl7Fk2oP/KQwdHErQsjAwOpOJlv7q4I5MbdfN7hue7Kpe/lbqW19YTD0Cydsjd8jCI34q/2hEN6gyU2g==",
"requires": {
"@remixproject/plugin-api": "0.3.208",
"@remixproject/plugin-utils": "0.3.208",
"@remixproject/plugin-api": "0.3.21",
"@remixproject/plugin-utils": "0.3.21",
"events": "3.2.0"
}
},
"@remixproject/plugin-api": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-api/-/plugin-api-0.3.208.tgz",
"integrity": "sha512-11hFxABBrEzE4fgcDblWqxLAh5ARH2tBADgh9KNk+y7LUV7aQ7OZf4KiZ2US+uKiSC6497iu/uLHbWBTeRqlVA==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-api/-/plugin-api-0.3.21.tgz",
"integrity": "sha512-hTb785ncQNkH597gHYd4zmuqrQ123AEBQyyeKk3FUyEyGc65hLgf/QN3WngvzU07eIY23GdllgunwirJM810vA==",
"requires": {
"@remixproject/plugin-utils": "0.3.208"
"@remixproject/plugin-utils": "0.3.21"
}
},
"@remixproject/plugin-utils": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-utils/-/plugin-utils-0.3.208.tgz",
"integrity": "sha512-PjEK+ty6X14ud3h2U/XH8BBbqwLF3CwduOxHCXfCG0KarR4FwuSfocWQfGlASeDFmPzyV1aMGn//U6xZ03O42Q==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-utils/-/plugin-utils-0.3.21.tgz",
"integrity": "sha512-e/lzBJplTQdqMpqucLL0ovaM7FEPNzAE7QOzjFm2XhfLjUZBZ7m6CUIGNhozgo4S61yauq+nfdwc+JqZvytDnQ==",
"requires": {
"tslib": "2.0.1"
},
@ -9884,24 +9884,24 @@
}
},
"@remixproject/plugin-webview": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-webview/-/plugin-webview-0.3.208.tgz",
"integrity": "sha512-nbcWq7xYqNQXu4G84B68fzNWsafpO9NHcmLiVOFqel6xl7gp4X9hpY5dm4Cs7WY+9YY0IdLWRNfqA6pbT2qsgw==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-webview/-/plugin-webview-0.3.21.tgz",
"integrity": "sha512-byUGdFsgFaPDtn+vCtXoM+3y9ReMhnSeO0Iu9xVmLZjHxHo0aebRHup+e7y25mL4tk+9IOQa26Cc9kE74gtHpQ==",
"requires": {
"@remixproject/plugin": "0.3.208",
"@remixproject/plugin-api": "0.3.208",
"@remixproject/plugin-utils": "0.3.208",
"@remixproject/plugin": "0.3.21",
"@remixproject/plugin-api": "0.3.21",
"@remixproject/plugin-utils": "0.3.21",
"axios": "^0.21.1"
}
},
"@remixproject/plugin-ws": {
"version": "0.3.208",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-ws/-/plugin-ws-0.3.208.tgz",
"integrity": "sha512-7GH18UXSO8TZ9khKPvJQESGMVDSnPhDj42j4ENjK+Td6qpYutfTmqMD1YMW3TL2KgY89irytPHCMuCiUtEDoBQ==",
"version": "0.3.21",
"resolved": "https://registry.npmjs.org/@remixproject/plugin-ws/-/plugin-ws-0.3.21.tgz",
"integrity": "sha512-uAgwVKn7oPZQjIj+sYzpQK1t5XBvxzFXo/wSUWgq4aMO23Mz+UvVx0fOoJ45gDqTbATI5yle0rab2Sn9HXNSMw==",
"requires": {
"@remixproject/plugin": "0.3.208",
"@remixproject/plugin-api": "0.3.208",
"@remixproject/plugin-utils": "0.3.208"
"@remixproject/plugin": "0.3.21",
"@remixproject/plugin-api": "0.3.21",
"@remixproject/plugin-utils": "0.3.21"
}
},
"@restart/context": {

@ -141,13 +141,13 @@
"@ethereumjs/common": "^2.5.0",
"@ethereumjs/tx": "^3.3.2",
"@ethereumjs/vm": "^5.5.3",
"@remixproject/engine": "^0.3.20",
"@remixproject/engine-web": "^0.3.20",
"@remixproject/plugin": "^0.3.20",
"@remixproject/plugin-api": "^0.3.20",
"@remixproject/plugin-utils": "^0.3.20",
"@remixproject/plugin-webview": "^0.3.20",
"@remixproject/plugin-ws": "^0.3.20",
"@remixproject/engine": "next",
"@remixproject/engine-web": "next",
"@remixproject/plugin": "next",
"@remixproject/plugin-api": "next",
"@remixproject/plugin-utils": "next",
"@remixproject/plugin-webview": "next",
"@remixproject/plugin-ws": "next",
"ansi-gray": "^0.1.1",
"async": "^2.6.2",
"axios": ">=0.21.1",

Loading…
Cancel
Save