Merge branch 'master' of https://github.com/ethereum/remix-project into flattentree

flattentree
filip mertens 11 months ago
commit e6fb5d5fb4
  1. 4
      .github/workflows/pr-reminder.yml
  2. 7
      apps/remix-ide/src/app/components/vertical-icons.tsx
  3. 12
      apps/remix-ide/src/app/plugins/permission-handler-plugin.tsx
  4. BIN
      apps/remix-ide/src/assets/img/cookbook.webp
  5. BIN
      apps/remix-ide/src/assets/img/soliditySurvey2023.webp
  6. BIN
      apps/remix-ide/src/assets/img/unknownPluginIcon.webp
  7. 8
      libs/ghaction-helper/package.json
  8. 8
      libs/remix-analyzer/package.json
  9. 6
      libs/remix-astwalker/package.json
  10. 12
      libs/remix-debug/package.json
  11. 4
      libs/remix-lib/package.json
  12. 6
      libs/remix-simulator/package.json
  13. 6
      libs/remix-solidity/package.json
  14. 10
      libs/remix-tests/package.json
  15. 53
      libs/remix-ui/app/src/lib/remix-app/remix-app.tsx
  16. 40
      libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx
  17. 2
      libs/remix-ui/home-tab/src/lib/components/workspaceTemplate.tsx
  18. 6
      libs/remix-ui/permission-handler/src/lib/permission-dialog.tsx
  19. 2
      libs/remix-ui/plugin-manager/src/lib/components/permissionsSettings.tsx
  20. 2
      libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx
  21. 2
      libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx
  22. 4
      libs/remix-url-resolver/package.json
  23. 4
      libs/remix-ws-templates/package.json
  24. 2
      libs/remixd/package.json

@ -2,14 +2,14 @@ name: PRs reviews reminder
on:
schedule:
- cron: "0 8-17/1 * * 1-5"
- cron: "0 8-17/8 * * 1-5"
workflow_dispatch:
jobs:
pr-reviews-reminder:
runs-on: ubuntu-latest
steps:
- uses: yann300/pr-reviews-reminder-action@master
- uses: Aniket-Engg/pr-reviews-reminder-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

