diff --git a/apps/remix-ide-e2e/src/tests/editorHoverContext.test.ts b/apps/remix-ide-e2e/src/tests/editorHoverContext.test.ts index 2fb98cc339..2b130875e3 100644 --- a/apps/remix-ide-e2e/src/tests/editorHoverContext.test.ts +++ b/apps/remix-ide-e2e/src/tests/editorHoverContext.test.ts @@ -90,6 +90,8 @@ module.exports = { browser .clickLaunchIcon('solidity') .setSolidityCompilerVersion('soljson-v0.8.20+commit.a1b79de6.js') + .click('*[data-id="scConfigExpander"]') + .setValue('#evmVersionSelector', 'berlin') // set target EVM for parser to berlin .addFile('contracts/mytoken.sol', { content: myToken }).useXpath().waitForElementVisible("//*[@class='view-line' and contains(.,'gas')]") diff --git a/apps/remix-ide-e2e/src/tests/eip1153.test.ts b/apps/remix-ide-e2e/src/tests/eip1153.test.ts index 1f8598c49c..9a5fae289c 100644 --- a/apps/remix-ide-e2e/src/tests/eip1153.test.ts +++ b/apps/remix-ide-e2e/src/tests/eip1153.test.ts @@ -31,7 +31,21 @@ module.exports = { 1: 'uint256: out2 15' } }) - .end() + }, + + 'Should clear transient storage after tx execution #group1' : function (browser: NightwatchBrowser) { + browser.addFile('clear_transient.sol', { content: clearTransient }) + .verifyContracts(['ClearTransient']) + .clickLaunchIcon('udapp') + .createContract('') + .clickInstance(1) + .clickFunction('get - call') + .testFunction('last', + { + 'decoded output': { + 0: 'uint256: 0' + } + }) } } @@ -49,3 +63,22 @@ contract TestTransientStorage { } } }` + +const clearTransient = ` +// SPDX-License-Identifier: none +pragma solidity 0.8.26; +import "hardhat/console.sol"; + +contract ClearTransient { + uint p; + constructor() { + uint256 value; + assembly { value := tload(hex"1234") } + p = value; + assembly { tstore(hex"1234", 10) } + } + + function get () public view returns (uint) { + return p; + } +}` diff --git a/apps/remix-ide-e2e/src/tests/solidityUnittests.test.ts b/apps/remix-ide-e2e/src/tests/solidityUnittests.test.ts index 91ef7d6a4f..8fd8ff3b68 100644 --- a/apps/remix-ide-e2e/src/tests/solidityUnittests.test.ts +++ b/apps/remix-ide-e2e/src/tests/solidityUnittests.test.ts @@ -246,13 +246,13 @@ module.exports = { .waitForElementPresent('#solidityUnittestsOutput div[class^="testPass"]', 60000) .waitForElementContainsText('#solidityUnittestsOutput', 'tests/hhLogs_test.sol', 60000) .pause(2000) - .assert.containsText('#journal > div:nth-child(4) > span', 'Before all:') - .assert.containsText('#journal > div:nth-child(4) > span', 'Inside beforeAll') - .assert.containsText('#journal > div:nth-child(5) > span', 'Check sender:') - .assert.containsText('#journal > div:nth-child(5) > span', 'msg.sender is 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4') - .assert.containsText('#journal > div:nth-child(6) > span', 'Check int logs:') - .assert.containsText('#journal > div:nth-child(6) > span', '10 20') - .assert.containsText('#journal > div:nth-child(6) > span', 'Number is 25') + .assert.textContains('#journal > div:nth-child(3) > span', 'Before all:') + .assert.textContains('#journal > div:nth-child(3) > span', 'Inside beforeAll') + .assert.textContains('#journal > div:nth-child(4) > span', 'Check sender:') + .assert.textContains('#journal > div:nth-child(4) > span', 'msg.sender is 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4') + .assert.textContains('#journal > div:nth-child(5) > span', 'Check int logs:') + .assert.textContains('#journal > div:nth-child(5) > span', '10 20') + .assert.textContains('#journal > div:nth-child(5) > span', 'Number is 25') .openFile('tests/hhLogs_test.sol') .removeFile('tests/hhLogs_test.sol', 'workspace_new') }, diff --git a/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts b/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts index 6f1d5f9152..073347a33b 100644 --- a/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts +++ b/apps/remix-ide/src/app/plugins/parser/services/code-parser-compiler.ts @@ -161,7 +161,7 @@ export default class CodeParserCompiler { "*": ["evm.gasEstimates"] } }, - "evmVersion": state.evmVersion && state.evmVersion.toString() || "berlin", + "evmVersion": state.evmVersion && state.evmVersion.toString() || "cancun", } } diff --git a/apps/remix-ide/src/app/tabs/locales/en/remixUiTabs.json b/apps/remix-ide/src/app/tabs/locales/en/remixUiTabs.json index 6541753d86..b3f77de301 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/remixUiTabs.json +++ b/apps/remix-ide/src/app/tabs/locales/en/remixUiTabs.json @@ -4,10 +4,10 @@ "remixUiTabs.tooltipText3": "Select .sol or .yul file to compile OR a .ts or .js file to run", "remixUiTabs.tooltipText4": "To explain a contract, choose a .sol file", "remixUiTabs.tooltipText5": "Explain the contract(s) in current file [BETA]", - "remixUiTabs.tooltipText6": "Enable Remix AI Copilot [BETA]", - "remixUiTabs.tooltipText7": "Disable Remix AI Copilot [BETA]", + "remixUiTabs.tooltipText6": "Enable RemixAI Copilot [BETA]", + "remixUiTabs.tooltipText7": "Disable RemixAI Copilot [BETA]", "remixUiTabs.tooltipText8": "Remix AI Tools Documentation", - "remixUiTabs.tooltipTextDisabledCopilot": "To use Remix AI Copilot, choose a .sol file", + "remixUiTabs.tooltipTextDisabledCopilot": "To use RemixAI Copilot, choose a .sol file", "remixUiTabs.zoomOut": "Zoom out", "remixUiTabs.zoomIn": "Zoom in" } diff --git a/libs/remix-analyzer/package.json b/libs/remix-analyzer/package.json index bdb6ca7a35..3e39770dc4 100644 --- a/libs/remix-analyzer/package.json +++ b/libs/remix-analyzer/package.json @@ -24,7 +24,7 @@ "@ethereumjs/block": "5.3.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@remix-project/remix-astwalker": "^0.0.86", "@remix-project/remix-lib": "^0.5.63", "async": "^2.6.2", diff --git a/libs/remix-astwalker/package.json b/libs/remix-astwalker/package.json index dfc1642738..9780d528f9 100644 --- a/libs/remix-astwalker/package.json +++ b/libs/remix-astwalker/package.json @@ -36,7 +36,7 @@ "@ethereumjs/block": "5.3.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@remix-project/remix-lib": "^0.5.63", "@types/tape": "^4.2.33", "async": "^2.6.2", diff --git a/libs/remix-debug/package.json b/libs/remix-debug/package.json index 3ac26c3cf7..46d64c7e8f 100644 --- a/libs/remix-debug/package.json +++ b/libs/remix-debug/package.json @@ -25,7 +25,7 @@ "@ethereumjs/common": "4.4.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@remix-project/remix-astwalker": "^0.0.86", "@remix-project/remix-lib": "^0.5.63", "@remix-project/remix-simulator": "^0.2.56", diff --git a/libs/remix-simulator/package.json b/libs/remix-simulator/package.json index fce9106de5..9095287fd4 100644 --- a/libs/remix-simulator/package.json +++ b/libs/remix-simulator/package.json @@ -21,7 +21,7 @@ "@ethereumjs/common": "4.4.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@metamask/eth-sig-util": "^7.0.2", "@remix-project/remix-lib": "^0.5.63", "ansi-gray": "^0.1.1", diff --git a/libs/remix-solidity/package.json b/libs/remix-solidity/package.json index b95adccd1a..00d89faf89 100644 --- a/libs/remix-solidity/package.json +++ b/libs/remix-solidity/package.json @@ -18,7 +18,7 @@ "@ethereumjs/block": "5.3.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@remix-project/remix-lib": "^0.5.63", "async": "^2.6.2", "eslint-scope": "^5.0.0", diff --git a/libs/remix-tests/package.json b/libs/remix-tests/package.json index 5b5dc898d6..b4942a7a40 100644 --- a/libs/remix-tests/package.json +++ b/libs/remix-tests/package.json @@ -40,7 +40,7 @@ "@ethereumjs/common": "4.4.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@remix-project/remix-lib": "^0.5.63", "@remix-project/remix-simulator": "^0.2.56", "@remix-project/remix-solidity": "^0.5.42", @@ -81,11 +81,11 @@ "@ethereumjs/blockchain": "7.3.0", "@ethereumjs/block": "5.3.0", "@ethereumjs/common": "4.4.0", - "@ethereumjs/evm": "3.1.0", + "@ethereumjs/evm": "3.1.1", "@ethereumjs/statemanager": "2.4.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@ethereumjs/trie": "6.2.1" }, "typings": "src/index.d.ts", diff --git a/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx b/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx index 050cb9d539..d56fe1dff9 100644 --- a/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx +++ b/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx @@ -139,13 +139,11 @@ export const RemixUiSettings = (props: RemixUiSettingsProps) => { const onchangeCopilotActivate = () => { if (!props.useCopilot) { copilotActivate(props.config, props.useCopilot, dispatch) - props.plugin.call('terminal', 'log', { type: 'typewriterlog', value: `Solidity copilot not activated!` }) return } const startCopilot = async () => { copilotActivate(props.config, props.useCopilot, dispatch) - props.plugin.call('terminal', 'log', { type: 'typewriterlog', value: `Solidity copilot activated!` }) } startCopilot() diff --git a/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx b/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx index 255602004f..fc6d774ce4 100644 --- a/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx +++ b/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx @@ -14,13 +14,11 @@ export default function AIStatus(props: AIStatusProps) { const [copilotActive, setCopilotActive] = useState(false) useEffect(() => { const run = async () => { - props.plugin.on('fileManager', 'currentFileChanged', async (isAiActive) => { - const aiActivate = await props.plugin.call('settings', 'get', 'settings/copilot/suggest/activate') - setCopilotActive(aiActivate) - }) + const aiActivate = await props.plugin.call('settings', 'get', 'settings/copilot/suggest/activate') + setCopilotActive(aiActivate) } run() - }, [props.plugin.isAiActive, props.isAiActive]) + }, []) useEffect(() => { const run = async () => { @@ -30,14 +28,14 @@ export default function AIStatus(props: AIStatusProps) { }) } run() - }, [props.plugin.isAiActive]) + }, [props.plugin.isAiActive, props.plugin.isAiActive]) return (
- {copilotActive === false ? 'Remix Copilot (disabled)' : 'Remix Copilot (enabled)'} + {copilotActive === false ? 'RemixAI Copilot (disabled)' : 'RemixAI Copilot (enabled)'}
diff --git a/package.json b/package.json index 46624277e8..193212f484 100644 --- a/package.json +++ b/package.json @@ -92,11 +92,11 @@ "@erebos/bzz-node": "^0.13.0", "@ethereumjs/block": "5.3.0", "@ethereumjs/common": "4.4.0", - "@ethereumjs/evm": "3.1.0", + "@ethereumjs/evm": "3.1.1", "@ethereumjs/statemanager": "2.4.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@ethersphere/bee-js": "^3.2.0", "@floating-ui/react": "^0.26.15", "@fortawesome/fontawesome-svg-core": "^6.5.1", @@ -382,11 +382,11 @@ "@ethereumjs/blockchain": "7.3.0", "@ethereumjs/block": "5.3.0", "@ethereumjs/common": "4.4.0", - "@ethereumjs/evm": "3.1.0", + "@ethereumjs/evm": "3.1.1", "@ethereumjs/statemanager": "2.4.0", "@ethereumjs/tx": "5.4.0", "@ethereumjs/util": "9.1.0", - "@ethereumjs/vm": "8.1.0", + "@ethereumjs/vm": "8.1.1", "@ethereumjs/trie": "6.2.1" } } diff --git a/yarn.lock b/yarn.lock index 8bee920d43..5f4e4ceaf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2835,10 +2835,10 @@ bigint-crypto-utils "^3.2.2" ethereum-cryptography "^2.2.1" -"@ethereumjs/evm@3.1.0", "@ethereumjs/evm@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/evm/-/evm-3.1.0.tgz#d036a7986d2a4914a82324ee4fbc2ae7a503e515" - integrity sha512-m6L8wPDpNDqCBeiCQDwoKtKMcFjcvctuZs6XHaVnFocMwsAsN9Wg89nAT7Gs6ic2kDUgVGhtGTvEAaH51B70ew== +"@ethereumjs/evm@3.1.1", "@ethereumjs/evm@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/evm/-/evm-3.1.1.tgz#f593ea99e564ba6d916d81a833bb9af5713caf34" + integrity sha512-JbDXtIn0PPZFU2oqVngje0YvW/JuNa6Y+kIYp1MCh5pn9NRplR8FkBbvb991fVSSo6AzuFMHJxSwgVl+OksnvQ== dependencies: "@ethereumjs/common" "^4.4.0" "@ethereumjs/statemanager" "^2.4.0" @@ -2914,15 +2914,15 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethereumjs/vm@8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-8.1.0.tgz#9f795a7802b0ccdedd4ca45193a3895eafe51ef9" - integrity sha512-CjQ57Kl2JYMyX8UNUW2aWFWJnb7M5a8gUEtBMZ+A3K+wNNTALVPOKx9eNCiSwBn1bijB05FyvcNMnHEDwqSuiA== +"@ethereumjs/vm@8.1.1": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-8.1.1.tgz#6b58f298ee6f665d4ac412cd0d3351bb9c0ceea3" + integrity sha512-h9gIN/maMKXltM4VxZ9ac581PPUUObnFVBniLuu9vJgGTELdnwqxLwJVxSfho/Bhk56YyvKBYf1RpHwoLZZ6xw== dependencies: "@ethereumjs/block" "^5.3.0" "@ethereumjs/blockchain" "^7.3.0" "@ethereumjs/common" "^4.4.0" - "@ethereumjs/evm" "^3.1.0" + "@ethereumjs/evm" "^3.1.1" "@ethereumjs/rlp" "^5.0.2" "@ethereumjs/statemanager" "^2.4.0" "@ethereumjs/trie" "^6.2.1"