Merge branch 'master' into iconForMaintained

pull/5288/head
Liana Husikyan 4 weeks ago committed by GitHub
commit e5e3c3bc99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      apps/contract-verification/src/app/components/NavMenu.tsx
  2. 2
      apps/remix-ide-e2e/src/tests/etherscan_api.test.ts
  3. 9
      apps/remix-ide/src/app/plugins/remixGuide.tsx
  4. 17
      apps/remix-ide/src/app/providers/injected-arbitrum-one-provider.tsx
  5. 10
      apps/remix-ide/src/app/providers/injected-custom-provider.tsx
  6. 40
      apps/remix-ide/src/app/providers/injected-ephemery-testnet-provider.tsx
  7. 17
      apps/remix-ide/src/app/providers/injected-optimism-provider.tsx
  8. 26
      apps/remix-ide/src/app/providers/injected-provider-trustwallet.tsx
  9. 27
      apps/remix-ide/src/app/providers/injected-skale-chaos-testnet-provider.tsx
  10. 14
      apps/remix-ide/src/app/udapp/run-tab.tsx
  11. 8
      apps/remix-ide/src/remixAppManager.js
  12. 8
      libs/ghaction-helper/package.json
  13. 8
      libs/remix-analyzer/package.json
  14. 6
      libs/remix-astwalker/package.json
  15. 12
      libs/remix-debug/package.json
  16. 4
      libs/remix-lib/package.json
  17. 6
      libs/remix-simulator/package.json
  18. 6
      libs/remix-solidity/package.json
  19. 10
      libs/remix-tests/package.json
  20. 22
      libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx
  21. 4
      libs/remix-url-resolver/package.json
  22. 4
      libs/remix-ws-templates/package.json
  23. 2
      libs/remixd/package.json

