diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 31b05d07789..72252c06baa 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -25,8 +25,8 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. Windows, Linux or MacOS] - - Browser [e.g. chrome, firefox] - - Version [e.g. 22] + - Browser: [e.g. chrome, firefox] + - Version: [e.g. 22] **Additional context** Add any other context about the problem here. diff --git a/apps/circuit-compiler/webpack.config.js b/apps/circuit-compiler/webpack.config.js index fecff4fa704..a4aa984df96 100644 --- a/apps/circuit-compiler/webpack.config.js +++ b/apps/circuit-compiler/webpack.config.js @@ -55,7 +55,7 @@ module.exports = composePlugins(withNx(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ["source-map-loader"], diff --git a/apps/contract-verification/webpack.config.js b/apps/contract-verification/webpack.config.js index 48cddff3df1..8d0246f078f 100644 --- a/apps/contract-verification/webpack.config.js +++ b/apps/contract-verification/webpack.config.js @@ -56,7 +56,7 @@ module.exports = composePlugins(withNx(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ['source-map-loader'], diff --git a/apps/doc-gen/webpack.config.js b/apps/doc-gen/webpack.config.js index 86bcf513957..947f6b0346c 100644 --- a/apps/doc-gen/webpack.config.js +++ b/apps/doc-gen/webpack.config.js @@ -40,7 +40,7 @@ module.exports = composePlugins(withNx(), withReact(), config => { new webpack.DefinePlugin({}), ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ['source-map-loader'], diff --git a/apps/learneth/src/redux/models/remixide.ts b/apps/learneth/src/redux/models/remixide.ts index f4c279ce31d..89a406d84a7 100644 --- a/apps/learneth/src/redux/models/remixide.ts +++ b/apps/learneth/src/redux/models/remixide.ts @@ -33,7 +33,9 @@ const Model: ModelType = { }, }) - yield remixClient.onload() + yield remixClient.onload(() => { + remixClient.call('manager', 'activatePlugin', 'solidityUnitTesting') + }) toast.dismiss() diff --git a/apps/learneth/webpack.config.js b/apps/learneth/webpack.config.js index 4db6b9fc008..5831ed0a23a 100644 --- a/apps/learneth/webpack.config.js +++ b/apps/learneth/webpack.config.js @@ -54,7 +54,7 @@ module.exports = composePlugins(withNx(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ['source-map-loader'], diff --git a/apps/noir-compiler/webpack.config.js b/apps/noir-compiler/webpack.config.js index fecff4fa704..a4aa984df96 100644 --- a/apps/noir-compiler/webpack.config.js +++ b/apps/noir-compiler/webpack.config.js @@ -55,7 +55,7 @@ module.exports = composePlugins(withNx(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ["source-map-loader"], diff --git a/apps/quick-dapp/webpack.config.js b/apps/quick-dapp/webpack.config.js index 4db6b9fc008..5831ed0a23a 100644 --- a/apps/quick-dapp/webpack.config.js +++ b/apps/quick-dapp/webpack.config.js @@ -54,7 +54,7 @@ module.exports = composePlugins(withNx(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ['source-map-loader'], diff --git a/apps/remix-dapp/webpack.config.js b/apps/remix-dapp/webpack.config.js index 8a8306b36a4..7eeee21e2ec 100644 --- a/apps/remix-dapp/webpack.config.js +++ b/apps/remix-dapp/webpack.config.js @@ -72,7 +72,7 @@ module.exports = composePlugins(withNx(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ['source-map-loader'], diff --git a/apps/remix-ide-e2e/src/local-plugin/webpack.config.js b/apps/remix-ide-e2e/src/local-plugin/webpack.config.js index 25932a10549..7e7efb4a603 100644 --- a/apps/remix-ide-e2e/src/local-plugin/webpack.config.js +++ b/apps/remix-ide-e2e/src/local-plugin/webpack.config.js @@ -8,7 +8,7 @@ module.exports = composePlugins(withNx(), (config) => { // add public path config.output.publicPath = '/' - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ["source-map-loader"], diff --git a/apps/remix-ide-e2e/src/tests/quickDapp.test.ts b/apps/remix-ide-e2e/src/tests/quickDapp.test.ts index c557a9740c4..ed1c9ffdda5 100644 --- a/apps/remix-ide-e2e/src/tests/quickDapp.test.ts +++ b/apps/remix-ide-e2e/src/tests/quickDapp.test.ts @@ -90,7 +90,7 @@ const tests = { .setValue('input[data-id="surgePassword"]', surgePassword) .setValue('input[data-id="surgeSubdomain"]', surgeSubdomain) .setValue('input[data-id="functionTitle0x6057361d"]', 'Function Store Title') - .setValue('input[data-id="functionTitle0x2e64cec1"]', 'Function Retrive Title') + .setValue('input[data-id="functionTitle0x2e64cec1"]', 'Function Retrieve Title') .execute((function() { document.querySelector('input[data-id="uploadLogo"]').classList.remove('d-none'); })) @@ -176,7 +176,7 @@ const tests = { }) }) .assert.containsText('*[data-id="functionTitle0x6057361d"]', 'Function Store Title') - .assert.containsText('*[data-id="functionTitle0x2e64cec1"]', 'Function Retrive Title') + .assert.containsText('*[data-id="functionTitle0x2e64cec1"]', 'Function Retrieve Title') .assert.containsText('*[data-id="dappTitle"]', 'Storage') .assert.containsText('*[data-id="dappInstructions"]', 'Store & retrieve value in a variable') .assert.elementPresent('.fa-twitter.btn', 'Twitter icon should be present') @@ -191,9 +191,9 @@ const tests = { .getLocation('*[data-id="function0x6057361d"]', function (result: any) { const funcStoreLocation = result.value browser.getLocation('*[data-id="function0x2e64cec1"]', function (result: any) { - const funcRetriveLocation = result.value - browser.assert.strictEqual(funcStoreLocation.y, funcRetriveLocation.y, 'Both functions should be on the same horizontal line') - browser.assert.ok(funcStoreLocation.x > funcRetriveLocation.x, 'Function Store should be on the right of Function Retrive') + const funcRetrieveLocation = result.value + browser.assert.strictEqual(funcStoreLocation.y, funcRetrieveLocation.y, 'Both functions should be on the same horizontal line') + browser.assert.ok(funcStoreLocation.x > funcRetrieveLocation.x, 'Function Store should be on the right of Function Retrieve') }) }) .getAttribute('a[data-id="viewSourceCode"]', 'href', function (result) { diff --git a/apps/remix-ide-e2e/src/tests/solidityImport.test.ts b/apps/remix-ide-e2e/src/tests/solidityImport.test.ts index 4f3c51a3a97..083f5bdf3fc 100644 --- a/apps/remix-ide-e2e/src/tests/solidityImport.test.ts +++ b/apps/remix-ide-e2e/src/tests/solidityImport.test.ts @@ -158,7 +158,7 @@ const sources = [ 'Untitled5.sol': { content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v2.3.0/contracts/token/ERC20/ERC20.sol"; contract test8 {}' } }, { - 'Untitled6.sol': { content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; contract test10 {}' } + 'Untitled6.sol': { content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; contract test10 {}' } }, { 'Untitled7.sol': { content: 'import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-contracts/master/contracts/token/ERC20/ERC20.sol"; contract test11 {}' } diff --git a/apps/remix-ide-e2e/src/tests/terminal.test.ts b/apps/remix-ide-e2e/src/tests/terminal.test.ts index 7d7092431ff..8aa15f221cb 100644 --- a/apps/remix-ide-e2e/src/tests/terminal.test.ts +++ b/apps/remix-ide-e2e/src/tests/terminal.test.ts @@ -183,16 +183,16 @@ module.exports = { .selectContract('OwnerTest') .createContract('') .pause(1000) - .journalChildIncludes('constructor', { shouldHaveOnlyOneOccurence: true }) + .journalChildIncludes('constructor', { shouldHaveOnlyOneOccurrence: true }) .pause(5000) .click('*[data-id="terminalClearConsole"]') // clear the terminal .clickInstance(0) .clickFunction('changeOwner - transact (not payable)', { types: 'address newOwner', values: '0xd9145CCE52D386f254917e481eB44e9943F39138' }) .pause(1000) - .journalChildIncludes('inside changeOwner', { shouldHaveOnlyOneOccurence: true }) + .journalChildIncludes('inside changeOwner', { shouldHaveOnlyOneOccurrence: true }) .clickFunction('getOwner - call') .pause(1000) - .journalChildIncludes('inside getOwner', { shouldHaveOnlyOneOccurence: true }) + .journalChildIncludes('inside getOwner', { shouldHaveOnlyOneOccurrence: true }) }, 'Emit 2 similar events and check the filtering is done properly #group4': function (browser: NightwatchBrowser) { @@ -385,7 +385,7 @@ module.exports = { } function resolveENS() view { - // Same address for Mainet, Ropsten, Rinkerby, Gorli and other networks; + // Same address for Mainnet, Ropsten, Rinkerby, Gorli and other networks; ENS ens = ENS(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e); (,bytes32 node) = NameEncoder.dnsEncodeName("vitalik.eth"); Resolver resolver = ens.resolver(node); @@ -602,14 +602,14 @@ library Lib { } /** * @title Storage - * @dev Store & retrieve value inr a variable + * @dev Store & retrieve value in a variable */ contract StorageWithLib { uint256 number; /** - * @dev Store valrue in variable + * @dev Store value in variable * @param num value to store */ function store(uint256 num) public { @@ -750,7 +750,7 @@ const scriptAutoExec = { /** * @title Storage - * @dev Store & retrieve value inr a variable + * @dev Store & retrieve value in a variable * @custom:dev-run-script ./scripts/deploy_storage.js */ contract Storage { @@ -758,7 +758,7 @@ const scriptAutoExec = { uint256 number; /** - * @dev Store valrue in variable + * @dev Store value in variable * @param num value to store */ function store(uint256 num) public { diff --git a/apps/remix-ide-e2e/src/types/index.d.ts b/apps/remix-ide-e2e/src/types/index.d.ts index 5c6d3bd2626..f6f9213dd1f 100644 --- a/apps/remix-ide-e2e/src/types/index.d.ts +++ b/apps/remix-ide-e2e/src/types/index.d.ts @@ -25,7 +25,7 @@ declare module 'nightwatch' { journalLastChildIncludes(val: string): NightwatchBrowser executeScriptInTerminal(script: string): NightwatchBrowser clearEditableContent(cssSelector: string): NightwatchBrowser - journalChildIncludes(val: string, opts = {shouldHaveOnlyOneOccurence: boolean}): NightwatchBrowser + journalChildIncludes(val: string, opts = {shouldHaveOnlyOneOccurrence: boolean}): NightwatchBrowser debugTransaction(index: number): NightwatchBrowser checkElementStyle(cssSelector: string, styleProperty: string, expectedResult: string): NightwatchBrowser openFile(name: string): NightwatchBrowser @@ -57,7 +57,7 @@ declare module 'nightwatch' { journalLastChild(val: string): NightwatchBrowser checkTerminalFilter(filter: string, test: string, notContain: boolean): NightwatchBrowser noWorkerErrorFor(version: string): NightwatchBrowser - validateValueInput(selector: string, valueTosSet: string[], expectedValue: string): NightwatchBrowser + validateValueInput(selector: string, valueToSet: string[], expectedValue: string): NightwatchBrowser checkAnnotations(type: string): NightwatchBrowser checkAnnotationsNotPresent(type: string): NightwatchBrowser getLastTransactionHash(callback: (hash: string) => void) diff --git a/apps/remix-ide/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol b/apps/remix-ide/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol index 73ecf078be7..b3c11e796ea 100644 --- a/apps/remix-ide/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol +++ b/apps/remix-ide/contracts/node_modules/openzeppelin-solidity/contracts/sample.sol @@ -1 +1 @@ -import "https://github.com/OpenZeppelin/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; contract test11 {} +import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; contract test11 {} diff --git a/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx b/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx index 1dde824c8a8..dbe2dcb4e5a 100644 --- a/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx +++ b/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx @@ -6,6 +6,7 @@ import React, { useCallback } from 'react'; import { ICompletions, IModel, RemoteInferencer, IRemoteModel, IParams, GenerationParams, CodeExplainAgent } from '@remix/remix-ai-core'; import { CustomRemixApi } from '@remix-api' import { PluginViewWrapper } from '@remix-ui/helper' +const _paq = (window._paq = window._paq || []) type chatRequestBufferT = { [key in keyof T]: T[key] @@ -199,6 +200,7 @@ export class RemixAIPlugin extends ViewPlugin { else { console.log("chatRequestBuffer is not empty. First process the last request.") } + _paq.push(['trackEvent', 'ai', 'remixAI_chat', 'askFromTerminal']) } async ProcessChatRequestBuffer(params:IParams=GenerationParams){ diff --git a/apps/remix-ide/src/app/tabs/locales/en/pluginManager.json b/apps/remix-ide/src/app/tabs/locales/en/pluginManager.json index f6de5d5e42f..281e5c22757 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/pluginManager.json +++ b/apps/remix-ide/src/app/tabs/locales/en/pluginManager.json @@ -2,8 +2,8 @@ "pluginManager.displayName": "Plugin manager", "pluginManager.activate": "Activate", "pluginManager.deactivate": "Deactivate", - "pluginManager.activeModules": "Active Modules", - "pluginManager.inactiveModules": "Inactive Modules", + "pluginManager.activeModules": "Active Plugins", + "pluginManager.inactiveModules": "Inactive Plugins", "pluginManager.connectLocal": "Connect to a Local Plugin", "pluginManager.localForm.title": "Local Plugin", "pluginManager.localForm.pluginName": "Plugin Name", diff --git a/apps/remix-ide/src/assets/img/solSurvey2024.webp b/apps/remix-ide/src/assets/img/solSurvey2024.webp new file mode 100644 index 00000000000..c7d265673a0 Binary files /dev/null and b/apps/remix-ide/src/assets/img/solSurvey2024.webp differ diff --git a/apps/remix-ide/src/assets/img/soliditySurvey2023.webp b/apps/remix-ide/src/assets/img/soliditySurvey2023.webp deleted file mode 100644 index eb0a022e629..00000000000 Binary files a/apps/remix-ide/src/assets/img/soliditySurvey2023.webp and /dev/null differ diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index ec257903868..04179529601 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -149,7 +149,8 @@ export function isNative(name) { 'templateSelection', 'walletconnect', 'contract-verification', - 'popupPanel' + 'popupPanel', + 'LearnEth', ] return nativePlugins.includes(name) || requiredModules.includes(name) || isInjectedProvider(name) || isVM(name) || isScriptRunner(name) } diff --git a/apps/remix-ide/webpack.config.js b/apps/remix-ide/webpack.config.js index 08419aeb27d..82a8ea3bfb6 100644 --- a/apps/remix-ide/webpack.config.js +++ b/apps/remix-ide/webpack.config.js @@ -128,7 +128,7 @@ module.exports = composePlugins(withNx(), withReact(), (config) => { }) ) - // souce-map loader + // source-map loader config.module.rules.push({ test: /\.js$/, use: ['source-map-loader'], diff --git a/libs/remix-debug/src/code/codeManager.ts b/libs/remix-debug/src/code/codeManager.ts index 84e96fa8a3c..1c8b4eacd7d 100644 --- a/libs/remix-debug/src/code/codeManager.ts +++ b/libs/remix-debug/src/code/codeManager.ts @@ -134,25 +134,25 @@ export class CodeManager { return findNodeAtInstructionIndex('FunctionDefinition', instIndex, sourceMap, ast) } - private retrieveCodeAndTrigger (codeMananger, address, stepIndex, tx) { - codeMananger.getCode(address).then((result) => { - this.retrieveIndexAndTrigger(codeMananger, address, stepIndex, result.instructions) + private retrieveCodeAndTrigger (codeManager, address, stepIndex, tx) { + codeManager.getCode(address).then((result) => { + this.retrieveIndexAndTrigger(codeManager, address, stepIndex, result.instructions) }).catch((error) => { return console.log(error) }) } - private async retrieveIndexAndTrigger (codeMananger, address, step, code) { + private async retrieveIndexAndTrigger (codeManager, address, step, code) { let result const next = [] const returnInstructionIndexes = [] const outOfGasInstructionIndexes = [] try { - result = codeMananger.getInstructionIndex(address, step) + result = codeManager.getInstructionIndex(address, step) for (let i = 1; i < 6; i++) { if (this.traceManager.inRange(step + i)) { - next.push(codeMananger.getInstructionIndex(address, step + i)) + next.push(codeManager.getInstructionIndex(address, step + i)) } } @@ -177,7 +177,7 @@ export class CodeManager { return console.log(error) } try { - codeMananger.event.trigger('changed', [code, address, result, next, returnInstructionIndexes, outOfGasInstructionIndexes]) + codeManager.event.trigger('changed', [code, address, result, next, returnInstructionIndexes, outOfGasInstructionIndexes]) } catch (e) { console.log('dispatching event failed', e) } diff --git a/libs/remix-lib/src/execution/txHelper.ts b/libs/remix-lib/src/execution/txHelper.ts index 42a4333ef32..7cd9ab7393d 100644 --- a/libs/remix-lib/src/execution/txHelper.ts +++ b/libs/remix-lib/src/execution/txHelper.ts @@ -47,7 +47,7 @@ export function sortAbiFunction (contractabi) { // Check if function is constant (introduced with Solidity 0.6.0) const isConstant = ({ stateMutability }) => stateMutability === 'view' || stateMutability === 'pure' // Sorts the list of ABI entries. Constant functions will appear first, - // followed by non-constant functions. Within those t wo groupings, functions + // followed by non-constant functions. Within those two groupings, functions // will be sorted by their names. return contractabi.sort(function (a, b) { if (isConstant(a) && !isConstant(b)) { diff --git a/libs/remix-simulator/README.md b/libs/remix-simulator/README.md index 8410dd63f0a..a7921c7c9e7 100644 --- a/libs/remix-simulator/README.md +++ b/libs/remix-simulator/README.md @@ -5,7 +5,7 @@ [![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/ethereum/remix-project/tree/master/libs/remix-simulator) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/ethereum/remix-project/issues) -`@remix-project/remix-simulator` is a web3 wrapper for different kind of providers. It is used in `remix-tests` library and in Remix IDE codebase. +`@remix-project/remix-simulator` is a web3 wrapper for different kinds of providers. It is used in `remix-tests` library and in Remix IDE codebase. ### Installation `@remix-project/remix-simulator` is an NPM package and can be installed using NPM as: diff --git a/libs/remix-simulator/test/events.ts b/libs/remix-simulator/test/events.ts index 185c4324723..aa0e0b77fcd 100644 --- a/libs/remix-simulator/test/events.ts +++ b/libs/remix-simulator/test/events.ts @@ -76,7 +76,7 @@ describe('Events', () => { toBlock: 2, topics: [['0x342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735', '0xdcd9c7fa0342f01013bd0bf2bec103a81936162dcebd1f0c38b1d4164c17e0fc']] }) - // 0xdcd9c7fa0342f01013b is a topic from a event emitted by the other contract and should not be take into account. + // 0xdcd9c7fa0342f01013b is a topic from an event emitted by the other contract and should not be take into account. assert.equal(ownerLogs.length, 1, '5) ownerLogs length should be equal to 1') }) }) diff --git a/libs/remix-ui/editor/src/lib/web-types.ts b/libs/remix-ui/editor/src/lib/web-types.ts index 4dddad61595..4011cf21be1 100644 --- a/libs/remix-ui/editor/src/lib/web-types.ts +++ b/libs/remix-ui/editor/src/lib/web-types.ts @@ -115,9 +115,9 @@ export const loadTypes = async (monaco) => { monaco.languages.typescript.typescriptDefaults.addExtraLib(ethersSha2Default, `file:///node_modules/@types/@ethersproject_sha2/index.d.ts`) // @ts-ignore - const ethersSingningkey = await import('raw-loader!@ethersproject/signing-key/lib/index.d.ts') - const ethersSingningkeyDefault = ethersSingningkey.default.replace(/@ethersproject\//g, '@ethersproject_') - monaco.languages.typescript.typescriptDefaults.addExtraLib(ethersSingningkeyDefault, `file:///node_modules/@types/@ethersproject_signing-key/index.d.ts`) + const ethersSigningkey = await import('raw-loader!@ethersproject/signing-key/lib/index.d.ts') + const ethersSigningkeyDefault = ethersSigningkey.default.replace(/@ethersproject\//g, '@ethersproject_') + monaco.languages.typescript.typescriptDefaults.addExtraLib(ethersSigningkeyDefault, `file:///node_modules/@types/@ethersproject_signing-key/index.d.ts`) // @ts-ignore const ethersSolidity = await import('raw-loader!@ethersproject/solidity/lib/index.d.ts') diff --git a/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx b/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx index ba738618065..b20e7e50394 100644 --- a/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx +++ b/libs/remix-ui/home-tab/src/lib/components/homeTabFeatured.tsx @@ -50,6 +50,40 @@ function HomeTabFeatured(props:HomeTabFeaturedProps) { autoPlaySpeed={10000} dotListClass="position-relative mt-2" > +
+ + + +
+
+ The Solidity Developer Survey 2024 is live! +
+

+ Please take a few minutes of your time to + _paq.push(['trackEvent', 'hometab', 'featuredSection', 'soliditySurvey24'])} + target="__blank" + href="https://cryptpad.fr/form/#/2/form/view/9xjPVmdv8z0Cyyh1ejseMQ0igmx-TedH5CPST3PhRUk/" + > + COMPLETE THE SURVEY. + +

+

+ Thank you for your support! Read the full announcement + _paq.push(['trackEvent', 'hometab', 'featuredSection', 'soliditySurvey24'])} + target="__blank" + href="https://soliditylang.org/blog/2024/12/27/solidity-developer-survey-2024-announcement/" + > + here. + +

+
+
diff --git a/libs/remix-ui/home-tab/src/lib/components/homeTabFile.tsx b/libs/remix-ui/home-tab/src/lib/components/homeTabFile.tsx index 4e2d221a3d2..81bde5437e4 100644 --- a/libs/remix-ui/home-tab/src/lib/components/homeTabFile.tsx +++ b/libs/remix-ui/home-tab/src/lib/components/homeTabFile.tsx @@ -127,7 +127,7 @@ function HomeTabFile({ plugin }: HomeTabFileProps) { plugin.verticalIcons.select('filePanel') } - const handleSwichToRecentWorkspace = async (e, workspaceName) => { + const handleSwitchToRecentWorkspace = async (e, workspaceName) => { e.preventDefault() plugin.call('sidePanel', 'showContent', 'filePanel') plugin.verticalIcons.select('filePanel') @@ -146,17 +146,17 @@ function HomeTabFile({ plugin }: HomeTabFileProps) { Recent Workspaces {state.recentWorkspaces[0] && state.recentWorkspaces[0] !== '' && ( - handleSwichToRecentWorkspace(e, state.recentWorkspaces[0])}> + handleSwitchToRecentWorkspace(e, state.recentWorkspaces[0])}> {state.recentWorkspaces[0]} )} {state.recentWorkspaces[1] && state.recentWorkspaces[1] !== '' && ( - handleSwichToRecentWorkspace(e, state.recentWorkspaces[1])}> + handleSwitchToRecentWorkspace(e, state.recentWorkspaces[1])}> {state.recentWorkspaces[1]} )} {state.recentWorkspaces[2] && state.recentWorkspaces[2] !== '' && ( - handleSwichToRecentWorkspace(e, state.recentWorkspaces[2])}> + handleSwitchToRecentWorkspace(e, state.recentWorkspaces[2])}> {state.recentWorkspaces[2]} )} diff --git a/libs/remix-ui/plugin-manager/src/types.d.ts b/libs/remix-ui/plugin-manager/src/types.d.ts index 12ca50195e2..cfe333c636c 100644 --- a/libs/remix-ui/plugin-manager/src/types.d.ts +++ b/libs/remix-ui/plugin-manager/src/types.d.ts @@ -143,7 +143,7 @@ export interface RemixUiPluginManagerProps { pluginManagerSettings: PluginManagerSettings } /** @class Reference loaders. - * A loader is a get,set based object which load a workspace from a defined sources. + * A loader is a get, set based object which load a workspace from a defined sources. * (localStorage, queryParams) **/ declare class PluginLoader { diff --git a/libs/remix-ui/run-tab/src/lib/actions/account.ts b/libs/remix-ui/run-tab/src/lib/actions/account.ts index 4d937cdc5eb..503471b9e30 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/account.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/account.ts @@ -70,7 +70,7 @@ export const createNewBlockchainAccount = async (plugin: RunTab, dispatch: React if (plugin.REACT_API.passphrase === plugin.REACT_API.matchPassphrase) { cb(plugin.REACT_API.passphrase) } else { - dispatch(displayNotification('Error', 'Passphase does not match', 'OK', null)) + dispatch(displayNotification('Error', 'Passphrase does not match', 'OK', null)) } setPassphrase('') setMatchPassphrase('') diff --git a/libs/remix-ui/run-tab/src/lib/actions/deploy.ts b/libs/remix-ui/run-tab/src/lib/actions/deploy.ts index dfdf4e16253..ed66b6128b2 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/deploy.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/deploy.ts @@ -61,9 +61,9 @@ export const getSelectedContract = (contractName: string, compiler: CompilerAbst return txHelper.getConstructorInterface(contract.object.abi) }, getConstructorInputs: () => { - const constructorInteface = txHelper.getConstructorInterface(contract.object.abi) + const constructorInterface = txHelper.getConstructorInterface(contract.object.abi) - return txHelper.inputParametersDeclarationToString(constructorInteface.inputs) + return txHelper.inputParametersDeclarationToString(constructorInterface.inputs) }, isOverSizeLimit: async (args: string) => { const encodedParams = await txFormat.encodeParams(args, txHelper.getConstructorInterface(contract.object.abi)) @@ -309,7 +309,7 @@ export const runTransactions = ( funcIndex?: number) => { let callinfo = '' if (lookupOnly) callinfo = 'call' - else if (funcABI.type === 'fallback' || funcABI.type === 'receive') callinfo = 'lowLevelInteracions' + else if (funcABI.type === 'fallback' || funcABI.type === 'receive') callinfo = 'lowLevelinteractions' else callinfo = 'transact' _paq.push(['trackEvent', 'udapp', callinfo, plugin.blockchain.getCurrentNetworkStatus().network.name]) diff --git a/libs/remix-ui/run-tab/src/lib/actions/index.ts b/libs/remix-ui/run-tab/src/lib/actions/index.ts index 76b418a97a2..a8c914b9c7f 100644 --- a/libs/remix-ui/run-tab/src/lib/actions/index.ts +++ b/libs/remix-ui/run-tab/src/lib/actions/index.ts @@ -66,4 +66,4 @@ export const setNetworkName = (networkName: string) => setNetworkNameFromProvide export const updateSelectedContract = (contractName) => setSelectedContract(dispatch, contractName) export const syncContracts = () => syncContractsInternal(plugin) export const isValidProxyAddress = (address: string) => isValidContractAddress(plugin, address) -export const isValidProxyUpgrade = (proxyAddress: string, contractName: string, solcInput: SolcInput, solcOuput: SolcOutput, solcVersion: string) => isValidContractUpgrade(plugin, proxyAddress, contractName, solcInput, solcOuput, solcVersion) \ No newline at end of file +export const isValidProxyUpgrade = (proxyAddress: string, contractName: string, solcInput: SolcInput, solcOutput: SolcOutput, solcVersion: string) => isValidContractUpgrade(plugin, proxyAddress, contractName, solcInput, solcOutput, solcVersion) diff --git a/libs/remixd/src/bin/remixd.ts b/libs/remixd/src/bin/remixd.ts index c6e9743734a..68bfdb2c0c8 100644 --- a/libs/remixd/src/bin/remixd.ts +++ b/libs/remixd/src/bin/remixd.ts @@ -95,7 +95,7 @@ function errorHandler (error: any, service: string) { console.log('\x1b[33m%s\x1b[0m', '[WARN] You may now only use IDE at ' + options.remixIde + ' to connect to that instance') } - if (!options.sharedFolder) options.sharedFolder = process.cwd() // if no specified, use the current folder + if (!options.sharedFolder) options.sharedFolder = process.cwd() // if not specified, use the current folder if (options.sharedFolder && existsSync(absolutePath('./', options.sharedFolder))) { console.log('\x1b[33m%s\x1b[0m', '[WARN] Any application that runs on your computer can potentially read from and write to all files in the directory.')