@ -16,6 +16,8 @@ const profile = {
events: ['toggleContent', 'showContent']
}
const toMaximize = ['LearnEth']
export class VerticalIcons extends Plugin {
events: EventEmitter
htmlElement: HTMLDivElement
@ -106,6 +108,11 @@ export class VerticalIcons extends Plugin {
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showContent', name)
this.events.emit('showContent', name)
if (toMaximize.includes(name)) {
setTimeout(_ => {
this.call('layout', 'maximiseSidePanel')
}, 500)
}
}
/**

@ -92,7 +92,17 @@ export class PermissionHandlerPlugin extends Plugin {
const {allow, hash} = sensitiveCall ? this.sessionPermissions[to.name][method][from.name] : this.permissions[to.name][method][from.name]
if (!allow) {
const warning = this.notAllowWarning(from, to, method)
this.call('notification', 'toast', warning)
const warnEl =
<div className='d-flex flex-column'>
<span>{ warning }</span>
<div className='d-flex flex-row'>
<span onClick={()=>{}}>To change the permission go to </span>
<span className='px-2' style={{fontWeight: 'bolder'}}>Plugin Manager</span>
<img alt="" id="permissionModalImagesFrom" src="/assets/img/pluginManager.webp" style={{height: '1rem', width: '1rem'}} />
<span className='pl-1' style={{fontWeight: 'bolder'}}> / Permissions</span>
</div>
</div>
this.call('notification', 'toast', warnEl)
return false
}
return hash === from.hash

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

@ -1,6 +1,6 @@
{
"name": "@remix-project/ghaction-helper",
"version": "0.1.17",
"version": "0.1.18",
"description": "Solidity Tests GitHub Action Helper",
"main": "src/index.js",
"scripts": {
@ -19,17 +19,17 @@
},
"homepage": "https://github.com/ethereum/remix-project#readme",
"devDependencies": {
"@remix-project/remix-solidity": "^0.5.23",
"@remix-project/remix-solidity": "^0.5.24",
"@types/chai": "^4.3.4",
"typescript": "^4.9.3"
},
"dependencies": {
"@ethereum-waffle/chai": "^3.4.4",
"@remix-project/remix-simulator": "^0.2.37",
"@remix-project/remix-simulator": "^0.2.38",
"chai": "^4.3.7",
"ethers": "^5.7.2",
"web3": "^4.1.1"
},
"types": "./src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf"
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-analyzer",
"version": "0.5.46",
"version": "0.5.47",
"description": "Tool to perform static analysis on Solidity smart contracts",
"scripts": {
"test": "./../../node_modules/.bin/ts-node --project ../../tsconfig.base.json --require tsconfig-paths/register ./../../node_modules/.bin/tape ./test/tests.ts"
@ -25,8 +25,8 @@
"@ethereumjs/tx": "^4.1.1",
"@ethereumjs/util": "^8.0.5",
"@ethereumjs/vm": "^6.4.1",
"@remix-project/remix-astwalker": "^0.0.67",
"@remix-project/remix-lib": "^0.5.44",
"@remix-project/remix-astwalker": "^0.0.68",
"@remix-project/remix-lib": "^0.5.45",
"async": "^2.6.2",
"ethers": "^5.4.2",
"ethjs-util": "^0.1.6",
@ -50,6 +50,6 @@
"typescript": "^3.7.5"
},
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf",
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3",
"main": "./src/index.js"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-astwalker",
"version": "0.0.67",
"version": "0.0.68",
"description": "Tool to walk through Solidity AST",
"main": "src/index.js",
"scripts": {
@ -37,7 +37,7 @@
"@ethereumjs/tx": "^4.1.1",
"@ethereumjs/util": "^8.0.5",
"@ethereumjs/vm": "^6.4.1",
"@remix-project/remix-lib": "^0.5.44",
"@remix-project/remix-lib": "^0.5.45",
"@types/tape": "^4.2.33",
"async": "^2.6.2",
"ethers": "^5.4.2",
@ -53,6 +53,6 @@
"tap-spec": "^5.0.0"
},
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf",
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-debug",
"version": "0.5.37",
"version": "0.5.38",
"description": "Tool to debug Ethereum transactions",
"contributors": [
{
@ -26,10 +26,10 @@
"@ethereumjs/tx": "^4.1.1",
"@ethereumjs/util": "^8.0.5",
"@ethereumjs/vm": "^6.4.1",
"@remix-project/remix-astwalker": "^0.0.67",
"@remix-project/remix-lib": "^0.5.44",
"@remix-project/remix-simulator": "^0.2.37",
"@remix-project/remix-solidity": "^0.5.23",
"@remix-project/remix-astwalker": "^0.0.68",
"@remix-project/remix-lib": "^0.5.45",
"@remix-project/remix-simulator": "^0.2.38",
"@remix-project/remix-solidity": "^0.5.24",
"ansi-gray": "^0.1.1",
"async": "^2.6.2",
"color-support": "^1.1.3",
@ -69,6 +69,6 @@
},
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-debug#readme",
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf",
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-lib",
"version": "0.5.44",
"version": "0.5.45",
"description": "Library to various Remix tools",
"contributors": [
{
@ -55,6 +55,6 @@
},
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-lib#readme",
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf",
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-simulator",
"version": "0.2.37",
"version": "0.2.38",
"description": "Ethereum IDE and tools for the web",
"contributors": [
{
@ -22,7 +22,7 @@
"@ethereumjs/tx": "^4.1.1",
"@ethereumjs/util": "^8.0.5",
"@ethereumjs/vm": "^6.4.1",
"@remix-project/remix-lib": "^0.5.44",
"@remix-project/remix-lib": "^0.5.45",
"ansi-gray": "^0.1.1",
"async": "^3.1.0",
"body-parser": "^1.18.2",
@ -70,6 +70,6 @@
},
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-simulator#readme",
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf",
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-solidity",
"version": "0.5.23",
"version": "0.5.24",
"description": "Tool to load and run Solidity compiler",
"main": "src/index.js",
"types": "src/index.d.ts",
@ -19,7 +19,7 @@
"@ethereumjs/tx": "^4.1.1",
"@ethereumjs/util": "^8.0.5",
"@ethereumjs/vm": "^6.4.1",
"@remix-project/remix-lib": "^0.5.44",
"@remix-project/remix-lib": "^0.5.45",
"async": "^2.6.2",
"eslint-scope": "^5.0.0",
"ethers": "^5.4.2",
@ -57,5 +57,5 @@
},
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-solidity#readme",
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf"
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-tests",
"version": "0.2.37",
"version": "0.2.38",
"description": "Tool to test Solidity smart contracts",
"main": "src/index.js",
"types": "./src/index.d.ts",
@ -41,9 +41,9 @@
"@ethereumjs/tx": "^4.1.1",
"@ethereumjs/util": "^8.0.5",
"@ethereumjs/vm": "^6.4.1",
"@remix-project/remix-lib": "^0.5.44",
"@remix-project/remix-simulator": "^0.2.37",
"@remix-project/remix-solidity": "^0.5.23",
"@remix-project/remix-lib": "^0.5.45",
"@remix-project/remix-simulator": "^0.2.38",
"@remix-project/remix-solidity": "^0.5.24",
"@remix-project/remix-url-resolver": "^0.0.42",
"ansi-gray": "^0.1.1",
"async": "^2.6.0",
@ -78,5 +78,5 @@
"typescript": "^3.3.1"
},
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf"
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3"
}

@ -112,35 +112,34 @@ const RemixApp = (props: IRemixAppUi) => {
setShowEnterDialog(false)
localStorage.setItem('hadUsageTypeAsked', type)
await props.app.appManager.call('walkthrough', 'start')
// Use the type to setup the UI accordingly
switch (type) {
case UsageTypes.Beginner: {
await props.app.appManager.call('manager', 'activatePlugin', 'LearnEth')
// const wName = 'Playground'
// const workspaces = await props.app.appManager.call('filePanel', 'getWorkspaces')
// if (!workspaces.find((workspace) => workspace.name === wName)) {
// await props.app.appManager.call('filePanel', 'createWorkspace', wName, 'playground')
// }
// await props.app.appManager.call('filePanel', 'switchToWorkspace', { name: wName, isLocalHost: false })
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'beginner'])
break
}
case UsageTypes.Advance: {
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'tutor'])
break
}
case UsageTypes.Prototyper: {
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'prototyper'])
break
}
case UsageTypes.Production: {
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'production'])
break
}
default: throw new Error()
case UsageTypes.Beginner: {
await props.app.appManager.call('manager', 'activatePlugin', 'LearnEth')
await props.app.appManager.call('walkthrough', 'start')
// const wName = 'Playground'
// const workspaces = await props.app.appManager.call('filePanel', 'getWorkspaces')
// if (!workspaces.find((workspace) => workspace.name === wName)) {
// await props.app.appManager.call('filePanel', 'createWorkspace', wName, 'playground')
// }
// await props.app.appManager.call('filePanel', 'switchToWorkspace', { name: wName, isLocalHost: false })
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'beginner'])
break
}
case UsageTypes.Advance: {
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'tutor'])
break
}
case UsageTypes.Prototyper: {
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'prototyper'])
break
}
case UsageTypes.Production: {
_paq.push(['trackEvent', 'enterDialog', 'usageType', 'production'])
break
}
default: throw new Error()
}
}

@ -40,7 +40,39 @@ function HomeTabFeatured() {
autoPlaySpeed={15000}
dotListClass="position-relative mt-2"
>
<div className="mx-1 px-1 d-flex">
<div className="mr-1 pr-1 d-flex">
<a href="https://cryptpad.fr/form/#/2/form/view/pV-DdryeJoYUWvW+gXsFaMNynEY7t5mUsgeD1urgwSE/" target="__blank">
<img src={'/assets/img/soliditySurvey2023.webp'} style={{flex: '1', height: '170px', maxWidth: '170px'}} alt=""></img>
</a>
<div className="h6 w-50 p-2 pl-4 align-self-center" style={{flex: '1'}}>
<h5>
SOLIDITY DEVELOPER SURVEY 2023
</h5>
<p className='pt-2 mb-1'>
Please take a few minutes of your time to complete the survey.
</p>
<p className="mb-3">
Thank you for your support! Read the full announcement
<a
className="mx-1"
onClick={() => _paq.push(['trackEvent', 'hometab', 'featuredSection', 'soliditySurvey23'])}
target="__blank"
href="https://soliditylang.org/blog/2023/12/08/solidity-developer-survey-2023-announcement/"
>
here.
</a>
</p>
<a
href="https://cryptpad.fr/form/#/2/form/view/pV-DdryeJoYUWvW+gXsFaMNynEY7t5mUsgeD1urgwSE/"
target="__blank"
className='remixui_home_text btn-sm btn btn-secondary text-decoration-none'
style={{cursor: 'pointer'}}
>
Start Survey
</a>
</div>
</div>
<div className="mr-1 pr-1 d-flex">
<a href="https://medium.com/remix-ide/remix-release-v0-38-0-dccd551b6f1e" target="__blank">
<img src={'assets/img/remi_drums_whatsnew.webp'} style={{flex: '1', height: '170px', maxWidth: '170px'}} alt=""></img>
</a>
@ -66,7 +98,7 @@ function HomeTabFeatured() {
</a>
</div>
</div>
<div className="mx-1 px-1 d-flex">
<div className="mr-1 pr-1 d-flex">
<a href="https://remix-project.org" target="__blank">
<img src={'assets/img/bgRemi_small.webp'} style={{flex: '1', height: '170px', maxWidth: '170px'}} alt=""></img>
</a>
@ -87,7 +119,7 @@ function HomeTabFeatured() {
</a>
</div>
</div>
<div className="mx-1 px-1 d-flex">
<div className="mr-1 pr-1 d-flex">
<a href="https://www.youtube.com/@EthereumRemix/videos" target="__blank">
<img src={'/assets/img/YouTubeLogo.webp'} style={{flex: '1', height: '170px', maxWidth: '170px'}} alt=""></img>
</a>
@ -111,7 +143,7 @@ function HomeTabFeatured() {
</a>
</div>
</div>
<div className="mx-1 px-1 d-flex">
<div className="mr-1 pr-1 d-flex">
<a href="https://docs.google.com/forms/d/e/1FAIpQLSd0WsJnKbeJo-BGrnf7WijxAdmE4PnC_Z4M0IApbBfHLHZdsQ/viewform" target="__blank">
<img src={'/assets/img/remixRewardBetaTester_small.webp'} style={{flex: '1', height: '170px', maxWidth: '170px'}} alt=""></img>
</a>

@ -25,7 +25,7 @@ function WorkspaceTemplate({gsID, workspaceTitle, description, projectLogo, call
<CustomTooltip placement={'top'} tooltipClasses="text-wrap" tooltipId="etherscan-receipt-proxy-status" tooltipText={description}>
<div className='d-flex flex-column align-items-center'>
<label className="h5 pb-1 mt-1 text-uppercase remixui_home_cursorStyle" style={{color: themeFilter.name == "dark" ? "var(--white)" : "var(--black)"}}>{workspaceTitle}</label>
<img className="" src={projectLogo} alt="" style={{height: "20px", width: "fit-content", filter: themeFilter.name == "dark" ? "invert(1)" : "invert(0)"}} />
<img className="" src={projectLogo} alt="" style={{height: "20px", filter: themeFilter.name == "dark" ? "invert(1)" : "invert(0)"}} />
</div>
</CustomTooltip>
</div>

@ -19,10 +19,12 @@ const PermissionHandlerDialog = (props: PermissionHandlerProps) => {
}
const imgFrom = () => {
return <img className={`${theme === 'dark' ? 'invert' : ''}`} alt="" id="permissionModalImagesFrom" src={from.icon} />
if (!from.icon || from.icon === '') from.icon = "/assets/img/pluginManager.webp"
return <img className={`opacity(0.5);`} alt="" id="permissionModalImagesFrom" src={from.icon} />
}
const imgTo = () => {
return <img className={`${theme === 'dark' ? 'invert' : ''}`} alt="" id="permissionModalImagesTo" src={to.icon} />
if (!to.icon || to.icon === '') to.icon = "/assets/img/pluginManager.webp"
return <img className={`opacity(0.5);`} alt="" id="permissionModalImagesTo" src={to.icon} />
}
const pluginsImages = () => {
return (

@ -90,7 +90,7 @@ function PermisssionsSettings() {
htmlFor={`permission-checkbox-${targetPlugin}-${funcName}-${targetPlugin}`}
data-id={`permission-label-${targetPlugin}-${funcName}-${targetPlugin}`}
>
<FormattedMessage id="pluginManager.allow" /> <u>{pluginName}</u> <FormattedMessage id="pluginManager.toCall" /> <u>{funcName}</u>
<FormattedMessage id="pluginManager.allow" /><u>{pluginName}</u> <FormattedMessage id="pluginManager.toCall" /> <u>{funcName}</u>
</label>
</span>
</div>

@ -535,7 +535,7 @@ export function ContractDropdownUI(props: ContractDropdownProps) {
>
<input
ref={atAddressValue}
className={(!addressIsValid ? 'border border-danger' : 'border-0') + ' h-100 udapp_input udapp_ataddressinput ataddressinput form-control'}
className={(!addressIsValid ? 'border border-danger' : 'border-dark') + ' h-100 udapp_input udapp_ataddressinput ataddressinput form-control'}
placeholder={intl.formatMessage({
id: 'udapp.loadContractFromAddress',
})}

@ -46,7 +46,7 @@ export function RecorderUI(props: RecorderProps) {
tooltipId="recordedTransactionsCounttooltip"
tooltipText={<FormattedMessage id="udapp.transactionsCountTooltip" />}
>
<div className="pl-3 badge badge-pill badge-primary text-center" style={{cursor:"default"}} data-title="The number of recorded transactions">
<div className="ml-2 badge badge-pill badge-primary text-center" style={{cursor:"default"}} data-title="The number of recorded transactions">
{props.count}
</div>
</CustomTooltip>

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-url-resolver",
"version": "0.0.66",
"version": "0.0.67",
"description": "Solidity import url resolver engine",
"main": "src/index.js",
"types": "src/index.d.ts",
@ -41,5 +41,5 @@
"typescript": "^3.1.6"
},
"typings": "src/index.d.ts",
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf"
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-ws-templates",
"version": "1.0.31",
"version": "1.0.32",
"description": "Create a Remix IDE workspace using different templates",
"main": "src/index.js",
"types": "src/index.d.ts",
@ -24,5 +24,5 @@
"ethers": "^5.4.2",
"web3": "^4.1.1"
},
"gitHead": "29e14eb9e9750b43522e3667bb340ff6884d1ebf"
"gitHead": "2c7dc1096de47ad3a80cd983b29bac6ac17b30f3"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remixd",
"version": "0.6.20",
"version": "0.6.21",
"description": "remix server: allow accessing file system from remix.ethereum.org and start a dev environment (see help section)",
"main": "index.js",
"types": "./index.d.ts",

Loading…
Cancel
Save