@ -11,7 +11,7 @@ const NavItem: React.FC<NavItemProps> = ({ to, icon, title }) => {
return (
<NavLink
to={to}
className={({ isActive }) => 'text-decoration-none d-flex px-1 flex-column justify-content-center small ' + (isActive ? "bg-light" : "bg-transparent")}
className={({ isActive }) => 'text-decoration-none d-flex px-1 py-1 flex-column justify-content-center small ' + (isActive ? "bg-light border-top border-left border-right" : "border-0 bg-transparent")}
>
<span className=''>
<span>{icon}</span>

@ -62,7 +62,7 @@ const branch = process.env.CIRCLE_BRANCH;
const isMasterBranch = branch === 'master';
module.exports = {
...(branch ? (isMasterBranch ? tests : {}) : tests),
...{} //(branch ? (isMasterBranch ? tests : {}) : tests),
};

File diff suppressed because one or more lines are too long

@ -1,17 +0,0 @@
import * as packageJson from '../../../../../package.json'
import { InjectedCustomProvider } from './injected-custom-provider'
const profile = {
name: 'injected-arbitrum-one-provider',
displayName: 'Injected Arbitrum One Provider',
kind: 'provider',
description: 'injected Arbitrum One Provider',
methods: ['sendAsync', 'init'],
version: packageJson.version
}
export class InjectedArbitrumOneProvider extends InjectedCustomProvider {
constructor() {
super(profile, 'Arbitrum One', '0xa4b1', ['https://arb1.arbitrum.io/rpc'])
}
}

@ -4,12 +4,14 @@ import { InjectedProviderDefault } from './injected-provider-default'
export class InjectedCustomProvider extends InjectedProviderDefault {
chainName: string
chainId: string
pluginName: string
rpcUrls: Array<string>
nativeCurrency: Record<string, any>
blockExplorerUrls: Array<string>
constructor(provider: any, chainName: string, chainId: string, rpcUrls: Array<string>, nativeCurrency?: Record<string, any>, blockExplorerUrls?: Array<string>) {
super(provider, chainName)
constructor(provider: any, pluginName: string, chainName: string, chainId: string, rpcUrls: Array<string>, nativeCurrency?: Record<string, any>, blockExplorerUrls?: Array<string>) {
super(provider, pluginName)
this.pluginName = pluginName
this.chainName = chainName
this.chainId = chainId
this.rpcUrls = rpcUrls
@ -44,8 +46,8 @@ export const setCustomNetwork = async (chainName: string, chainId: string, rpcUr
chainName: chainName,
rpcUrls: rpcUrls,
}
if (nativeCurrency) paramsObj.nativeCurrency = nativeCurrency
if (blockExplorerUrls) paramsObj.blockExplorerUrls = blockExplorerUrls
paramsObj.nativeCurrency = nativeCurrency ? nativeCurrency : null
paramsObj.blockExplorerUrls = blockExplorerUrls ? blockExplorerUrls : null
await (window as any).ethereum.request({
method: 'wallet_addEthereumChain',
params: [paramsObj]

@ -1,40 +0,0 @@
import * as packageJson from '../../../../../package.json'
import { InjectedCustomProvider } from './injected-custom-provider'
import { Web3 } from 'web3'
const profile = {
name: 'injected-ephemery-testnet-provider',
displayName: 'Injected Ephemery Testnet Provider',
kind: 'provider',
description: 'Injected Ephemery Testnet Provider',
methods: ['sendAsync', 'init'],
version: packageJson.version
}
export class InjectedEphemeryTestnetProvider extends InjectedCustomProvider {
constructor() {
super(profile,
'Ephemery Testnet',
'',
['https://otter.bordel.wtf/erigon', 'https://eth.ephemeral.zeus.fyi'],
{
"name": "Ephemery ETH",
"symbol": "ETH",
"decimals": 18
},
[
'https://otter.bordel.wtf/',
'https://explorer.ephemery.dev/'
]
)
}
async init() {
const chainId = await new Web3(this.rpcUrls[0]).eth.getChainId()
this.chainId = `0x${chainId.toString(16)}`
this.chainName = `Ephemery Testnet ${chainId}`
await super.init()
return {}
}
}

@ -1,17 +0,0 @@
import * as packageJson from '../../../../../package.json'
import { InjectedCustomProvider } from './injected-custom-provider'
const profile = {
name: 'injected-optimism-provider',
displayName: 'Injected Optimism Provider',
kind: 'provider',
description: 'injected Optimism Provider',
methods: ['sendAsync', 'init'],
version: packageJson.version
}
export class Injected0ptimismProvider extends InjectedCustomProvider {
constructor() {
super(profile, 'Optimism', '0xa', ['https://mainnet.optimism.io'])
}
}

@ -1,26 +0,0 @@
/* global ethereum */
import * as packageJson from '../../../../../package.json'
import { InjectedProvider } from './injected-provider'
const profile = {
name: 'injected-trustwallet',
displayName: 'Trust wallet',
kind: 'provider',
description: 'Trust wallet',
methods: ['sendAsync', 'init'],
version: packageJson.version
}
export class InjectedProviderTrustWallet extends InjectedProvider {
constructor() {
super(profile)
}
getInjectedProvider() {
return (window as any).trustwallet
}
notFound() {
return 'Could not find Trust Wallet provider. Please make sure the Trust Wallet extension is active. Download the latest version from https://trustwallet.com/browser-extension'
}
}

@ -1,27 +0,0 @@
import * as packageJson from '../../../../../package.json'
import { InjectedCustomProvider } from './injected-custom-provider'
const profile = {
name: 'injected-skale-chaos-testnet-provider',
displayName: 'Injected SKALE Chaos Testnet',
kind: 'provider',
description: 'Injected SKALE Chaos Testnet Provider',
methods: ['sendAsync', 'init'],
version: packageJson.version
}
export class InjectedSKALEChaosTestnetProvider extends InjectedCustomProvider {
constructor () {
super(profile,
'SKALE Chaos Testnet',
'0x50877ed6',
['https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix'],
{
"name": "sFUEL",
"symbol": "sFUEL",
"decimals": 18
}
)
}
}

@ -215,8 +215,8 @@ export class RunTab extends ViewPlugin {
const addCustomInjectedProvider = async (position, event, name, displayName, networkId, urls, nativeCurrency?) => {
// name = `${name} through ${event.detail.info.name}`
await this.engine.register([new InjectedCustomProvider(event.detail.provider, name, networkId, urls, nativeCurrency)])
await addProvider(position, name, displayName, true, false)
await this.engine.register([new InjectedCustomProvider(event.detail.provider, name, displayName, networkId, urls, nativeCurrency)])
await addProvider(position, name, displayName + ' - ' + event.detail.info.name, true, false)
}
const registerInjectedProvider = async (event) => {
const name = 'injected-' + event.detail.info.name
@ -225,21 +225,21 @@ export class RunTab extends ViewPlugin {
await addProvider(0, name, displayName, true, false)
if (event.detail.info.name === 'MetaMask') {
await addCustomInjectedProvider(7, event, 'injected-metamask-optimism', 'L2 - Optimism - ' + event.detail.info.name, '0xa', ['https://mainnet.optimism.io'])
await addCustomInjectedProvider(8, event, 'injected-metamask-arbitrum', 'L2 - Arbitrum - ' + event.detail.info.name, '0xa4b1', ['https://arb1.arbitrum.io/rpc'])
await addCustomInjectedProvider(5, event, 'injected-metamask-sepolia', 'Sepolia Testnet - ' + event.detail.info.name, '0xaa36a7', [],
await addCustomInjectedProvider(7, event, 'injected-metamask-optimism', 'L2 - Optimism', '0xa', ['https://mainnet.optimism.io'])
await addCustomInjectedProvider(8, event, 'injected-metamask-arbitrum', 'L2 - Arbitrum', '0xa4b1', ['https://arb1.arbitrum.io/rpc'])
await addCustomInjectedProvider(5, event, 'injected-metamask-sepolia', 'Sepolia Testnet', '0xaa36a7', [],
{
"name": "Sepolia ETH",
"symbol": "ETH",
"decimals": 18
})
await addCustomInjectedProvider(9, event, 'injected-metamask-ephemery', 'Ephemery Testnet - ' + event.detail.info.name, '', ['https://otter.bordel.wtf/erigon', 'https://eth.ephemeral.zeus.fyi'],
await addCustomInjectedProvider(9, event, 'injected-metamask-ephemery', 'Ephemery Testnet', '', ['https://otter.bordel.wtf/erigon', 'https://eth.ephemeral.zeus.fyi'],
{
"name": "Ephemery ETH",
"symbol": "ETH",
"decimals": 18
})
await addCustomInjectedProvider(10, event, 'injected-metamask-gnosis', 'Gnosis Mainnet - ' + event.detail.info.name, '', ['https://rpc.ankr.com/gnosis', 'https://1rpc.io/gnosis'],
await addCustomInjectedProvider(10, event, 'injected-metamask-gnosis', 'Gnosis Mainnet', '', ['https://rpc.ankr.com/gnosis', 'https://1rpc.io/gnosis'],
{
"name": "XDAI",
"symbol": "XDAI",

@ -83,7 +83,6 @@ let requiredModules = [
'dgit',
'pinnedPanel',
'pluginStateLogger',
//'remixGuide',
'environmentExplorer',
'templateSelection',
'matomo',
@ -93,7 +92,7 @@ let requiredModules = [
// dependentModules shouldn't be manually activated (e.g hardhat is activated by remixd)
const dependentModules = ['foundry', 'hardhat', 'truffle', 'slither']
const loadLocalPlugins = ['doc-gen', 'doc-viewer', 'etherscan', 'contract-verification', 'vyper', 'solhint', 'walletconnect', 'circuit-compiler', 'learneth', 'quick-dapp']
const loadLocalPlugins = ['doc-gen', 'doc-viewer', 'contract-verification', 'vyper', 'solhint', 'walletconnect', 'circuit-compiler', 'learneth', 'quick-dapp']
const partnerPlugins = ['cookbookdev']
@ -138,7 +137,7 @@ export function isNative(name) {
'circuit-compiler',
'compilationDetails',
'vyperCompilationDetails',
//'remixGuide',
'remixGuide',
'environmentExplorer',
'templateSelection',
'walletconnect',
@ -410,7 +409,8 @@ class PluginLoader {
'compilationDetails',
'walletconnect',
'dapp-draft',
'solidityumlgen'
'solidityumlgen',
'remixGuide'
]
this.loaders = {}
this.loaders.localStorage = {

@ -1,6 +1,6 @@
{
"name": "@remix-project/ghaction-helper",
"version": "0.1.38",
"version": "0.1.39",
"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.44",
"@remix-project/remix-solidity": "^0.5.45",
"@types/chai": "^4.3.4",
"typescript": "^4.9.3"
},
"dependencies": {
"@ethereum-waffle/chai": "^3.4.4",
"@remix-project/remix-simulator": "^0.2.58",
"@remix-project/remix-simulator": "^0.2.59",
"chai": "^4.3.7",
"ethers": "^5.7.2",
"web3": "^4.1.1"
},
"types": "./src/index.d.ts",
"gitHead": "1beb79ae8b8269ba42440169ae8674b82f2ef034"
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-analyzer",
"version": "0.5.67",
"version": "0.5.68",
"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": "5.4.0",
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@remix-project/remix-astwalker": "^0.0.88",
"@remix-project/remix-lib": "^0.5.65",
"@remix-project/remix-astwalker": "^0.0.89",
"@remix-project/remix-lib": "^0.5.66",
"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": "1beb79ae8b8269ba42440169ae8674b82f2ef034",
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91",
"main": "./src/index.js"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-astwalker",
"version": "0.0.88",
"version": "0.0.89",
"description": "Tool to walk through Solidity AST",
"main": "src/index.js",
"scripts": {
@ -37,7 +37,7 @@
"@ethereumjs/tx": "5.4.0",
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@remix-project/remix-lib": "^0.5.65",
"@remix-project/remix-lib": "^0.5.66",
"@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": "1beb79ae8b8269ba42440169ae8674b82f2ef034",
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-debug",
"version": "0.5.58",
"version": "0.5.59",
"description": "Tool to debug Ethereum transactions",
"contributors": [
{
@ -26,10 +26,10 @@
"@ethereumjs/tx": "5.4.0",
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@remix-project/remix-astwalker": "^0.0.88",
"@remix-project/remix-lib": "^0.5.65",
"@remix-project/remix-simulator": "^0.2.58",
"@remix-project/remix-solidity": "^0.5.44",
"@remix-project/remix-astwalker": "^0.0.89",
"@remix-project/remix-lib": "^0.5.66",
"@remix-project/remix-simulator": "^0.2.59",
"@remix-project/remix-solidity": "^0.5.45",
"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": "1beb79ae8b8269ba42440169ae8674b82f2ef034",
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-lib",
"version": "0.5.65",
"version": "0.5.66",
"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": "1beb79ae8b8269ba42440169ae8674b82f2ef034",
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-simulator",
"version": "0.2.58",
"version": "0.2.59",
"description": "Ethereum IDE and tools for the web",
"contributors": [
{
@ -23,7 +23,7 @@
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@metamask/eth-sig-util": "^7.0.2",
"@remix-project/remix-lib": "^0.5.65",
"@remix-project/remix-lib": "^0.5.66",
"ansi-gray": "^0.1.1",
"async": "^3.1.0",
"body-parser": "^1.18.2",
@ -71,6 +71,6 @@
},
"homepage": "https://github.com/ethereum/remix-project/tree/master/libs/remix-simulator#readme",
"typings": "src/index.d.ts",
"gitHead": "1beb79ae8b8269ba42440169ae8674b82f2ef034",
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91",
"types": "./src/index.d.ts"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-solidity",
"version": "0.5.44",
"version": "0.5.45",
"description": "Tool to load and run Solidity compiler",
"main": "src/index.js",
"types": "src/index.d.ts",
@ -19,7 +19,7 @@
"@ethereumjs/tx": "5.4.0",
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@remix-project/remix-lib": "^0.5.65",
"@remix-project/remix-lib": "^0.5.66",
"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": "1beb79ae8b8269ba42440169ae8674b82f2ef034"
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-tests",
"version": "0.2.58",
"version": "0.2.59",
"description": "Tool to test Solidity smart contracts",
"main": "src/index.js",
"types": "./src/index.d.ts",
@ -41,9 +41,9 @@
"@ethereumjs/tx": "5.4.0",
"@ethereumjs/util": "9.1.0",
"@ethereumjs/vm": "8.1.1",
"@remix-project/remix-lib": "^0.5.65",
"@remix-project/remix-simulator": "^0.2.58",
"@remix-project/remix-solidity": "^0.5.44",
"@remix-project/remix-lib": "^0.5.66",
"@remix-project/remix-simulator": "^0.2.59",
"@remix-project/remix-solidity": "^0.5.45",
"@remix-project/remix-url-resolver": "^0.0.42",
"ansi-gray": "^0.1.1",
"async": "^2.6.0",
@ -89,5 +89,5 @@
"@ethereumjs/trie": "6.2.1"
},
"typings": "src/index.d.ts",
"gitHead": "1beb79ae8b8269ba42440169ae8674b82f2ef034"
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91"
}

@ -18,6 +18,11 @@ function HomeTabFeatured(props:HomeTabFeaturedProps) {
props.plugin.verticalIcons.select('LearnEth')
_paq.push(['trackEvent', 'hometab', 'featuredSection', 'LearnEth'])
}
const handleStartRemixGuide = async () => {
_paq.push(['trackEvent', 'hometab', 'featuredSection', 'watchOnRemixGuide'])
await props.plugin.appManager.activatePlugin(['remixGuide'])
await props.plugin.call('tabs', 'focus', 'remixGuide')
}
return (
<div className="pt-1 pl-2" id="hTFeaturedeSection">
<div className="mb-2 remix_ui-carousel-container">
@ -80,19 +85,18 @@ function HomeTabFeatured(props:HomeTabFeaturedProps) {
<div style={{ fontSize: '0.8rem', lineHeight: '1.25rem' }} className="mb-3">
<FormattedMessage id="home.learnEthPromoText" />
</div>
<span
<button
className="remixui_home_text btn-sm btn-secondary mt-2 text-decoration-none mb-3"
style={{ cursor: 'pointer' }}
onClick={()=>handleStartLearneth()}
>
<FormattedMessage id="home.learnEthPromoButton" />
</span>
</button>
</div>
</div>
<div className="mr-1 pr-1 d-flex align-items-center justify-content-center h-100">
<a href="https://www.youtube.com/@EthereumRemix/videos" target="__blank">
<button className="btn" onClick={() => handleStartRemixGuide()}>
<img src={'assets/img/YouTubeLogo.webp'} className="remixui_carouselImage" alt=""></img>
</a>
</button>
<div className="h6 w-50 p-2 pl-4 align-self-center" style={{ flex: '1' }}>
<h5>
<FormattedMessage id="home.remixYouTube" />
@ -103,14 +107,12 @@ function HomeTabFeatured(props:HomeTabFeaturedProps) {
<div style={{ fontSize: '0.8rem' }} className="mb-3">
<FormattedMessage id="home.remixYouTubeText2" />
</div>
<a
<button
className="remixui_home_text btn-sm btn-secondary mt-2 text-decoration-none mb-3"
onClick={() => _paq.push(['trackEvent', 'hometab', 'featuredSection', 'youTubeMore'])}
target="__blank"
href="https://www.youtube.com/@EthereumRemix/videos"
onClick={() => handleStartRemixGuide()}
>
<FormattedMessage id="home.remixYouTubeMore" />
</a>
</button>
</div>
</div>
</Carousel>

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-url-resolver",
"version": "0.0.87",
"version": "0.0.88",
"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": "1beb79ae8b8269ba42440169ae8674b82f2ef034"
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remix-ws-templates",
"version": "1.0.52",
"version": "1.0.53",
"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": "1beb79ae8b8269ba42440169ae8674b82f2ef034"
"gitHead": "0875db01e67e48861e55a44fc8293e4c4bf58d91"
}

@ -1,6 +1,6 @@
{
"name": "@remix-project/remixd",
"version": "0.6.38",
"version": "0.6.39",
"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