From b8c8d4014daa1495dd129ce951310ca89fed046e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Tue, 20 Feb 2024 16:41:07 +0100 Subject: [PATCH] reverted the inline completion to browser model --- .../suggestion-service/copilot-suggestion.ts | 36 +- .../suggestion-service/suggestion-service.ts | 4 +- .../copilot/suggestion-service/worker.js | 16 +- .../src/app/tabs/locales/en/settings.json | 2 +- apps/remix-ide/src/app/tabs/settings-tab.tsx | 2 +- diff.diff | 8355 +++++++++++++++++ .../lib/providers/inlineCompletionProvider.ts | 8 +- .../settings/src/lib/remix-ui-settings.tsx | 48 +- 8 files changed, 8436 insertions(+), 35 deletions(-) create mode 100644 diff.diff diff --git a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts index 708243fca8..932b8bc77c 100644 --- a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts +++ b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts @@ -8,31 +8,36 @@ const profile = { name: 'copilot-suggestion', displayName: 'copilot-suggestion', description: 'Get Solidity suggestions in editor', - methods: ['suggest', 'init', 'uninstall', 'status', 'isActivate', 'discardRemoteService', 'useconfig'], + methods: ['suggest', 'init', 'uninstall', 'status', 'isActivate', 'useRemoteService', 'discardRemoteService'], version: '0.1.0-alpha', maintainedBy: "Remix" } export class CopilotSuggestion extends Plugin { service: SuggestionService + remoteService: string context: string ready: boolean - config: { [id: string]: string } constructor() { super(profile) this.service = new SuggestionService() this.context = '' - this.ready = true // always ready for service - this.config = {} + this.service.events.on('progress', (data) => { + this.emit('loading', data) + }) + this.service.events.on('done', (data) => { + }) + this.service.events.on('ready', (data) => { + this.ready = true + }) } - - useconfig(config ){ - this.config = config + useRemoteService(service: string) { + this.remoteService = service } discardRemoteService() { - this.ready = false + this.remoteService = null } status () { @@ -54,19 +59,20 @@ export class CopilotSuggestion extends Plugin { const max_new_tokens = await this.call('settings', 'get', 'settings/copilot/suggest/max_new_tokens') const temperature = await this.call('settings', 'get', 'settings/copilot/suggest/temperature') const options: SuggestOptions = { + do_sample: true, top_k: 50, - top_p: 0.92, + top_p: 0.92, stream_result: false, - temperature: temperature || 0.9, + temperature: temperature || 0, max_new_tokens: max_new_tokens || 0 } - if (this.ready){ - const data = await this.call('solcoder', 'code_completion', content.split(" ").slice(-1000).join(" "), options) - const parsedData = data[0].trimStart() + if (this.remoteService) { + const {data} = await axios.post(this.remoteService, {context: content, max_new_words: options.max_new_tokens, temperature: options.temperature}) + const parsedData = JSON.parse(data).trimStart() return {output: [{generated_text: parsedData}]} - }else{ - return + } else { + return this.service.suggest(this.context ? this.context + '\n\n' + content : content, options) } } diff --git a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts index 49323aeda6..0598175265 100644 --- a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts +++ b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts @@ -1,7 +1,8 @@ import EventEmitter from 'events' export type SuggestOptions = { max_new_tokens: number, - temperature: number, + temperature: number, + do_sample:boolean top_k: number, top_p:number, stream_result:boolean} @@ -16,6 +17,7 @@ export class SuggestionService { this.worker = new Worker(new URL('./worker.js', import.meta.url), { type: 'module' }); + this.init() this.events = new EventEmitter() this.responses = {} this.current diff --git a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js index 3d1e0f5acd..0623b3712f 100644 --- a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js +++ b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js @@ -34,12 +34,12 @@ self.addEventListener('message', async (event) => { if (cmd === 'init') { // Retrieve the code-completion pipeline. When called for the first time, // this will load the pipeline and save it for future use. - // CodeCompletionPipeline.model = model - // await CodeCompletionPipeline.getInstance(x => { - // // We also add a progress callback to the pipeline so that we can - // // track model loading. - // self.postMessage(x); - // }); + CodeCompletionPipeline.model = model + await CodeCompletionPipeline.getInstance(x => { + // We also add a progress callback to the pipeline so that we can + // track model loading. + self.postMessage(x); + }); return } @@ -47,8 +47,8 @@ self.addEventListener('message', async (event) => { // Send the output back to the main thread self.postMessage({ id, - status: 'info', - message: 'model not longer supported' + status: 'error', + message: 'model not yet loaded' }); } diff --git a/apps/remix-ide/src/app/tabs/locales/en/settings.json b/apps/remix-ide/src/app/tabs/locales/en/settings.json index 5f658450d5..18806855e6 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/settings.json +++ b/apps/remix-ide/src/app/tabs/locales/en/settings.json @@ -38,7 +38,7 @@ "settings.projectSecret": "PROJECT SECRET", "settings.analyticsInRemix": "Analytics in Remix IDE", "settings.copilot": "Solidity copilot - Alpha", - "settings.copilot.activate": "Enable copilot", + "settings.copilot.activate": "Load & Activate copilot", "settings.copilot.max_new_tokens": "Maximum number of words to generate", "settings.copilot.temperature": "Temperature", "settings.copilot.top_k": "top_k", diff --git a/apps/remix-ide/src/app/tabs/settings-tab.tsx b/apps/remix-ide/src/app/tabs/settings-tab.tsx index b094dd8026..7548db4f07 100644 --- a/apps/remix-ide/src/app/tabs/settings-tab.tsx +++ b/apps/remix-ide/src/app/tabs/settings-tab.tsx @@ -52,7 +52,7 @@ module.exports = class SettingsTab extends ViewPlugin { this.element = document.createElement('div') this.element.setAttribute('id', 'settingsTab') this.useMatomoAnalytics = null - this.useCopilot = null + this.useCopilot = false } setDispatch(dispatch: React.Dispatch) { diff --git a/diff.diff b/diff.diff new file mode 100644 index 0000000000..d7001f24c6 --- /dev/null +++ b/diff.diff @@ -0,0 +1,8355 @@ +diff --git a/.circleci/config.yml b/.circleci/config.yml +index adc592c1c..d6b6620bb 100644 +--- a/.circleci/config.yml ++++ b/.circleci/config.yml +@@ -388,25 +388,16 @@ jobs: + - run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules + - run: mkdir node_modules/hardhat && wget https://unpkg.com/hardhat/console.sol -O node_modules/hardhat/console.sol + - run: ls -la ./dist/apps/remix-ide/assets/js +- - run: yarn run selenium-install --singleDriverInstall=firefox ++ - run: yarn run selenium-install || yarn run selenium-install + - when: + condition: + equal: [ "chrome", << parameters.browser >> ] + steps: +- - run: mkdir -p node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/ + - run: cp ~/bin/chromedriver /home/circleci/remix-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/ +- - run: +- name: run selenium +- command: yarn selenium-standalone start --singleDriverStart=chrome +- background: true +- - when: +- condition: +- equal: [ "firefox", << parameters.browser >> ] +- steps: +- - run: +- name: run selenium +- command: yarn selenium-standalone start --singleDriverStart=firefox +- background: true ++ - run: ++ name: Start Selenium ++ command: yarn run selenium ++ background: true + - run: ./apps/remix-ide/ci/<< parameters.script >> << parameters.browser >> << parameters.jobsize >> << parameters.job >> + - store_test_results: + path: ./reports/tests +@@ -448,12 +439,11 @@ jobs: + - run: unzip ./persist/dist.zip + - run: unzip ./persist/plugin-<< parameters.plugin >>.zip + - run: yarn install --cwd ./apps/remix-ide-e2e --modules-folder ../../node_modules +- - run: yarn run selenium-install --singleDriverInstall=firefox +- - run: mkdir -p node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/ ++ - run: yarn run selenium-install || yarn run selenium-install + - run: cp ~/bin/chromedriver /home/circleci/remix-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64/ + - run: + name: Start Selenium +- command: yarn run selenium --singleDriverStart=chrome ++ command: yarn run selenium + background: true + - run: ./apps/remix-ide/ci/browser_test_plugin.sh << parameters.plugin >> + - store_test_results: +diff --git a/.github/workflows/pr-reminder.yml b/.github/workflows/pr-reminder.yml +index 532a7555b..d841471ec 100644 +--- a/.github/workflows/pr-reminder.yml ++++ b/.github/workflows/pr-reminder.yml +@@ -14,4 +14,4 @@ jobs: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }} +- freeze-date: '2024-02-26T18:00:00Z' ++ freeze-date: '2024-02-12T18:00:00Z' +diff --git a/apps/etherscan/src/app/utils/networks.ts b/apps/etherscan/src/app/utils/networks.ts +index bcb899349..5609971a3 100644 +--- a/apps/etherscan/src/app/utils/networks.ts ++++ b/apps/etherscan/src/app/utils/networks.ts +@@ -34,7 +34,6 @@ export const scanAPIurls = { + 44787: 'https://api-alfajores.celoscan.io/api', + 2888: 'https://api-testnet.bobascan.com/api', + 84531: 'https://api-goerli.basescan.org/api', +- 84532: "https://api-sepolia.basescan.org/api", + 1442: 'https://api-testnet-zkevm.polygonscan.com/api', + 59140: 'https://api-testnet.lineascan.build/api', + } +diff --git a/apps/remix-ide-e2e/src/tests/ballot.test.ts b/apps/remix-ide-e2e/src/tests/ballot.test.ts +index 823259bda..7e9c51e43 100644 +--- a/apps/remix-ide-e2e/src/tests/ballot.test.ts ++++ b/apps/remix-ide-e2e/src/tests/ballot.test.ts +@@ -118,6 +118,7 @@ module.exports = { + .connectToExternalHttpProvider('http://localhost:8545', 'Custom') + .clickLaunchIcon('solidity') + .clickLaunchIcon('udapp') ++ .pause(2000) + .clearValue('input[placeholder="bytes32[] proposalNames"]') + .setValue('input[placeholder="bytes32[] proposalNames"]', '["0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"]') + .click('*[data-id="Deploy - transact (not payable)"]') +@@ -554,4 +555,4 @@ contract Retriever is Storage { + return number; + } + } +-` ++` +\ No newline at end of file +diff --git a/apps/remix-ide-e2e/src/tests/ballot_0_4_14.test.ts b/apps/remix-ide-e2e/src/tests/ballot_0_4_14.test.ts +index f1383ccfa..09398a896 100644 +--- a/apps/remix-ide-e2e/src/tests/ballot_0_4_14.test.ts ++++ b/apps/remix-ide-e2e/src/tests/ballot_0_4_14.test.ts +@@ -94,6 +94,7 @@ module.exports = { + .connectToExternalHttpProvider('http://localhost:8545', 'Custom') + .clickLaunchIcon('solidity') + .clickLaunchIcon('udapp') ++ .pause(2000) + .clearValue('input[placeholder="uint8 _numProposals"]') + .setValue('input[placeholder="uint8 _numProposals"]', '2') + .click('*[data-id="Deploy - transact (not payable)"]') +diff --git a/apps/remix-ide-e2e/src/tests/file_explorer_dragdrop.test.ts b/apps/remix-ide-e2e/src/tests/file_explorer_dragdrop.test.ts +index 949bf86d5..edcf90d88 100644 +--- a/apps/remix-ide-e2e/src/tests/file_explorer_dragdrop.test.ts ++++ b/apps/remix-ide-e2e/src/tests/file_explorer_dragdrop.test.ts +@@ -3,101 +3,101 @@ import { NightwatchBrowser } from 'nightwatch' + import init from '../helpers/init' + + const checkBrowserIsChrome = function (browser: NightwatchBrowser) { +- return browser.browserName.indexOf('chrome') > -1 ++ return browser.browserName.indexOf('chrome') > -1 + } + + + module.exports = { +- '@disabled': true, +- before: function (browser: NightwatchBrowser, done: VoidFunction) { +- init(browser, done) +- }, +- 'drag and drop file from root to contracts #group1 ': function (browser: NightwatchBrowser) { +- if (checkBrowserIsChrome(browser)) { +- browser +- .clickLaunchIcon('filePanel') +- .waitForElementVisible('*[data-id="treeViewLitreeViewItemcontracts"]') +- .findElement('*[data-id="treeViewLitreeViewItemcontracts"]', (el) => { +- console.log((el as any).value.getId()) +- const id = (el as any).value.getId() +- browser +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemREADME.txt"]') +- .dragAndDrop('li[data-id="treeViewLitreeViewItemREADME.txt"]', id) +- .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') +- .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/README.txt"]') +- }) +- } +- }, ++ '@disabled': true, ++ before: function (browser: NightwatchBrowser, done: VoidFunction) { ++ init(browser, done) ++ }, ++ 'drag and drop file from root to contracts #group1 ': function (browser: NightwatchBrowser) { ++ if (checkBrowserIsChrome(browser)) { ++ browser ++ .clickLaunchIcon('filePanel') ++ .waitForElementVisible('*[data-id="treeViewLitreeViewItemcontracts"]') ++ .findElement('*[data-id="treeViewLitreeViewItemcontracts"]', (el) => { ++ console.log((el as any).value.getId()) ++ const id = (el as any).value.getId() ++ browser ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemREADME.txt"]') ++ .dragAndDrop('li[data-id="treeViewLitreeViewItemREADME.txt"]', id) ++ .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') ++ .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/README.txt"]') ++ }) ++ } ++ }, + +- 'drag and drop file from contracts to root #group1': function (browser: NightwatchBrowser) { +- if (checkBrowserIsChrome(browser)) { +- browser.findElement('*[data-id="treeViewUltreeViewMenu"]', (el) => { +- console.log((el as any).value.getId()) +- const id = (el as any).value.getId() +- browser +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]') +- .dragAndDrop('li[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]', id) +- .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') +- .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) +- }) +- browser.pause(1000) +- .waitForElementVisible('li[data-id="treeViewLitreeViewItem1_Storage.sol"]') +- } +- }, +- 'drag and drop scripts from root to contracts #group1': function (browser: NightwatchBrowser) { +- if (checkBrowserIsChrome(browser)) { +- browser +- .waitForElementVisible('*[data-id="treeViewLitreeViewItemcontracts"]') +- .findElement('*[data-id="treeViewLitreeViewItemcontracts"]', (el) => { +- console.log((el as any).value.getId()) +- const id = (el as any).value.getId() +- browser +- .waitForElementVisible('div[data-id="treeViewDivDraggableItemscripts"]') +- .dragAndDrop('div[data-id="treeViewDivDraggableItemscripts"]', id) +- .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') +- .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/scripts"]') +- }) +- } +- }, +- 'drag scripts from contracts to root #group1': function (browser: NightwatchBrowser) { +- if (checkBrowserIsChrome(browser)) { +- browser.findElement('*[data-id="treeViewUltreeViewMenu"]', (el) => { +- console.log((el as any).value.getId()) +- const id = (el as any).value.getId() +- browser +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/scripts"]') +- .dragAndDrop('li[data-id="treeViewLitreeViewItemcontracts/scripts"]', id) +- .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') +- .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) +- }) +- browser.pause(1000) +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts"]') ++ 'drag and drop file from contracts to root #group1': function (browser: NightwatchBrowser) { ++ if (checkBrowserIsChrome(browser)) { ++ browser.findElement('*[data-id="treeViewUltreeViewMenu"]', (el) => { ++ console.log((el as any).value.getId()) ++ const id = (el as any).value.getId() ++ browser ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]') ++ .dragAndDrop('li[data-id="treeViewLitreeViewItemcontracts/1_Storage.sol"]', id) ++ .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') ++ .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) ++ }) ++ browser.pause(1000) ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItem1_Storage.sol"]') ++ } ++ }, ++ 'drag and drop scripts from root to contracts #group1': function (browser: NightwatchBrowser) { ++ if (checkBrowserIsChrome(browser)) { ++ browser ++ .waitForElementVisible('*[data-id="treeViewLitreeViewItemcontracts"]') ++ .findElement('*[data-id="treeViewLitreeViewItemcontracts"]', (el) => { ++ console.log((el as any).value.getId()) ++ const id = (el as any).value.getId() ++ browser ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts"]') ++ .dragAndDrop('li[data-id="treeViewLitreeViewItemscripts"]', id) ++ .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') ++ .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/scripts"]') ++ }) ++ } ++ }, ++ 'drag scripts from contracts to root #group1': function (browser: NightwatchBrowser) { ++ if (checkBrowserIsChrome(browser)) { ++ browser.findElement('*[data-id="treeViewUltreeViewMenu"]', (el) => { ++ console.log((el as any).value.getId()) ++ const id = (el as any).value.getId() ++ browser ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/scripts"]') ++ .dragAndDrop('li[data-id="treeViewLitreeViewItemcontracts/scripts"]', id) ++ .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') ++ .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) ++ }) ++ browser.pause(1000) ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts"]') ++ } ++ }, ++ 'drag into nested folder': function (browser: NightwatchBrowser) { ++ if (checkBrowserIsChrome(browser)) { ++ browser.waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts"]') ++ .rightClick('li[data-id="treeViewLitreeViewItemscripts"]') ++ .waitForElementPresent('[data-id="contextMenuItemnewFolder') ++ .click('[data-id="contextMenuItemnewFolder') ++ .waitForElementVisible('*[data-id$="fileExplorerTreeItemInput"]') ++ .sendKeys('*[data-id$="fileExplorerTreeItemInput"]', 'nested') ++ .sendKeys('*[data-id$="fileExplorerTreeItemInput"]', browser.Keys.ENTER) ++ .findElement('*[data-id="treeViewLitreeViewItemscripts/nested"]', (el) => { ++ console.log((el as any).value.getId()) ++ const id = (el as any).value.getId() ++ browser ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/README.txt"]') ++ .dragAndDrop('li[data-id="treeViewLitreeViewItemcontracts/README.txt"]', id) ++ .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') ++ .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) ++ .waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts/nested/README.txt"]') ++ }) ++ } + } +- }, +- 'drag into nested folder': function (browser: NightwatchBrowser) { +- if (checkBrowserIsChrome(browser)) { +- browser.waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts"]') +- .rightClick('li[data-id="treeViewLitreeViewItemscripts"]') +- .waitForElementPresent('[data-id="contextMenuItemnewFolder') +- .click('[data-id="contextMenuItemnewFolder') +- .waitForElementVisible('*[data-id$="fileExplorerTreeItemInput"]') +- .sendKeys('*[data-id$="fileExplorerTreeItemInput"]', 'nested') +- .sendKeys('*[data-id$="fileExplorerTreeItemInput"]', browser.Keys.ENTER) +- .findElement('*[data-id="treeViewLitreeViewItemscripts/nested"]', (el) => { +- console.log((el as any).value.getId()) +- const id = (el as any).value.getId() +- browser +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemcontracts/README.txt"]') +- .dragAndDrop('li[data-id="treeViewLitreeViewItemcontracts/README.txt"]', id) +- .waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') +- .execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) +- .waitForElementVisible('li[data-id="treeViewLitreeViewItemscripts/nested/README.txt"]') +- }) +- } +- } + + + +-} ++} +\ No newline at end of file +diff --git a/apps/remix-ide-e2e/src/tests/vyper_api.test.ts b/apps/remix-ide-e2e/src/tests/vyper_api.test.ts +index 3ac5b6561..5ef312d8a 100644 +--- a/apps/remix-ide-e2e/src/tests/vyper_api.test.ts ++++ b/apps/remix-ide-e2e/src/tests/vyper_api.test.ts +@@ -41,30 +41,8 @@ module.exports = { + .openFile('examples/auctions/blind_auction.vy') + }, + +- 'Context menu click to compile blind_auction should succeed #group1': function (browser: NightwatchBrowser) { +- browser +- .click('*[data-id="treeViewLitreeViewItemexamples/auctions/blind_auction.vy"]') +- .rightClick('*[data-id="treeViewLitreeViewItemexamples/auctions/blind_auction.vy"]') +- .waitForElementPresent('[data-id="contextMenuItemvyper"]') +- .click('[data-id="contextMenuItemvyper"]') +- .clickLaunchIcon('vyper') +- // @ts-ignore +- .frame(0) +- .waitForElementVisible({ +- selector:'[data-id="compilation-details"]', +- timeout: 120000 +- }) +- .click('[data-id="compilation-details"]') +- .frameParent() +- .waitForElementVisible('[data-id="copy-abi"]') +- .waitForElementVisible({ +- selector: "//*[@class='variable-value' and contains(.,'highestBidder')]", +- locateStrategy: 'xpath', +- }) +- }, +- + 'Compile blind_auction should success #group1': function (browser: NightwatchBrowser) { +- browser ++ browser.clickLaunchIcon('vyper') + // @ts-ignore + .frame(0) + .click('[data-id="remote-compiler"]') +diff --git a/apps/remix-ide/ci/makeMockCompiler.js b/apps/remix-ide/ci/makeMockCompiler.js +index 5e6975850..a45e91e00 100644 +--- a/apps/remix-ide/ci/makeMockCompiler.js ++++ b/apps/remix-ide/ci/makeMockCompiler.js +@@ -2,7 +2,7 @@ + + var fs = require('fs') + var compiler = require('solc') +-var compilerInput = require('@remix-project/remix-solidity').compilerInputFactory ++var compilerInput = require('@remix-project/remix-solidity').CompilerInput + var defaultVersion = 'soljson-v0.8.24+commit.e11b9ed9.js' + const path = require('path') + +diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js +index 6f01181fa..33e0e4d4c 100644 +--- a/apps/remix-ide/src/app.js ++++ b/apps/remix-ide/src/app.js +@@ -59,6 +59,7 @@ import { ripgrepPlugin } from './app/plugins/electron/ripgrepPlugin' + import { compilerLoaderPlugin, compilerLoaderPluginDesktop } from './app/plugins/electron/compilerLoaderPlugin' + + import {OpenAIGpt} from './app/plugins/openaigpt' ++import {SolCoder} from './app/plugins/solcoderAI' + + const isElectron = require('is-electron') + +@@ -233,6 +234,7 @@ class AppComponent { + + // ----------------- AI -------------------------------------- + const openaigpt = new OpenAIGpt() ++ const solcoder = new SolCoder() + const copilotSuggestion = new CopilotSuggestion() + + // ----------------- import content service ------------------------ +@@ -360,6 +362,7 @@ class AppComponent { + solidityScript, + templates, + openaigpt, ++ solcoder, + copilotSuggestion + ]) + +@@ -515,7 +518,9 @@ class AppComponent { + } + ) + await this.appManager.activatePlugin(['solidity-script', 'openaigpt']) ++ await this.appManager.activatePlugin(['solcoder']) + ++ + + await this.appManager.activatePlugin(['filePanel']) + // Set workspace after initial activation +diff --git a/apps/remix-ide/src/app/plugins/contractFlattener.tsx b/apps/remix-ide/src/app/plugins/contractFlattener.tsx +index a5f02719c..2c3640bcd 100644 +--- a/apps/remix-ide/src/app/plugins/contractFlattener.tsx ++++ b/apps/remix-ide/src/app/plugins/contractFlattener.tsx +@@ -2,7 +2,6 @@ import React from 'react' + import {Plugin} from '@remixproject/engine' + import {customAction} from '@remixproject/plugin-api' + import {concatSourceFiles, getDependencyGraph, normalizeContractPath} from '@remix-ui/solidity-compiler' +-import type {CompilerInput, CompilationSource } from '@remix-project/remix-solidity' + + const _paq = (window._paq = window._paq || []) + +@@ -26,7 +25,7 @@ export class ContractFlattener extends Plugin { + if (data.sources && Object.keys(data.sources).length > 1) { + if (this.triggerFlattenContract) { + this.triggerFlattenContract = false +- await this.flattenContract(source, file, data, JSON.parse(input)) ++ await this.flattenContract(source, file, data) + } + } + }) +@@ -48,17 +47,17 @@ export class ContractFlattener extends Plugin { + * Takes the flattened result, writes it to a file and returns the result. + * @returns {Promise} + */ +- async flattenContract(source: {sources: any; target: string}, filePath: string, data: {contracts: any; sources: any}, input: CompilerInput): Promise { ++ async flattenContract(source: {sources: any; target: string}, filePath: string, data: {contracts: any; sources: any}): Promise { + const appendage = '_flattened.sol' + const normalized = normalizeContractPath(filePath) + const path = `${normalized[normalized.length - 2]}${appendage}` +- const ast: { [contractName: string]: CompilationSource } = data.sources ++ const ast = data.sources + let dependencyGraph + let sorted + let result + let sources + try { +- dependencyGraph = getDependencyGraph(ast, filePath, input.settings.remappings) ++ dependencyGraph = getDependencyGraph(ast, filePath) + sorted = dependencyGraph.isEmpty() ? [filePath] : dependencyGraph.sort().reverse() + sources = source.sources + result = concatSourceFiles(sorted, sources) +diff --git a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts +index ac1798b40..708243fca 100644 +--- a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts ++++ b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/copilot-suggestion.ts +@@ -8,36 +8,31 @@ const profile = { + name: 'copilot-suggestion', + displayName: 'copilot-suggestion', + description: 'Get Solidity suggestions in editor', +- methods: ['suggest', 'init', 'uninstall', 'status', 'isActivate', 'useRemoteService', 'discardRemoteService'], ++ methods: ['suggest', 'init', 'uninstall', 'status', 'isActivate', 'discardRemoteService', 'useconfig'], + version: '0.1.0-alpha', + maintainedBy: "Remix" + } + + export class CopilotSuggestion extends Plugin { + service: SuggestionService +- remoteService: string + context: string + ready: boolean ++ config: { [id: string]: string } + constructor() { + super(profile) + this.service = new SuggestionService() + this.context = '' +- this.service.events.on('progress', (data) => { +- this.emit('loading', data) +- }) +- this.service.events.on('done', (data) => { +- }) +- this.service.events.on('ready', (data) => { +- this.ready = true +- }) ++ this.ready = true // always ready for service ++ this.config = {} + } + +- useRemoteService(service: string) { +- this.remoteService = service ++ ++ useconfig(config ){ ++ this.config = config + } + + discardRemoteService() { +- this.remoteService = null ++ this.ready = false + } + + status () { +@@ -59,18 +54,19 @@ export class CopilotSuggestion extends Plugin { + const max_new_tokens = await this.call('settings', 'get', 'settings/copilot/suggest/max_new_tokens') + const temperature = await this.call('settings', 'get', 'settings/copilot/suggest/temperature') + const options: SuggestOptions = { +- do_sample: false, +- top_k: 0, +- temperature: temperature || 0, ++ top_k: 50, ++ top_p: 0.92, ++ stream_result: false, ++ temperature: temperature || 0.9, + max_new_tokens: max_new_tokens || 0 + } + +- if (this.remoteService) { +- const {data} = await axios.post(this.remoteService, {context: content, max_new_words: options.max_new_tokens, temperature: options.temperature}) +- const parsedData = JSON.parse(data).trimStart() ++ if (this.ready){ ++ const data = await this.call('solcoder', 'code_completion', content.split(" ").slice(-1000).join(" "), options) ++ const parsedData = data[0].trimStart() + return {output: [{generated_text: parsedData}]} +- } else { +- return this.service.suggest(this.context ? this.context + '\n\n' + content : content, options) ++ }else{ ++ return + } + } + +diff --git a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts +index b85647cb9..49323aeda 100644 +--- a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts ++++ b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/suggestion-service.ts +@@ -1,6 +1,10 @@ + import EventEmitter from 'events' + +-export type SuggestOptions = { max_new_tokens: number, temperature: number, top_k: number, do_sample: boolean } ++export type SuggestOptions = { max_new_tokens: number, ++ temperature: number, ++ top_k: number, ++ top_p:number, ++ stream_result:boolean} + + export class SuggestionService { + worker: Worker +@@ -89,7 +93,6 @@ export class SuggestionService { + max_new_tokens: options.max_new_tokens, + temperature: options.temperature, + top_k: options.top_k, +- do_sample: options.do_sample + }) + this.responses[timespan] = (error, result) => { + if (error) return reject(error) +diff --git a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js +index a5affc48b..3d1e0f5ac 100644 +--- a/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js ++++ b/apps/remix-ide/src/app/plugins/copilot/suggestion-service/worker.js +@@ -3,7 +3,6 @@ import { pipeline, env } from '@xenova/transformers'; + + env.allowLocalModels = true; + +-const instance = null + /** + * This class uses the Singleton pattern to ensure that only one instance of the pipeline is loaded. + */ +@@ -35,12 +34,12 @@ self.addEventListener('message', async (event) => { + if (cmd === 'init') { + // Retrieve the code-completion pipeline. When called for the first time, + // this will load the pipeline and save it for future use. +- CodeCompletionPipeline.model = model +- await CodeCompletionPipeline.getInstance(x => { +- // We also add a progress callback to the pipeline so that we can +- // track model loading. +- self.postMessage(x); +- }); ++ // CodeCompletionPipeline.model = model ++ // await CodeCompletionPipeline.getInstance(x => { ++ // // We also add a progress callback to the pipeline so that we can ++ // // track model loading. ++ // self.postMessage(x); ++ // }); + return + } + +@@ -48,8 +47,8 @@ self.addEventListener('message', async (event) => { + // Send the output back to the main thread + self.postMessage({ + id, +- status: 'error', +- message: 'model not yet loaded' ++ status: 'info', ++ message: 'model not longer supported' + }); + } + +diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx +new file mode 100644 +index 000000000..a377f7897 +--- /dev/null ++++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx +@@ -0,0 +1,145 @@ ++import { Plugin } from '@remixproject/engine' ++import {SuggestOptions} from './copilot/suggestion-service/suggestion-service' ++ ++const _paq = (window._paq = window._paq || []) ++ ++const profile = { ++ name: 'solcoder', ++ displayName: 'solcoder', ++ description: 'solcoder', ++ methods: ['code_generation', 'code_completion', "solidity_answer", "code_explaining"], ++ events: [], ++ maintainedBy: 'Remix', ++} ++ ++export class SolCoder extends Plugin { ++ api_url: string ++ constructor() { ++ super(profile) ++ this.api_url = "https://hkfll35zthu6e2-7861.proxy.runpod.net/api/" ++ } ++ ++ async code_generation(prompt): Promise { ++ this.emit("aiInfering") ++ this.call('layout', 'maximizeTerminal') ++ this.call('terminal', 'log', 'Waiting for Solcoder answer...') ++ let result ++ try { ++ result = await( ++ await fetch(this.api_url.concat("code_generation"), { ++ method: 'POST', ++ headers: { ++ Accept: 'application/json', ++ 'Content-Type': 'application/json', ++ }, ++ body: JSON.stringify({"data":[prompt,false,1000,0.2,0.8,50]}), ++ }) ++ ).json() ++ return result.data[0] ++ } catch (e) { ++ this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) ++ return ++ }finally { ++ this.emit("aiInferingDone") ++ } ++ } ++ ++ async solidity_answer(prompt): Promise { ++ this.emit("aiInfering") ++ this.call('layout', 'maximizeTerminal') ++ this.call('terminal', 'log', 'Waiting for Solcoder answer...') ++ let result ++ try { ++ result = await( ++ await fetch(this.api_url.concat("solidity_answer"), { ++ method: 'POST', ++ headers: { ++ Accept: 'application/json', ++ 'Content-Type': 'application/json', ++ }, ++ body: JSON.stringify({"data":[prompt,false,1000,0.9,0.8,50]}), ++ }) ++ ).json() ++ } catch (e) { ++ this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) ++ return ++ }finally { ++ this.emit("aiInferingDone") ++ } ++ if (result) { ++ this.call('terminal', 'log', { type: 'typewriterwarning', value: result.data[0]}) ++ } else if (result.error) { ++ this.call('terminal', 'log', { type: 'typewriterwarning', value: "Error on request" }) ++ } ++ ++ } ++ ++ async code_explaining(prompt): Promise { ++ this.emit("aiInfering") ++ this.call('layout', 'maximizeTerminal') ++ this.call('terminal', 'log', 'Waiting for Solcoder answer...') ++ let result ++ try { ++ result = await( ++ await fetch(this.api_url.concat("code_explaining"), { ++ method: 'POST', ++ headers: { ++ Accept: 'application/json', ++ 'Content-Type': 'application/json', ++ }, ++ body: JSON.stringify({"data":[prompt,false,2000,0.9,0.8,50]}), ++ }) ++ ).json() ++ if (result) { ++ this.call('terminal', 'log', { type: 'typewriterwarning', value: result.data[0]}) ++ } ++ return result.data[0] ++ } catch (e) { ++ this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) ++ return ++ }finally { ++ this.emit("aiInferingDone") ++ } ++ } ++ ++ async code_completion(prompt, options:SuggestOptions=null): Promise { ++ this.emit("aiInfering") ++ let result ++ try { ++ result = await( ++ await fetch(this.api_url.concat("code_completion"), { ++ method: 'POST', ++ headers: { ++ Accept: 'application/json', ++ 'Content-Type': 'application/json', ++ }, ++ body: JSON.stringify({"data": !options? [ ++ prompt, // string in 'context_code' Textbox component ++ "", // string in 'comment' Textbox component ++ false, // boolean in 'stream_result' Checkbox component ++ 200, // number (numeric value between 0 and 2000) in 'max_new_tokens' Slider component ++ 0.9, // number (numeric value between 0.01 and 1) in 'temperature' Slider component ++ 0.90, // number (numeric value between 0 and 1) in 'top_p' Slider component ++ 50, // number (numeric value between 1 and 200) in 'top_k' Slider component ++ ] : [ ++ prompt, ++ "", ++ options.stream_result, ++ options.max_new_tokens, ++ options.temperature, ++ options.top_p, ++ options.top_k ++ ]}), ++ }) ++ ).json() ++ ++ return result.data ++ } catch (e) { ++ this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) ++ return ++ } finally { ++ this.emit("aiInferingDone") ++ } ++ } ++ ++} +diff --git a/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx b/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx +index 3fd6b6bd5..ebbb7b9bb 100644 +--- a/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx ++++ b/apps/remix-ide/src/app/plugins/solidity-umlgen.tsx +@@ -11,7 +11,6 @@ import vizRenderStringSync from '@aduh95/viz.js/sync' + import {PluginViewWrapper} from '@remix-ui/helper' + import {customAction} from '@remixproject/plugin-api' + import {ClassOptions} from 'sol2uml/lib/converterClass2Dot' +-import type {CompilerInput} from '@remix-project/remix-solidity' + const parser = (window as any).SolidityParser + + const _paq = (window._paq = window._paq || []) +@@ -75,7 +74,7 @@ export class SolidityUmlGen extends ViewPlugin implements ISolidityUmlGen { + try { + if (data.sources && Object.keys(data.sources).length > 1) { + // we should flatten first as there are multiple asts +- result = await this.flattenContract(source, file, data, JSON.parse(input)) ++ result = await this.flattenContract(source, file, data) + } + const ast = result.length > 1 ? parser.parse(result) : parser.parse(source.sources[file].content) + this.umlClasses = convertAST2UmlClasses(ast, this.currentFile) +@@ -143,8 +142,8 @@ export class SolidityUmlGen extends ViewPlugin implements ISolidityUmlGen { + * and assigns to a local property + * @returns {Promise} + */ +- async flattenContract(source: any, filePath: string, data: any, input: CompilerInput) { +- const result = await this.call('contractflattener', 'flattenContract', source, filePath, data, input) ++ async flattenContract(source: any, filePath: string, data: any) { ++ const result = await this.call('contractflattener', 'flattenContract', source, filePath, data) + return result + } + +diff --git a/apps/remix-ide/src/app/tabs/locales/en/editor.json b/apps/remix-ide/src/app/tabs/locales/en/editor.json +index fac7f7a60..33643eb0b 100644 +--- a/apps/remix-ide/src/app/tabs/locales/en/editor.json ++++ b/apps/remix-ide/src/app/tabs/locales/en/editor.json +@@ -23,8 +23,10 @@ + "editor.generateDocumentation2": "Generate documentation for the function \"{name}\"", + "editor.generateDocumentationByAI": "solidity code: {content}\n Generate the documentation for the function {currentFunction} using the Doxygen style syntax", + "editor.explainFunction": "Explain this function", ++ "editor.explainFunctionSol": "Explain this code", + "editor.explainFunction2": "Explain the function \"{name}\"", + "editor.explainFunctionByAI": "solidity code: {content}\n Explain the function {currentFunction}", ++ "editor.explainFunctionByAISol": "solidity code: {content}\n Explain the function {currentFunction}", + "editor.executeFreeFunction": "Run a free function", + "editor.executeFreeFunction2": "Run the free function \"{name}\"", + "editor.toastText1": "This can only execute free function", +diff --git a/apps/remix-ide/src/app/tabs/locales/en/filePanel.json b/apps/remix-ide/src/app/tabs/locales/en/filePanel.json +index 3847cae62..3b790fa70 100644 +--- a/apps/remix-ide/src/app/tabs/locales/en/filePanel.json ++++ b/apps/remix-ide/src/app/tabs/locales/en/filePanel.json +@@ -136,4 +136,4 @@ + "filePanel.movingFolderFailedMsg": "Unexpected error while moving folder: {src}", + "filePanel.workspaceActions": "Workspace actions", + "filePanel.saveCodeSample": "This code-sample workspace will not be persisted. Click here to save it." +-} ++} +\ No newline at end of file +diff --git a/apps/remix-ide/src/app/tabs/locales/en/panel.json b/apps/remix-ide/src/app/tabs/locales/en/panel.json +index 013a68e19..c9ad7d8d0 100644 +--- a/apps/remix-ide/src/app/tabs/locales/en/panel.json ++++ b/apps/remix-ide/src/app/tabs/locales/en/panel.json +@@ -4,7 +4,6 @@ + "panel.documentation": "Documentation", + "panel.description": "Description", + "panel.maintainedByRemix": "Maintained by Remix", +- "panel.maintainedExternally": "Not maintained by Remix", + "panel.pluginInfo": "Plugin info", + "panel.linkToDoc": "Link to documentation", + "panel.makeAnissue": "Make an issue" +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 f6de5d5e4..b4991edf7 100644 +--- a/apps/remix-ide/src/app/tabs/locales/en/pluginManager.json ++++ b/apps/remix-ide/src/app/tabs/locales/en/pluginManager.json +@@ -33,7 +33,6 @@ + "pluginManager.ok": "OK", + "pluginManager.cancel": "Cancel", + "pluginManager.maintainedByRemix": "Maintained by Remix", +- "pluginManager.maintainedExternally": "Not maintained by Remix", + "pluginManager.linkToDoc": "Link to documentation", + "pluginManager.versionAlpha": "Version Alpha", + "pluginManager.versionBeta": "Version Beta", +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 1c60e9592..f001d1d4f 100644 +--- a/apps/remix-ide/src/app/tabs/locales/en/remixUiTabs.json ++++ b/apps/remix-ide/src/app/tabs/locales/en/remixUiTabs.json +@@ -2,6 +2,9 @@ + "remixUiTabs.tooltipText1": "Run script (CTRL + SHIFT + S)", + "remixUiTabs.tooltipText2": "Compile CTRL + S", + "remixUiTabs.tooltipText3": "Select .sol or .yul file to compile or a .ts or .js file and run it", ++ "remixUiTabs.tooltipText4": "Select .sol file to explain with AI", ++ "remixUiTabs.tooltipText5": "Explain the contract/s in current file", ++ "remixUiTabs.tooltipText6": "AI Copilot", + "remixUiTabs.zoomOut": "Zoom out", + "remixUiTabs.zoomIn": "Zoom in" + } +diff --git a/apps/remix-ide/src/app/tabs/locales/en/settings.json b/apps/remix-ide/src/app/tabs/locales/en/settings.json +index b290156ee..5f658450d 100644 +--- a/apps/remix-ide/src/app/tabs/locales/en/settings.json ++++ b/apps/remix-ide/src/app/tabs/locales/en/settings.json +@@ -38,7 +38,9 @@ + "settings.projectSecret": "PROJECT SECRET", + "settings.analyticsInRemix": "Analytics in Remix IDE", + "settings.copilot": "Solidity copilot - Alpha", +- "settings.copilot.activate": "Load & Activate copilot", ++ "settings.copilot.activate": "Enable copilot", + "settings.copilot.max_new_tokens": "Maximum number of words to generate", +- "settings.copilot.temperature": "Temperature" ++ "settings.copilot.temperature": "Temperature", ++ "settings.copilot.top_k": "top_k", ++ "settings.copilot.top_p": "top_p" + } +diff --git a/apps/remix-ide/src/app/tabs/settings-tab.tsx b/apps/remix-ide/src/app/tabs/settings-tab.tsx +index 8bbf8b2c8..b094dd802 100644 +--- a/apps/remix-ide/src/app/tabs/settings-tab.tsx ++++ b/apps/remix-ide/src/app/tabs/settings-tab.tsx +@@ -15,7 +15,7 @@ const _paq = (window._paq = window._paq || []) + const profile = { + name: 'settings', + displayName: 'Settings', +- methods: ['get'], ++ methods: ['get', 'updateCopilotChoice'], + events: [], + icon: 'assets/img/settings.webp', + description: 'Remix-IDE settings', +@@ -36,6 +36,7 @@ module.exports = class SettingsTab extends ViewPlugin { + } + element: HTMLDivElement + public useMatomoAnalytics: any ++ public useCopilot: any + dispatch: React.Dispatch = () => {} + constructor(config, editor) { + super(profile) +@@ -51,6 +52,7 @@ module.exports = class SettingsTab extends ViewPlugin { + this.element = document.createElement('div') + this.element.setAttribute('id', 'settingsTab') + this.useMatomoAnalytics = null ++ this.useCopilot = null + } + + setDispatch(dispatch: React.Dispatch) { +@@ -74,6 +76,7 @@ module.exports = class SettingsTab extends ViewPlugin { + editor={state.editor} + _deps={state._deps} + useMatomoAnalytics={state.useMatomoAnalytics} ++ useCopilot={state.useCopilot} + themeModule={state._deps.themeModule} + localeModule={state._deps.localeModule} + /> +@@ -88,6 +91,14 @@ module.exports = class SettingsTab extends ViewPlugin { + return this.config.get(key) + } + ++ updateCopilotChoice(isChecked) { ++ this.config.set('settings/copilot/suggest/activate', isChecked) ++ this.useCopilot = isChecked ++ this.dispatch({ ++ ...this ++ }) ++ } ++ + updateMatomoAnalyticsChoice(isChecked) { + this.config.set('settings/matomo-analytics', isChecked) + this.useMatomoAnalytics = isChecked +diff --git a/apps/remix-ide/src/app/tabs/web3-provider.js b/apps/remix-ide/src/app/tabs/web3-provider.js +index 16c3a3dd1..89b752873 100644 +--- a/apps/remix-ide/src/app/tabs/web3-provider.js ++++ b/apps/remix-ide/src/app/tabs/web3-provider.js +@@ -1,7 +1,6 @@ + import { Plugin } from '@remixproject/engine' + import * as packageJson from '../../../../../package.json' + import {isBigInt} from 'web3-validator' +-import { addressToString } from "@remix-ui/helper" + + export const profile = { + name: 'web3Provider', +@@ -55,13 +54,8 @@ export class Web3ProviderModule extends Plugin { + console.log('receipt available but contract address not present', receipt) + return + } +- const contractAddressStr = addressToString(receipt.contractAddress) +- const contractData = await this.call('compilerArtefacts', 'getContractDataFromAddress', contractAddressStr) +- if (contractData) { +- this.call('udapp', 'addInstance', contractAddressStr, contractData.contract.abi, contractData.name) +- const data = await this.call('compilerArtefacts', 'getCompilerAbstract', contractData.file) +- await this.call('compilerArtefacts', 'addResolvedContract', contractAddressStr, data) +- } ++ const contractData = await this.call('compilerArtefacts', 'getContractDataFromAddress', receipt.contractAddress) ++ if (contractData) this.call('udapp', 'addInstance', receipt.contractAddress, contractData.contract.abi, contractData.name) + }, 50) + } + } +diff --git a/apps/remix-ide/src/assets/list.json b/apps/remix-ide/src/assets/list.json +deleted file mode 100644 +index b22d882d4..000000000 +--- a/apps/remix-ide/src/assets/list.json ++++ /dev/null +@@ -1,1190 +0,0 @@ +-{ +- "builds": [ +- { +- "path": "soljson-v0.3.6+commit.3fc68da5.js", +- "version": "0.3.6", +- "build": "commit.3fc68da5", +- "longVersion": "0.3.6+commit.3fc68da5", +- "keccak256": "0x4a1c2a6a4896edefd3a4178a6c3ed8f1de625bd7c00dd7cc5781a9f36236e7db", +- "sha256": "0xee7ba01680ed3a1c1cda236189a51c1e6ff99f6dca602a580e5b16441772b50b", +- "urls": [ +- "bzzr://83e99aa35ae67e71bf77040e5b4686aeb3558919f172b6c28213a4dcd8d79e91", +- "dweb:/ipfs/Qme9brfZS3XhbiRbbNDKhBpgFknyD92omMmYa7XSf56bJP" +- ] +- }, +- { +- "path": "soljson-v0.4.0+commit.acd334c9.js", +- "version": "0.4.0", +- "build": "commit.acd334c9", +- "longVersion": "0.4.0+commit.acd334c9", +- "keccak256": "0x07994ad8c59c498bf44ca8e84914e27b79be964d98a9556226db377819d67387", +- "sha256": "0xb83d2025e0bbc7f7f0dc9e47f5aa22eacb548b42c55add8f5f6822c105163500", +- "urls": [ +- "bzzr://414fc715062f91971c8e0d9fbdf470dd24a8a35f4f96df0ba79980cdb0ae7eaa", +- "dweb:/ipfs/QmcBZ6Q2iHmrf9omvD7Jyy8kgrqyPmZFwvKWqvVDaxo1Ta" +- ] +- }, +- { +- "path": "soljson-v0.4.1+commit.4fc6fc2c.js", +- "version": "0.4.1", +- "build": "commit.4fc6fc2c", +- "longVersion": "0.4.1+commit.4fc6fc2c", +- "keccak256": "0x4c358c2e90447ad9e7c1816b5be8edde1172f67dedf16755a6c7373ede46b245", +- "sha256": "0x9825565e1f199dbed6de01d27e10f83a9180300acab80f8469bf427e3cf92e96", +- "urls": [ +- "bzzr://6ecbe30c4c8530b82d55ed6bec12e63efbab1cb16868b020d65399a8793599a6", +- "dweb:/ipfs/QmcEK5gvWNeHUtjsF3B6j5AXb9uNoG3aHbPrCMJDx7C8TM" +- ] +- }, +- { +- "path": "soljson-v0.4.2+commit.af6afb04.js", +- "version": "0.4.2", +- "build": "commit.af6afb04", +- "longVersion": "0.4.2+commit.af6afb04", +- "keccak256": "0xb67df5c37e8255e0de7918b6d3261f0f29e277d121bf5f414b66157a5b1070cd", +- "sha256": "0x67f8a94b60278cfb80d505c47a1a5e67ec2caf20167ef85f2bdf2a80a692bd1b", +- "urls": [ +- "bzzr://7ba69a10a4585d0a36e5843603476061e8b02878331fa580d5c2509ef01ddaa6", +- "dweb:/ipfs/QmVumPvgQVFLZvDvQddcDGcdxjbVWTTzxoQvJAECBBZ6Ju" +- ] +- }, +- { +- "path": "soljson-v0.4.3+commit.2353da71.js", +- "version": "0.4.3", +- "build": "commit.2353da71", +- "longVersion": "0.4.3+commit.2353da71", +- "keccak256": "0x62a65d0a951617f022524fc844ca11d90266f64e693343a2f41107183bf364c1", +- "sha256": "0x66da311056ec26c9c3fb501350ee22187c30e79c41bf2713eeff7d84479948c5", +- "urls": [ +- "bzzr://ccf4f1e05d942946bcca929e9263c541b2749bf1faf6dc6c211b4bf700344d71", +- "dweb:/ipfs/QmXf2cKYJ26tXAU6A6tmUk2dn4tuX3CWNaXJVnGLuoe15y" +- ] +- }, +- { +- "path": "soljson-v0.4.4+commit.4633f3de.js", +- "version": "0.4.4", +- "build": "commit.4633f3de", +- "longVersion": "0.4.4+commit.4633f3de", +- "keccak256": "0x06afcb6dc23efb1482545b63c5e3983dded0c383ecc46c3ae319f7b868201e47", +- "sha256": "0x9e386edb2ee759ad65792f7d62c10ae7edf65c5b874a5451f1e695e586b69eea", +- "urls": [ +- "bzzr://e93e97b9989cd59673bb1fd64a0f940e8729c3c40b819593b8590480cba24bea", +- "dweb:/ipfs/QmSJFaZhpXQ2EPF2koyiTNAiiuJRykv1Q8yubhkmBhvYyu" +- ] +- }, +- { +- "path": "soljson-v0.4.5+commit.b318366e.js", +- "version": "0.4.5", +- "build": "commit.b318366e", +- "longVersion": "0.4.5+commit.b318366e", +- "keccak256": "0xcdf7c4d4c6b9331b755170fa927692019c94088f87f100d2c3c920bcc3740d0b", +- "sha256": "0x7184dae0b761485a5dce66b50075e17857c5b55fe3fa71fe22d4d5acc0839741", +- "urls": [ +- "bzzr://e21d2bd58112fb165fa2c253504bf49ceca661ac1009d270a31cb996560cfa34", +- "dweb:/ipfs/QmYJuZgMbeMiotHAFNWEXdxjTa5yi7GaV4UkgBYABomFpj" +- ] +- }, +- { +- "path": "soljson-v0.4.6+commit.2dabbdf0.js", +- "version": "0.4.6", +- "build": "commit.2dabbdf0", +- "longVersion": "0.4.6+commit.2dabbdf0", +- "keccak256": "0x52ca702b8ed4b1e6d43d8a006b3d27f6dba611bac118c523711bfd209fb1cc9d", +- "sha256": "0x8db9466df3b91c52e3412cebd13176ea9fe16d3239d000828a081c34ce899337", +- "urls": [ +- "bzzr://24dc5536a4771b2336fa304f3cd38d5203b6ab49c78a3057ec578991f3fcf265", +- "dweb:/ipfs/QmZZ9hNntBxJw3G7LGW3e8nXtnGxLnaSMM44K4BbLrkELs" +- ] +- }, +- { +- "path": "soljson-v0.4.7+commit.822622cf.js", +- "version": "0.4.7", +- "build": "commit.822622cf", +- "longVersion": "0.4.7+commit.822622cf", +- "keccak256": "0xcd8a6a8b2626de75ef6ff73fb724f3ad5693a8902f86e88290f048b56182e7cc", +- "sha256": "0xd28a58fbc3ce56ff650d4daf3a1d8092e25cadf2a5b2769fd333b321dfc6a22d", +- "urls": [ +- "bzzr://6a5d22e366c35f184d5203f3e062131018d8a4d09cf770a0720cfaf4d7b49705", +- "dweb:/ipfs/QmfHjv4nYKuv3yFpWZqBYyiYEYmkQGydQmFT5b6mJkFpWp" +- ] +- }, +- { +- "path": "soljson-v0.4.8+commit.60cc1668.js", +- "version": "0.4.8", +- "build": "commit.60cc1668", +- "longVersion": "0.4.8+commit.60cc1668", +- "keccak256": "0x43c96fc79cf288cecda12b23a17f30b1cf0427a19dc7c1c094bb461eabefe0df", +- "sha256": "0x9af176f42b63eaec838999a07e80484f92f41a0fc497adefa65baf88d8fbecaf", +- "urls": [ +- "bzzr://fc0e644a61e43592754b66f8d911c91312538debb89da29ffda3d3fd81ff70d9", +- "dweb:/ipfs/Qmf7WYJJ8y6oHr4RQ7HC4tXgFPGvsnp3Qf6TrMBdK52Y5Z" +- ] +- }, +- { +- "path": "soljson-v0.4.9+commit.364da425.js", +- "version": "0.4.9", +- "build": "commit.364da425", +- "longVersion": "0.4.9+commit.364da425", +- "keccak256": "0xbe94ff397be2a951cbeb6c9c1a60ddf531d0ce76f45d51755386b6fa42cc2e2c", +- "sha256": "0x6ff1683eb76dc58c31043fea474be6da8535ec625d1cd8331a3daead84fd5564", +- "urls": [ +- "bzzr://6e134aa89a00a18d930924fc2fad2aa434f80b6a71085ff2ab379e3672c812e7", +- "dweb:/ipfs/QmeBWFbK1aAxnB6muXWStZJWndrFvMJt4xfAzEJD7AqaY3" +- ] +- }, +- { +- "path": "soljson-v0.4.10+commit.f0d539ae.js", +- "version": "0.4.10", +- "build": "commit.f0d539ae", +- "longVersion": "0.4.10+commit.f0d539ae", +- "keccak256": "0x178e51ad0c6a350ec4ed6fd07675dfd4d2581ee07b14b4954dd0b0f6d8633ca5", +- "sha256": "0xd70ca2f656a88a9be7a3f7d602f03b30149b3bda0d1057cfa3a3c5e3d6e07453", +- "urls": [ +- "bzzr://6e43013ff973198d7fcc4a43910041f2f07d0099f4252737a2a2545443b11105", +- "dweb:/ipfs/QmarthW41sfbrdkMmCK6jicXFZDGgvALzdgzygtUqEauae" +- ] +- }, +- { +- "path": "soljson-v0.4.11+commit.68ef5810.js", +- "version": "0.4.11", +- "build": "commit.68ef5810", +- "longVersion": "0.4.11+commit.68ef5810", +- "keccak256": "0xb8c3f5654b323cea016c0cc1a4584069714cdf796489efe2496a13f8f83a0e63", +- "sha256": "0xdeb3c274f8b840d657e2f9b1dba602e89f58b1bf3fd7178c48c9033310a1f006", +- "urls": [ +- "bzzr://084452a20ae520bba965ba0b863f3d6de0516d1f92ddb512a138fb787d841c55", +- "dweb:/ipfs/QmNUf8dTW9xANAvJmV1ho279AyWSCCvDp6bXet1QTcS2z5" +- ] +- }, +- { +- "path": "soljson-v0.4.12+commit.194ff033.js", +- "version": "0.4.12", +- "build": "commit.194ff033", +- "longVersion": "0.4.12+commit.194ff033", +- "keccak256": "0x598af6fec02a6783d6a438a6bb0f7d3012716d003f7bf6c9ac5a4d2bc911941b", +- "sha256": "0xd522b307a014a32ed5815b05045c4396abc047e70c8a53c1e3ef92e14daa61c6", +- "urls": [ +- "bzzr://cef259b97217a7526819155f6dd513768be5f8718324ec3a63c315071e2f7c70", +- "dweb:/ipfs/QmWGK9FbQiNWNeqysvCNCBw3q7cR1dzpnD1EKtNija2zyK" +- ] +- }, +- { +- "path": "soljson-v0.4.13+commit.0fb4cb1a.js", +- "version": "0.4.13", +- "build": "commit.0fb4cb1a", +- "longVersion": "0.4.13+commit.0fb4cb1a", +- "keccak256": "0x93f7046d6e0ea2492ec5229936821b3b020dbe9eb2e1193953389293d64a190b", +- "sha256": "0x68ace74ca809ff47b09449d4054c77907d9412f14f6003d5475b60f4fec13709", +- "urls": [ +- "bzzr://8943b9e6d4ec52bda1b8fbd65509168ba3388651a30cb495d5280cfbf35614d7", +- "dweb:/ipfs/Qmco9fGHM6mdaPVYqeDQ11GB3BrCbwRcEzM5XzHpAdAVWc" +- ] +- }, +- { +- "path": "soljson-v0.4.14+commit.c2215d46.js", +- "version": "0.4.14", +- "build": "commit.c2215d46", +- "longVersion": "0.4.14+commit.c2215d46", +- "keccak256": "0x7def3c264883cbe6ffbfc54894e48f9a0d2984ddbd1145eb898758d2a41d1559", +- "sha256": "0x54f3dc64f2ff5a5350410f6157a537d96fb4aeec90476e90a951ddfbd1fe4bca", +- "urls": [ +- "bzzr://3428015c422bb223c3fe8c3a85615081981c47ead375564c16701b261948f0f1", +- "dweb:/ipfs/QmXyyuEWhexuez2rzAeFjunpiAhncD1AfcXitGNHxpRWha" +- ] +- }, +- { +- "path": "soljson-v0.4.15+commit.bbb8e64f.js", +- "version": "0.4.15", +- "build": "commit.bbb8e64f", +- "longVersion": "0.4.15+commit.bbb8e64f", +- "keccak256": "0x9ffa9ee890ec483580c0b4ed72270b16e92eb0b7a8a97fb00c257f8809aa4023", +- "sha256": "0x3e64525797e0b2d9abaeb022688cc02d63fc5820327e382fc6574a7de650dc97", +- "urls": [ +- "bzzr://395f2d903c162ddc9b6ebd76db450ca6cb9cf8bb276c3d705aa462ae560d23ab", +- "dweb:/ipfs/QmW2rPbEtiVAbWJxtizzDqTjwpRpXCxkpSR696g9GxAYKT" +- ] +- }, +- { +- "path": "soljson-v0.4.16+commit.d7661dd9.js", +- "version": "0.4.16", +- "build": "commit.d7661dd9", +- "longVersion": "0.4.16+commit.d7661dd9", +- "keccak256": "0xf0a6c32af3eaa2f8c6d9e6c8b90f3bac5e775c7f1c90a61c1e72b593fbb1528d", +- "sha256": "0x0e6d842e941cd8b76280c59f28f6d020af1afdea8e4be9d9da677ac5dbe860c6", +- "urls": [ +- "bzzr://f44b067fda20d169321fd3616f68633fd7a4277b6340f42f74203f33dad4a472", +- "dweb:/ipfs/QmSwumWbYwYe4xLcqpi38VNtw7xCgbNaUkRhiZro9EnqLt" +- ] +- }, +- { +- "path": "soljson-v0.4.17+commit.bdeb9e52.js", +- "version": "0.4.17", +- "build": "commit.bdeb9e52", +- "longVersion": "0.4.17+commit.bdeb9e52", +- "keccak256": "0xeb8c3c474b5fa792f9b1b2ac6be945c32f835ccdc059deb562da4e99a031eab9", +- "sha256": "0x7fe677e8214d0486fa7164f797862fae0a0fefb7b72cf6ad8e728faa54f12b60", +- "urls": [ +- "bzzr://37026d0ee2865c52fff8f6311b67b94f96dbb52ce8af3f84c3a9aeb47b12bf47", +- "dweb:/ipfs/QmbgEAtdmSoxH4cfRJXj7mVpKv9rT5Cq2YmXmAnjgsyqBC" +- ] +- }, +- { +- "path": "soljson-v0.4.18+commit.9cf6e910.js", +- "version": "0.4.18", +- "build": "commit.9cf6e910", +- "longVersion": "0.4.18+commit.9cf6e910", +- "keccak256": "0xf824e695e8e66079b4b6063622c7dd80ed056d29969c8c3babac4fb572f3dfec", +- "sha256": "0x5bb50839ba5116bf31669f3de8dad72eaec298ba32a643be7d0dc2d1392c54d6", +- "urls": [ +- "bzzr://d847bc8f5d43cd348346c5bb253269de36f00810c2e189ca64a4becdb9e9312f", +- "dweb:/ipfs/Qmf5RrLbWeMykvWJbCyyThCLQ9YVmU8uWagMdSp9nNzZMc" +- ] +- }, +- { +- "path": "soljson-v0.4.19+commit.c4cbbb05.js", +- "version": "0.4.19", +- "build": "commit.c4cbbb05", +- "longVersion": "0.4.19+commit.c4cbbb05", +- "keccak256": "0xa60eadfddbfda0daebb8a1b883b89d33b800cff7ce7e12458170ea17cd5ede58", +- "sha256": "0x8c2a69fbab9bdf503538028c697e09e51a7e699323ae7100c375cb35c415a819", +- "urls": [ +- "bzzr://87e29a7298d49b8b52ed01d6146b05aa41c11a85d1b805dd48181ac2ed5e9b22", +- "dweb:/ipfs/QmSZEQEGuVJ7hudg8FzfDMXKVtn5AVGKaxbhSSDXwpX73K" +- ] +- }, +- { +- "path": "soljson-v0.4.20+commit.3155dd80.js", +- "version": "0.4.20", +- "build": "commit.3155dd80", +- "longVersion": "0.4.20+commit.3155dd80", +- "keccak256": "0x6c6dfa967526b7060634474ef730761711e5be662abf5ee02dc05985abfadec9", +- "sha256": "0x9852ad94048600cc5a1458b4a7ab625996844c809b314422693bdc81d953fcc0", +- "urls": [ +- "bzzr://3edc1542fb719d3e08138b492a5db06333fb36055a434c3b071b2dcb69e54fbc", +- "dweb:/ipfs/QmcsCpg6kfp7Vea4y9qPtfDXcaQJbDidb65n3t9f2MFDpR" +- ] +- }, +- { +- "path": "soljson-v0.4.21+commit.dfe3193c.js", +- "version": "0.4.21", +- "build": "commit.dfe3193c", +- "longVersion": "0.4.21+commit.dfe3193c", +- "keccak256": "0xd0f9a689670184ad874ca6a2cb40dfe57e9cf539d9330ca3f2501951478eace8", +- "sha256": "0x4197bb1cb0ea7e637ed8a0e7810f1bfe32c90d0151d6f423bb3dfeef9f6777c4", +- "urls": [ +- "bzzr://1abbc4967f3c6c5124f8876abe521d508c71b0d0d64dc066c1e7a1bfe6ba596d", +- "dweb:/ipfs/QmY7UN95hdfFSD1jwFANegze5eLX8PgP5BfWFH1usTB8Sw" +- ] +- }, +- { +- "path": "soljson-v0.4.22+commit.4cb486ee.js", +- "version": "0.4.22", +- "build": "commit.4cb486ee", +- "longVersion": "0.4.22+commit.4cb486ee", +- "keccak256": "0x50972c5b966188341d133aa58fbf895c54655d7bd733fb5ad58852e85f9f9444", +- "sha256": "0x73458d16a3e34fc7b489d2399b3680cccfc968d01abc9f1b61e438b6fb0c24a1", +- "urls": [ +- "bzzr://9eab5a9c94bde3d90eb76a1189febd5ae4d6c7bbc63cc1d76e8871e14e6e9b89", +- "dweb:/ipfs/QmPUJNa1LYaThwLQsw6fF5DMYyDfEg57gmD5wCsazkLS8c" +- ] +- }, +- { +- "path": "soljson-v0.4.23+commit.124ca40d.js", +- "version": "0.4.23", +- "build": "commit.124ca40d", +- "longVersion": "0.4.23+commit.124ca40d", +- "keccak256": "0x74f927b4f520d8d31863996a100ebc7827f919c77f777f6d4d416c6e613a03c7", +- "sha256": "0x98c350cc41f873af84a78d1e24cbc8449045ee54923af0a39440e4d84600dc50", +- "urls": [ +- "bzzr://a052dbfe589a766af66d85d4d797829241e867e0ead93fbf3d5e492c71b6434f", +- "dweb:/ipfs/QmZbo5YkSbcenWrUDjiCvUZdQe4UrNBw9vtx9nbgcMdRAs" +- ] +- }, +- { +- "path": "soljson-v0.4.24+commit.e67f0147.js", +- "version": "0.4.24", +- "build": "commit.e67f0147", +- "longVersion": "0.4.24+commit.e67f0147", +- "keccak256": "0x4cc2bb4c8894ad4349a88f330ba74d7ea643030d3f68037d1c94c370b6a25dd7", +- "sha256": "0xf83e8f7014ad6b8bc801dc3684c644e372673ed678425c35aea5d4b4fe37e922", +- "urls": [ +- "bzzr://2aae73578e361285488b6319e8e7b27e23b2736eeee3953cd65f1207cd849395", +- "dweb:/ipfs/QmauztXLDUdwJitA4Uc9MQYCTttUcivR5foTZYgwt4aAeC" +- ] +- }, +- { +- "path": "soljson-v0.4.25+commit.59dbf8f1.js", +- "version": "0.4.25", +- "build": "commit.59dbf8f1", +- "longVersion": "0.4.25+commit.59dbf8f1", +- "keccak256": "0x92b9c5de10bd908527e9cfba3f04bbe637163b4a5313c5a69179ccddd5fa6685", +- "sha256": "0x782a999d3e1227c86854e7e29954ee856c6ae684124b9facf09f4f1724dc4e85", +- "urls": [ +- "bzzr://fb1e9b951ce8abe575f8514bff6baa01417a988a399fab1dd27a252e7812d1bc", +- "dweb:/ipfs/QmUtwmzqqCftcubfyGwAefLBQ8ffp8EFhW7HCEQfhaviFs" +- ] +- }, +- { +- "path": "soljson-v0.4.26+commit.4563c3fc.js", +- "version": "0.4.26", +- "build": "commit.4563c3fc", +- "longVersion": "0.4.26+commit.4563c3fc", +- "keccak256": "0xc9c60203789ef778b9104ae7a39e9090b3d1256b24983d49e40e7d1e3c3ed65d", +- "sha256": "0x264d0d25e31cb32f4369f82ba3ad0b6a84a8a1975b10bd738123ddf947618840", +- "urls": [ +- "bzzr://335a6b94d26623dcaa4590ccd6d7529db1e153b65af3bf7def45fffaf9ee256a", +- "dweb:/ipfs/QmRd1uRbHRvpybQk5TQ11zyqmG4wQqHnefgvYdJ14V5D8x" +- ] +- }, +- { +- "path": "soljson-v0.5.0+commit.1d4f565a.js", +- "version": "0.5.0", +- "build": "commit.1d4f565a", +- "longVersion": "0.5.0+commit.1d4f565a", +- "keccak256": "0x2921f518cf5a0627d96e07e8c3d2b5482dbbf14d7dc6bbb055481c46d98903f3", +- "sha256": "0xaf811843add541705ff65f0c20fd864bd0387116544524fa1830cf67a14af6c4", +- "urls": [ +- "bzzr://31231abb33dc43d0478f03a4c8b15b161b172097c884307cf6cf64aeb83a6dc9", +- "dweb:/ipfs/QmYLhaeGbq3tFdCUC2pvtA8QdGnCbA8kn24z3C741k5TUE" +- ] +- }, +- { +- "path": "soljson-v0.5.1+commit.c8a2cb62.js", +- "version": "0.5.1", +- "build": "commit.c8a2cb62", +- "longVersion": "0.5.1+commit.c8a2cb62", +- "keccak256": "0x1980cf8a81c6bd2b371bf7d9145c819a7fb2d72e9aa462aaff0c10b4eccd595c", +- "sha256": "0x69cb1300b5f72eb128604507991d9ada97180d31afde7c59aa3fa3ae9ad5200d", +- "urls": [ +- "bzzr://7f35988e2c32ed2f3f1885fb81ace357b1555964d23085940980cacd29023da6", +- "dweb:/ipfs/QmPfxPYsYysRR8HFkWr47FMQ8ardmfmtrmdYc2ogT9Gfp9" +- ] +- }, +- { +- "path": "soljson-v0.5.2+commit.1df8f40c.js", +- "version": "0.5.2", +- "build": "commit.1df8f40c", +- "longVersion": "0.5.2+commit.1df8f40c", +- "keccak256": "0x3efd0585a3c00a1a2c62e590e22a69aa981d1b5148af2ebdbe1610dff93cea78", +- "sha256": "0xaff4ca62ac0b03cb4b9c50f8250e2e7307b5c75fefc9847f269bd05c20367148", +- "urls": [ +- "bzzr://e30e085b875fc291e5ee46ed7c88c28ec8e8c540ad8c799b106c365a52df9e97", +- "dweb:/ipfs/QmaZrQSg8njYzFXH2PzwxHDLKxkBhKmYmLm43DJWnurPeJ" +- ] +- }, +- { +- "path": "soljson-v0.5.3+commit.10d17f24.js", +- "version": "0.5.3", +- "build": "commit.10d17f24", +- "longVersion": "0.5.3+commit.10d17f24", +- "keccak256": "0x9b7a39606c3c27a8619b3eb493efca512cbd26c5ab7fc95489564239aab32a50", +- "sha256": "0x24b4cbc28d68bde8455c14a46b55e4f292c3c295271e09991b2176a487cb4487", +- "urls": [ +- "bzzr://3bccb9b8cee48b99b39f2f1296f7353bcd39c1ae61b1e19e5add7cedd0256cb2", +- "dweb:/ipfs/QmQmkd5FGiKKg8eRmo3L7Cn62nuV1M6GRDUGiq5bAx4AWx" +- ] +- }, +- { +- "path": "soljson-v0.5.4+commit.9549d8ff.js", +- "version": "0.5.4", +- "build": "commit.9549d8ff", +- "longVersion": "0.5.4+commit.9549d8ff", +- "keccak256": "0x4a6244b03de1968f0a48800e75640921d62b7602d0301093e1c5c318d1effb36", +- "sha256": "0x91ed0cf4390f33174a4aaf49d1ce7cd9c72e28b95d2f9422314a29b2144b2042", +- "urls": [ +- "bzzr://a5ab50564d82e6d55b462f4f85284d3fac294c78f2699b680544bc7efde2fb16", +- "dweb:/ipfs/QmRPchg1b5ofkLnLTPuunfSMKnxbXcZyzSR4NkyJAYUTrR" +- ] +- }, +- { +- "path": "soljson-v0.5.5+commit.47a71e8f.js", +- "version": "0.5.5", +- "build": "commit.47a71e8f", +- "longVersion": "0.5.5+commit.47a71e8f", +- "keccak256": "0xf46cb35b3aefb9b3d59a1fb4c151eb23a0f0a05387b379b3e7fbed1c01c861df", +- "sha256": "0xaf812445476c101ae5ef92941c79eaebf57b39d455bdfb54a6a86b4ab6ca498c", +- "urls": [ +- "bzzr://2e72b599d5a700cbd03d9f7ca082464b4823dbaabfc5e1031075b9631c005d35", +- "dweb:/ipfs/QmPYEmgLWDjk7kPGovojurz7fzdGv8Ti3H66nEzRzdiGwh" +- ] +- }, +- { +- "path": "soljson-v0.5.6+commit.b259423e.js", +- "version": "0.5.6", +- "build": "commit.b259423e", +- "longVersion": "0.5.6+commit.b259423e", +- "keccak256": "0x66669372d2d958bfeb5129a387dbc3882a96e260fc12e2910a7eb148b8ea5dd6", +- "sha256": "0x9ffc04d0aee2c817ae6a897b1ba5aaca2bcd860416aaddfaa4de553fc1ad6e8e", +- "urls": [ +- "bzzr://5f5dbf4ebe3be5dbe3e917a2de3908b3a9ed24207a6406a6e434e6f041e993c4", +- "dweb:/ipfs/QmYWL8Z3yXfCuhrprimdLhYFkjR74TjFHULxcABbUipetv" +- ] +- }, +- { +- "path": "soljson-v0.5.7+commit.6da8b019.js", +- "version": "0.5.7", +- "build": "commit.6da8b019", +- "longVersion": "0.5.7+commit.6da8b019", +- "keccak256": "0x27e324f75dd52eb180569e7a8865048253e5fcdaacc52e7c998ecaeb78dcdabd", +- "sha256": "0xfd7c4e652d5891c84d93b28c90b8ac58c9253d2a3677935883a337ee96087b8f", +- "urls": [ +- "bzzr://764a91ca290bfa564d890f3c1a5a88067b04e96398f223576cbdd17bbc1faee2", +- "dweb:/ipfs/QmdEr1zJrD2UYawZzeE6zPuYiYaSHdpLtKeHYixHgRp9ko" +- ] +- }, +- { +- "path": "soljson-v0.5.8+commit.23d335f2.js", +- "version": "0.5.8", +- "build": "commit.23d335f2", +- "longVersion": "0.5.8+commit.23d335f2", +- "keccak256": "0x05c00863784c63220704197d8446ac1e277fe53c42b5264093960b7bb70b9792", +- "sha256": "0x25cfdd733e9c780ab85373268fde7bfa2e4b22093af57422ca3b586c7af7cd60", +- "urls": [ +- "bzzr://18fc5b15154aef1640559c31bbd91ae267def62a2b86e434564184b6d3d283ce", +- "dweb:/ipfs/QmSUakgiWEffZ82RrN7hgLaemdqtLSCD7pfGAKxGhDUJxB" +- ] +- }, +- { +- "path": "soljson-v0.5.9+commit.e560f70d.js", +- "version": "0.5.9", +- "build": "commit.e560f70d", +- "longVersion": "0.5.9+commit.e560f70d", +- "keccak256": "0x7c967d9dc0fdca0db88a7cee22cf5886f65e8fa8b4a145eccd910fc81a1c949d", +- "sha256": "0x7d40c6325c0aa4635babdb8913626b7c4bac6a4f41e1c383de5f398e1fc98e1b", +- "urls": [ +- "bzzr://c1f03890d82592751d779ea2da8a690e15b0ccc5667314bf634c1f16ff4ed322", +- "dweb:/ipfs/QmZcHLPfa2Dz8M3justKYyDmDnaNo4pseTgAeQbtJNYywe" +- ] +- }, +- { +- "path": "soljson-v0.5.10+commit.5a6ea5b1.js", +- "version": "0.5.10", +- "build": "commit.5a6ea5b1", +- "longVersion": "0.5.10+commit.5a6ea5b1", +- "keccak256": "0x012ae146ebdd510b31c1e44a8d60071a66cdebc77f0e743a6ebc2fe68e67d297", +- "sha256": "0x566601442deff058d393359df59ed72b41e1f6a65b0aa371fab7f903c189b59d", +- "urls": [ +- "bzzr://47c24a09321abb781b5dbc05fffae84ece6844e41a295847dd68ad69633f60a4", +- "dweb:/ipfs/Qmej9jEnSsD2LqGnL4jgbUvHTxTwiFiHqeMpqyuPLaX1uw" +- ] +- }, +- { +- "path": "soljson-v0.5.11+commit.c082d0b4.js", +- "version": "0.5.11", +- "build": "commit.c082d0b4", +- "longVersion": "0.5.11+commit.c082d0b4", +- "keccak256": "0x4ba5500559a9ad03e4c1d3866ba9d915cdb5d7f2e326b4cb1fa0fe7bdf90dc27", +- "sha256": "0x89978dcef86244b8e7af95298abe26aaf4825df819d6c556e4323dc152c988ad", +- "urls": [ +- "bzzr://c609e5725e607a4d853f33c8d46064e0ab11b489f7a585134cfca570e29f447a", +- "dweb:/ipfs/QmdgDj3bPSKU1xKMY8FRHj8E6z9BQefeuaVuF27RpvZMXJ" +- ] +- }, +- { +- "path": "soljson-v0.5.12+commit.7709ece9.js", +- "version": "0.5.12", +- "build": "commit.7709ece9", +- "longVersion": "0.5.12+commit.7709ece9", +- "keccak256": "0xcda83fe69ce2a319d0caa20c98b53ff36ea1886054ab3dab23fa80ede3dcdea0", +- "sha256": "0x1784f89fcfffccddaa94273a58e452682f61dea05d142406775f099c6ef5d61f", +- "urls": [ +- "bzzr://5eacd00f2f132ea8fbb308baed9753579ade721a44e94067debb602e193b7ae2", +- "dweb:/ipfs/QmPA1Uf4iwkr2ouguzxxFepVxaRg36XFXxiwqYUuwafQzQ" +- ] +- }, +- { +- "path": "soljson-v0.5.13+commit.5b0b510c.js", +- "version": "0.5.13", +- "build": "commit.5b0b510c", +- "longVersion": "0.5.13+commit.5b0b510c", +- "keccak256": "0x432dd5d662d88c2316b4df503f693ae9e6e8ed4216726db2fdb3e7f628523fe5", +- "sha256": "0x6e095eefc48dfc21fec18d0b63f229e929f881b5d6e8a999e1622c6b707a7f54", +- "urls": [ +- "bzzr://1b3ef14eabfe47ff614c088337dfdf163c695612c193aeab9ac5a2af69d30334", +- "dweb:/ipfs/QmSgJ8Ru6vraz9CyCDPMifVxpckkoooVSBj9vYcQqG4wG4" +- ] +- }, +- { +- "path": "soljson-v0.5.14+commit.01f1aaa4.js", +- "version": "0.5.14", +- "build": "commit.01f1aaa4", +- "longVersion": "0.5.14+commit.01f1aaa4", +- "keccak256": "0x98e1027fbf3acb279f740c3b38df69d79ad3f2e6171414508d50604dc2dfc13e", +- "sha256": "0x43b85bc9941814b018065da5c6c8d40e2af49264d0d1f06bdefbfbe628e65ff8", +- "urls": [ +- "bzzr://b6283a40a65b321a0e88f61594fc8bed00fb21a53c7ac1bf5ae421706a372d01", +- "dweb:/ipfs/QmeXatGB9MdWA2NBLSNQbcKvuZpa4Sxem51vCrqyQGfXnU" +- ] +- }, +- { +- "path": "soljson-v0.5.15+commit.6a57276f.js", +- "version": "0.5.15", +- "build": "commit.6a57276f", +- "longVersion": "0.5.15+commit.6a57276f", +- "keccak256": "0x6f9251f86fd798a3ae25688307ffc7a9984dcf0d809a1aef54f5c68b6cf9fb6a", +- "sha256": "0x0d34e4ed048bbf67daacdf36cd5ce0f553a32962967b52edab6afccaa071878b", +- "urls": [ +- "bzzr://e866e6bdb31fea0646b44a8e57acc9505932ffe813028ce1330ca49fe3edc4d0", +- "dweb:/ipfs/Qmdx3AHUB8bN6ZZs1XsTV3Gz9FV3gAB7x7JbYeUsn43Azu" +- ] +- }, +- { +- "path": "soljson-v0.5.16+commit.9c3226ce.js", +- "version": "0.5.16", +- "build": "commit.9c3226ce", +- "longVersion": "0.5.16+commit.9c3226ce", +- "keccak256": "0x6abf17bdb1b934d072739e0e083ecfd579c523d200d45184b8d3987924ca0454", +- "sha256": "0xa09c9cc2672678d461dc71100600bb58802db87be4de9424769241712ccbec03", +- "urls": [ +- "bzzr://9b51780766b138ee36e2796cee7bdd4cb494da5d925c36cc6101202818d37e42", +- "dweb:/ipfs/QmQjodGav6KhMDjuoyJ1ag8osgKLBsFC1E9LmaGP7qCRZ2" +- ] +- }, +- { +- "path": "soljson-v0.5.17+commit.d19bba13.js", +- "version": "0.5.17", +- "build": "commit.d19bba13", +- "longVersion": "0.5.17+commit.d19bba13", +- "keccak256": "0x936e6bfbf4ea9ac32997adb893b0aeecd050cfef8b475f297dca1add0a1ff934", +- "sha256": "0x7fd1d3f1fddc615e117f7fb7586acabd60c649c390cf110c8fdc5ce159fa5734", +- "urls": [ +- "bzzr://949bfec63a83091f5d08d6d8df36fa34e674d75206e8a6476cc0ae18f3c57bb4", +- "dweb:/ipfs/QmNrRJwVHaJSZ3aAQZWZKjV9o8BqWKFP3RPYL6hKU65PAE" +- ] +- }, +- { +- "path": "soljson-v0.6.0+commit.26b70077.js", +- "version": "0.6.0", +- "build": "commit.26b70077", +- "longVersion": "0.6.0+commit.26b70077", +- "keccak256": "0xea559c55bf7046cb48378fe9b43eaab6e345700aa22d701fcf946a42ec6b1008", +- "sha256": "0xf22c63511a85230f7640ff5a77433db643d8d32be8b7c7f1dc24c1301a5158e9", +- "urls": [ +- "bzzr://471b0435c47963835dd0f70d67ec069fab5daadbe6c8bf760d2e50adfb839461", +- "dweb:/ipfs/QmTQPQb6br2VEzKTiXBEE6z69xRXEk24xi2R2gn8EsvGD9" +- ] +- }, +- { +- "path": "soljson-v0.6.1+commit.e6f7d5a4.js", +- "version": "0.6.1", +- "build": "commit.e6f7d5a4", +- "longVersion": "0.6.1+commit.e6f7d5a4", +- "keccak256": "0xb2657b5ce7a9b405a65e4a88845a51216cd7371e8f84861eef9cb0cb20d78081", +- "sha256": "0x3628fdefd6971ea9cc16acbf91e5f6d6cfb2079181784b47e4d24f4c5d92e4e4", +- "urls": [ +- "bzzr://7bc2dc95d81092991a4122b45aad03f9cc62bc98fa455f03fc9286445ef9de8e", +- "dweb:/ipfs/QmYWAkYAJo59kc5dHWaLuQqEm7xusESdu5meDzjpxnyXKt" +- ] +- }, +- { +- "path": "soljson-v0.6.2+commit.bacdbe57.js", +- "version": "0.6.2", +- "build": "commit.bacdbe57", +- "longVersion": "0.6.2+commit.bacdbe57", +- "keccak256": "0x7dc96455c864b49abc7dd5f38ba6a47904709ad132ea36babbfce98d42e962e6", +- "sha256": "0x25f564cbecc5bfe95d6d358e0e7543c31ece0ab1332c555ff323ca163711bd2b", +- "urls": [ +- "bzzr://f61230aa01565c8c24aa2ed50eec7dfd26195be35f5bbe4445c6a3efceaa4b7d", +- "dweb:/ipfs/QmaLUM18c7ecA911ig5u2HY6fAu4AiUbhJpnZwwCMc9cWi" +- ] +- }, +- { +- "path": "soljson-v0.6.3+commit.8dda9521.js", +- "version": "0.6.3", +- "build": "commit.8dda9521", +- "longVersion": "0.6.3+commit.8dda9521", +- "keccak256": "0x39ae8b2f3ba05ed7d4a7c16f0a9f4f5118180a209379cfc9bdd2d4fb5d015dff", +- "sha256": "0xf89514dedd8cfb3c4d351580ff80b8444acde702f8be0e5fad710fe6e906c687", +- "urls": [ +- "bzzr://1d6deff5623d883b8d0b3a3a5539e4604925ce4c1677defb86e0e37838ea70c5", +- "dweb:/ipfs/Qmd9JfFpUXsUQrJad1u2QDuMxBMeVrcG8mrpfJVV9jiBXB" +- ] +- }, +- { +- "path": "soljson-v0.6.4+commit.1dca32f3.js", +- "version": "0.6.4", +- "build": "commit.1dca32f3", +- "longVersion": "0.6.4+commit.1dca32f3", +- "keccak256": "0x435820544c2598d4ffbfb6f11003364c883a0766c8ac2a03215dd73022b34679", +- "sha256": "0xa4fd5bb021259cdde001b03dac0e66353a3b066b47eb2476acb58b2610a224ca", +- "urls": [ +- "bzzr://62ef2a9bf7dbb8fd596b7c6ca6848d9b1a6c8562d10239659f0a56ee27c110ce", +- "dweb:/ipfs/QmTxzbPN4HwcK5YX7n3PNkb1BzKFiRwStsmBfgC9VwrtFt" +- ] +- }, +- { +- "path": "soljson-v0.6.5+commit.f956cc89.js", +- "version": "0.6.5", +- "build": "commit.f956cc89", +- "longVersion": "0.6.5+commit.f956cc89", +- "keccak256": "0x6262768243c1ceaf91418e52dc6f52d2ce94d19c6e1065d54499b7bc4d6e14dc", +- "sha256": "0xf8f83757e73f33f44389d1fa72d013fb266454a8dd9bb6897c7776f8fc3b0231", +- "urls": [ +- "bzzr://ed91c1114615572c10a34f0ab28a3a159d2d433fabbcec9eae7253c25ecac8b4", +- "dweb:/ipfs/QmRUoBQeA5zpun1NK7BvBhQk6pTT4uZw7Jn2wZnWQETH9W" +- ] +- }, +- { +- "path": "soljson-v0.6.6+commit.6c089d02.js", +- "version": "0.6.6", +- "build": "commit.6c089d02", +- "longVersion": "0.6.6+commit.6c089d02", +- "keccak256": "0x3c9cfccc78bf352f4c7901d7af76757bd228f93af2634af4cd16b4916c13e44e", +- "sha256": "0x09f6098026622c5c334c7798c3ad2b8f7c0ebc62f87846c7d5e7e725c3d1cbc2", +- "urls": [ +- "bzzr://ab23bd0e01952ee485f0426c9c4e47fcf6a508bc4919e83be31c0f9ea6e396ca", +- "dweb:/ipfs/QmRj2pxXxvmJ96i57maVjLMfs4DUtCuptM8vSVvvDweJ74" +- ] +- }, +- { +- "path": "soljson-v0.6.7+commit.b8d736ae.js", +- "version": "0.6.7", +- "build": "commit.b8d736ae", +- "longVersion": "0.6.7+commit.b8d736ae", +- "keccak256": "0xb463b6a61fc027247655a32cbfd50bf543eafa3a6b42ceacdda7293e3ada8866", +- "sha256": "0xb795f1b20f065a0aee492c24071fc1efa1633c3caab77cff20278a9ae822f04e", +- "urls": [ +- "bzzr://c82fea785ae31fb4847f5640e6305edc05d1a5b0b47552f60325c25cce280f75", +- "dweb:/ipfs/QmShUrNZf1dZFjziorJYE8fMGNUSMFsbaR3ipSvsCMvExM" +- ] +- }, +- { +- "path": "soljson-v0.6.8+commit.0bbfe453.js", +- "version": "0.6.8", +- "build": "commit.0bbfe453", +- "longVersion": "0.6.8+commit.0bbfe453", +- "keccak256": "0x537cefc0579dd9631ec952cae951b3df0a50a3e557b5638107a67275f7aacc07", +- "sha256": "0x3e8b01cbd194e40971b41017ada7c8b2fa941b0458cb701bdfb6a82257ca971b", +- "urls": [ +- "bzzr://130bff47eed9546c6a4d019c6281896186cf2368b766b16bc49b3d489b6cdb92", +- "dweb:/ipfs/Qmdq9AfwdmKfEGP8u7H9E4VYrKLVinRZPZD1EWRnXSn1oe" +- ] +- }, +- { +- "path": "soljson-v0.6.9+commit.3e3065ac.js", +- "version": "0.6.9", +- "build": "commit.3e3065ac", +- "longVersion": "0.6.9+commit.3e3065ac", +- "keccak256": "0xa2d4d3ebe5d52bfa7ddf1a1fcd9bfed81eaa8678e6a1dd5a1c84954dd064422c", +- "sha256": "0xf1724fd46b7a353561b3f8d473b0dc8c855b6d84b5af559d7e3326ac79b9d758", +- "urls": [ +- "bzzr://2c5fff6b816edb78adb2220f175591c9f4f6d38cfd27a83afb1849191cf9a524", +- "dweb:/ipfs/Qmad6iesaR5FQ45RRtMrt2Fa1EYDuq1oGoMJJB6beMHESn" +- ] +- }, +- { +- "path": "soljson-v0.6.10+commit.00c0fcaf.js", +- "version": "0.6.10", +- "build": "commit.00c0fcaf", +- "longVersion": "0.6.10+commit.00c0fcaf", +- "keccak256": "0x620163da7ee7b2622c9ee48b06110a52739f633189555148a3b5ecf767e60cfb", +- "sha256": "0xfa27ce9d23bddaa76a4aefbafa48e48affde9a1ee7c8a5e8784cf8d4c390f655", +- "urls": [ +- "bzzr://823b4efe3ca2964d660348214fd1a44579e13e1e8ce69a81f447372a11d60316", +- "dweb:/ipfs/QmUinsRZvs2zFNG6FMWy7ngTYUnZccXq7MRtgpj1dPfxu4" +- ] +- }, +- { +- "path": "soljson-v0.6.11+commit.5ef660b1.js", +- "version": "0.6.11", +- "build": "commit.5ef660b1", +- "longVersion": "0.6.11+commit.5ef660b1", +- "keccak256": "0xf0abd02c495a0b4c5c9a7ff20de8b932e11fc3066d0b754422035ecd96fcdbbc", +- "sha256": "0x9778e4a7667d5fd7632caf3ef3791d390a7cc217f94f96e919a31e3be332386a", +- "urls": [ +- "bzzr://9f9244a3605543a67f5ff35f21e3d6d3331a6e1361f09b271c37f396b5b89bd5", +- "dweb:/ipfs/QmXyjgFNMyFD4fdf8wt9uvUU92MGdDVGmcPdMZhNEo1g8N" +- ] +- }, +- { +- "path": "soljson-v0.6.12+commit.27d51765.js", +- "version": "0.6.12", +- "build": "commit.27d51765", +- "longVersion": "0.6.12+commit.27d51765", +- "keccak256": "0xe1412d909a0dae79b13c0066b9bf08831c522daec00b273bbc19a799af213d6a", +- "sha256": "0x3e1956c550ca48e289044c7c0bd892403081b4b5e17e77ce707c815ce6c4228f", +- "urls": [ +- "bzzr://b69ab6704a1e42fddb326e91f331e35fdf071b158e8754e2c887c0e607aee7b0", +- "dweb:/ipfs/QmTs8PnAGr1ijXtWvMjoWraefAtVv2Y5ZnwkArz6NqJ93w" +- ] +- }, +- { +- "path": "soljson-v0.7.0+commit.9e61f92b.js", +- "version": "0.7.0", +- "build": "commit.9e61f92b", +- "longVersion": "0.7.0+commit.9e61f92b", +- "keccak256": "0x0c7a4386781683c327fde95363535f377941e14feffad5bb1134c7aa7eba726f", +- "sha256": "0xe7e1be3d0a67469f6a37cd676a22314c4faa8a22ff9d5ebde11302db754453eb", +- "urls": [ +- "bzzr://65dc33e3d9ef94defff1b24e66f093d9d15a92c59778c8eb26e76fd8b64bd3da", +- "dweb:/ipfs/QmQFhTptWdDzhemjGpa7Q65HKWGphs4nKKS13nzkcVE8pM" +- ] +- }, +- { +- "path": "soljson-v0.7.1+commit.f4a555be.js", +- "version": "0.7.1", +- "build": "commit.f4a555be", +- "longVersion": "0.7.1+commit.f4a555be", +- "keccak256": "0x3502cf7933fbce9f1fe1d87a83d5b9df12eee36c03997c3b9821493ce03fcf3e", +- "sha256": "0x7fcc983c5149840a47b946fc51fc14f1c21cda07c01d650e4a1f814319cb1423", +- "urls": [ +- "bzzr://617dff84fd7dc06b476f93a95c015a561662d9ff1d3356ac6a3e5f5b09a636f0", +- "dweb:/ipfs/Qmdw9c3usmqgdV2w4JoNWJqscHzscKNVWsWtos1engJa1o" +- ] +- }, +- { +- "path": "soljson-v0.7.2+commit.51b20bc0.js", +- "version": "0.7.2", +- "build": "commit.51b20bc0", +- "longVersion": "0.7.2+commit.51b20bc0", +- "keccak256": "0x0c80a0bf9e17700249a04a80d7729ccb012a55a82cb0f9e412fa32cc14b09c2b", +- "sha256": "0xdfa3f2bb4589bdc9c054292173c82ee70e65af8d1971598f6e13b9b79ba94185", +- "urls": [ +- "bzzr://a45264806fb74fd38c19704070c83053972270b63bf7b09ddff3c3e15cd1baa0", +- "dweb:/ipfs/QmTNWY4vkVLgtNdfGXyH6CY8URmzr33VzMJNN37z5dsAgu" +- ] +- }, +- { +- "path": "soljson-v0.7.3+commit.9bfce1f6.js", +- "version": "0.7.3", +- "build": "commit.9bfce1f6", +- "longVersion": "0.7.3+commit.9bfce1f6", +- "keccak256": "0xcf099e7057d6c3d5acac1f4e349798ad5a581b6cb7ffcebdf5b37b86eac4872d", +- "sha256": "0xcaf4b1f3e01fcf946aad2d22bbe046b9dc4fd50049a05c3458ff239e2c93a785", +- "urls": [ +- "bzzr://2f8ec45d2d7298ab1fa49f3568ada6c6e030c7dd7f490a1505ed9d4713d86dc8", +- "dweb:/ipfs/QmQMH2o7Nz3DaQ31hNYyHVAgejqTyZouvA35Zzzwe2UBPt" +- ] +- }, +- { +- "path": "soljson-v0.7.4+commit.3f05b770.js", +- "version": "0.7.4", +- "build": "commit.3f05b770", +- "longVersion": "0.7.4+commit.3f05b770", +- "keccak256": "0x300330ecd127756b824aa13e843cb1f43c473cb22eaf3750d5fb9c99279af8c3", +- "sha256": "0x2b55ed5fec4d9625b6c7b3ab1abd2b7fb7dd2a9c68543bf0323db2c7e2d55af2", +- "urls": [ +- "bzzr://16c5f09109c793db99fe35f037c6092b061bd39260ee7a677c8a97f18c955ab1", +- "dweb:/ipfs/QmTLs5MuLEWXQkths41HiACoXDiH8zxyqBHGFDRSzVE5CS" +- ] +- }, +- { +- "path": "soljson-v0.7.5+commit.eb77ed08.js", +- "version": "0.7.5", +- "build": "commit.eb77ed08", +- "longVersion": "0.7.5+commit.eb77ed08", +- "keccak256": "0xfe223dd264421f9b96c3dd3c835a3d0d4d9cfa4c61f75ca0761860c9ae8906ca", +- "sha256": "0x2ee1c6434a32a40b137ac28be12ceeba64701bfad5e80239690803d9c139908e", +- "urls": [ +- "bzzr://d67cf500345ceca523e9bbe55dab9399e27321fd9005704a5b16bab82185260c", +- "dweb:/ipfs/Qmf5fpJmeHdwgmSjQPqdu25XtA9akTotakkNmrh4axgo8N" +- ] +- }, +- { +- "path": "soljson-v0.7.6+commit.7338295f.js", +- "version": "0.7.6", +- "build": "commit.7338295f", +- "longVersion": "0.7.6+commit.7338295f", +- "keccak256": "0xc68517effed7163db0c7f4559931a4c5530fe6f2a8a20596361640d9d7eff655", +- "sha256": "0xb94e69dfb056b3e26080f805ab43b668afbc0ac70bf124bfb7391ecfc0172ad2", +- "urls": [ +- "bzzr://523852f3e01b02ce947771e0279ffb6154d12700f809ba3606d908ba6271431c", +- "dweb:/ipfs/QmWjG6PLzF5M6kxkHujhEMg5znQCgf2m1cM1UptKA719Hy" +- ] +- }, +- { +- "path": "soljson-v0.8.0+commit.c7dfd78e.js", +- "version": "0.8.0", +- "build": "commit.c7dfd78e", +- "longVersion": "0.8.0+commit.c7dfd78e", +- "keccak256": "0x08dd57a5cf5fd59accbd5b601909ffa22d28da756b5367c29b523ff17bbc2f99", +- "sha256": "0xc596765f9b3dce486cf596ea35676f37124d54f3ada0fcbc02f094c392066a59", +- "urls": [ +- "bzzr://7047ade6879aab4c825594dab0914b8ec673bb907eecc6dfbd68f63086e5a36e", +- "dweb:/ipfs/QmYh5C2rgDAx452f7HyHA8soLhnoL1GeeNNEWEuw9jKY8w" +- ] +- }, +- { +- "path": "soljson-v0.8.1+commit.df193b15.js", +- "version": "0.8.1", +- "build": "commit.df193b15", +- "longVersion": "0.8.1+commit.df193b15", +- "keccak256": "0x84a0e9282047512eeec499d55c83dbb6981430b08692d81d6c09730bb18e6cd8", +- "sha256": "0xf77f141e5fed9594b28342e2c630ac6d48f2a724e4383a457881acd7fa62b1cf", +- "urls": [ +- "bzzr://da8c5ea3f2ecd33d3f83ac2c276871f4ee41370fb55ae62c6c29835c9376bdec", +- "dweb:/ipfs/QmQ6W5VedQpZAwuGTtp1BhmNkvVheLnJq4xwN9Qmt9bAbH" +- ] +- }, +- { +- "path": "soljson-v0.8.2+commit.661d1103.js", +- "version": "0.8.2", +- "build": "commit.661d1103", +- "longVersion": "0.8.2+commit.661d1103", +- "keccak256": "0xd0c15275c5b0d03871332719def9b0f17e8860c7db60e0e71f18b971458a7391", +- "sha256": "0x015e83fb0b72ccdafb0c217961b21a0321adb2d3f2ad992f5e79635c2086e6dd", +- "urls": [ +- "bzzr://629ae5ad84c45c248144b5eec7827a9cd5b2f2779ef84ab251c8cd876347a098", +- "dweb:/ipfs/QmdfVfa2mhyosaJVeV7rbfnvQ95GTHPeRPzmvxcds7RYej" +- ] +- }, +- { +- "path": "soljson-v0.8.3+commit.8d00100c.js", +- "version": "0.8.3", +- "build": "commit.8d00100c", +- "longVersion": "0.8.3+commit.8d00100c", +- "keccak256": "0x51777116af58223a41aa3016d0bf733bbb0f78ad9ba4bcc36487eba175f65015", +- "sha256": "0xb5cedfa8de5f9421fbdaccf9fd5038652c2632344b3b68e5278de81e9aeac210", +- "urls": [ +- "bzzr://c7d43da1bc5529d2cc311e00579c36dcff258c42b8ed240b6c4e97bd85492a64", +- "dweb:/ipfs/QmWbNMzJryhiZmyifLDQteGPwN4aTgXQB6barBvXYVw975" +- ] +- }, +- { +- "path": "soljson-v0.8.4+commit.c7e474f2.js", +- "version": "0.8.4", +- "build": "commit.c7e474f2", +- "longVersion": "0.8.4+commit.c7e474f2", +- "keccak256": "0x7e0bca960d11fb095798ff65d029436f23358ac060b25a0938acfcb4652da2ec", +- "sha256": "0x4a14c7bcaf0d988a829db2174b8f7731898aa8633216490603ad74bff64eca3c", +- "urls": [ +- "bzzr://7f33fe204160253c7ec23cb0ac83224bde3aca9f91a7a686cb67d99248c5fbb6", +- "dweb:/ipfs/QmPYDf4qYtZLNEAicW7hcvpUJ69FoHiXmUypipDpTKo9hU" +- ] +- }, +- { +- "path": "soljson-v0.8.5+commit.a4f2e591.js", +- "version": "0.8.5", +- "build": "commit.a4f2e591", +- "longVersion": "0.8.5+commit.a4f2e591", +- "keccak256": "0x6d6d75b033717aae0a728e527005d8d2cc7dbd0a835c8873c630a2a9689a2976", +- "sha256": "0x4af595f976235d33a22ffe223e9e3210b4ca510f6a93f153b3daed60f2b11fbc", +- "urls": [ +- "bzzr://d501ee8c460db75379b5716bcb5ae10e3e32625d6c9b08e319822a110f178906", +- "dweb:/ipfs/QmNWkyirqXy3gDHNXpPuVUbExMGWjMqPR82Xzs64RzgQzy" +- ] +- }, +- { +- "path": "soljson-v0.8.6+commit.11564f7e.js", +- "version": "0.8.6", +- "build": "commit.11564f7e", +- "longVersion": "0.8.6+commit.11564f7e", +- "keccak256": "0x070e41c7f761ff1a8383a2c0d54c22aab0f115ca8c3790ecea27d6dde11611ca", +- "sha256": "0x06a671efd8865a6ecc0ad648076177b35abcd06a7059888ea65111272e33a57f", +- "urls": [ +- "bzzr://e4f8176cdb3a0f3ba0b7061079dd9d3495f6a2288bd724780337cacd96515148", +- "dweb:/ipfs/QmQre11ZPgWSx79Jzca1tkTYFyMbXz8H4kcrhfpWSj4qs8" +- ] +- }, +- { +- "path": "soljson-v0.8.7+commit.e28d00a7.js", +- "version": "0.8.7", +- "build": "commit.e28d00a7", +- "longVersion": "0.8.7+commit.e28d00a7", +- "keccak256": "0x8d6be9e58c33d265b5a8b1132a27fce126067419f3f4f15d3ef6b7147593b61d", +- "sha256": "0x663ba99f7c7ee907f0f03227502d48a78256c3c292ace3b79a5d3eb510665306", +- "urls": [ +- "bzzr://0bdbad1bdcc3a9775f16f20a35556be4baa0e6c9a9b9d820e8e2cdea80667c6a", +- "dweb:/ipfs/QmYv3Rsi9pL6PZAtc4XLHezPqti8yCRGEdDBqzEsQv57GV" +- ] +- }, +- { +- "path": "soljson-v0.8.8+commit.dddeac2f.js", +- "version": "0.8.8", +- "build": "commit.dddeac2f", +- "longVersion": "0.8.8+commit.dddeac2f", +- "keccak256": "0x56cb2f6978bf1213982ef217ee76b39dc97b6e66c92a7be7a1b44079c0236e5c", +- "sha256": "0x534b7d4079d13bb4cd10b7559dc105c2adec625df4105f20ebce47e6da60bfda", +- "urls": [ +- "bzzr://7543aa16521848b06a1359afcb9dbd7be1dd09a36f4ca53edd3ed3a512a475e9", +- "dweb:/ipfs/QmZaSrn3TPvPVoShtjSonQLFd3BV6RdgRMqw8GTzhnKYpm" +- ] +- }, +- { +- "path": "soljson-v0.8.9+commit.e5eed63a.js", +- "version": "0.8.9", +- "build": "commit.e5eed63a", +- "longVersion": "0.8.9+commit.e5eed63a", +- "keccak256": "0xbc470ab3442e78bb4d3f16c01c39b2f160f4f34eb4373efed11c234e1c7f6ca0", +- "sha256": "0x5b25f987aae32a0275fdc6c1be36cc47cf126024a04dafd8e4be39a1d1d1422c", +- "urls": [ +- "bzzr://83bf64f11a09845a6eb732da08283a58f877e9227190f489c9852f790c81d0c4", +- "dweb:/ipfs/QmfFq3MvisCSUJy8N8EVsBribgPbdpTZb7tQ2eHYw7dwag" +- ] +- }, +- { +- "path": "soljson-v0.8.10+commit.fc410830.js", +- "version": "0.8.10", +- "build": "commit.fc410830", +- "longVersion": "0.8.10+commit.fc410830", +- "keccak256": "0x3820aae0de50f10f62819d65f0b5a236ccffed11ab465a3295a5408fa47e24f5", +- "sha256": "0x5eaee3240a06891abf5ac70c75caf9a0c33ebe9a2736abdaa22a337f86c22933", +- "urls": [ +- "bzzr://5124a21890d6b0ae70bfd031f741d7edc74cff70a26ca74750d446b15a8efb06", +- "dweb:/ipfs/QmcsfYpEWbPXfVptzi1YvGokxi2FYCUzUr8rQYJCc5fEiB" +- ] +- }, +- { +- "path": "soljson-v0.8.11+commit.d7f03943.js", +- "version": "0.8.11", +- "build": "commit.d7f03943", +- "longVersion": "0.8.11+commit.d7f03943", +- "keccak256": "0x798b23086ce1339e3d47b3648a1f3ae40561e2c9f66ffcc98e71fc14a7f77584", +- "sha256": "0x64117d4b13bfc5bc6e5f80823519b140e753a0c09e99edd756772dc3029bc1f8", +- "urls": [ +- "bzzr://0fd1c8db6338b2143ab0e49a33edaa133108ba77f1238408018b5b2a0ecdeb62", +- "dweb:/ipfs/QmNQTFQmfnjxnDmbguVSnZ5DiHGFQHCsffccW5c2DMcSsT" +- ] +- }, +- { +- "path": "soljson-v0.8.12+commit.f00d7308.js", +- "version": "0.8.12", +- "build": "commit.f00d7308", +- "longVersion": "0.8.12+commit.f00d7308", +- "keccak256": "0xdd4ae95607655404b769fab5f949ac95c6a1a506330f512aef0d92974c390431", +- "sha256": "0xc2c4738c96ad329cbb9baea615ed50ffb5a53d93fed8e00785e47242581d3c60", +- "urls": [ +- "bzzr://38f396377d5a5a60d0b9d8c4dc1343485517ff31bcd281d531f98534dc79d811", +- "dweb:/ipfs/QmVdW2ygaT2vecoSUog3HUn8hZqXU4XXQZvuRSdpV6DJPL" +- ] +- }, +- { +- "path": "soljson-v0.8.13+commit.abaa5c0e.js", +- "version": "0.8.13", +- "build": "commit.abaa5c0e", +- "longVersion": "0.8.13+commit.abaa5c0e", +- "keccak256": "0x9afa714859d1c8f8ed2fded497b83a7a420474282494d25d4c9f592667729f21", +- "sha256": "0x387343bcf8f2b77fe4cdcddcaa84361fabf8e1c3508f874fbbcbb9c313542f56", +- "urls": [ +- "bzzr://ade0fd040981c4e8c7adfe366296e452687c7bb6421de8546a0678be4add016a", +- "dweb:/ipfs/Qma9V9dJwmkim98H6DQX4f7RH395vsUuqHCDxbKetcbj18" +- ] +- }, +- { +- "path": "soljson-v0.8.14+commit.80d49f37.js", +- "version": "0.8.14", +- "build": "commit.80d49f37", +- "longVersion": "0.8.14+commit.80d49f37", +- "keccak256": "0xb0f7f19a8590e5c0aaf779019c1deaafed170d8c26bec9bfd782d212e097619e", +- "sha256": "0x7c3b3d0066fd381283b1d8d9a86153b2ddb5c01da14a1ae015c05cfa484e81b6", +- "urls": [ +- "bzzr://fa438d41ed52c9e0cca556efee61486fc77e60df06081921abb0a0f19b602d35", +- "dweb:/ipfs/QmcM1TcDB4ta8ttNLWZ4d24M4Qs35rc91sQkdNmJMNbuvV" +- ] +- }, +- { +- "path": "soljson-v0.8.15+commit.e14f2714.js", +- "version": "0.8.15", +- "build": "commit.e14f2714", +- "longVersion": "0.8.15+commit.e14f2714", +- "keccak256": "0x4f6cdc0f25e734bcb977bb6a3e22fa41d8a82cbd5f220a2e4238c2d233526d1a", +- "sha256": "0x71135e459d691767ce3453bab4564ef4a640dd50182da36517cbc1f96c1d4c7c", +- "urls": [ +- "bzzr://ac5baefba32f4779a03d1207d9f1ed69365280c702fd73002a729b7a3d52c425", +- "dweb:/ipfs/QmPiBrYZxxpNZPQ98GNyL7Xa1F9Dq7uHtdt9ESwhPNkHhc" +- ] +- }, +- { +- "path": "soljson-v0.8.16+commit.07a7930e.js", +- "version": "0.8.16", +- "build": "commit.07a7930e", +- "longVersion": "0.8.16+commit.07a7930e", +- "keccak256": "0x331f4bc6de3d44d87b68629e83f711105325b482da7e9ca9bdbdd01371fee438", +- "sha256": "0x27b2820ef93805a65c76b7945a49432582d306fd17a28985709a51e6403677c2", +- "urls": [ +- "bzzr://af0d70945c85865298732ac2bfdacdf2774fb4daf793c94fafe135b839a60a5c", +- "dweb:/ipfs/QmWzBJ8gdccvRSSB5YsMKiF2qt3RFmAP2X25QEWqqQnR4y" +- ] +- }, +- { +- "path": "soljson-v0.8.17+commit.8df45f5f.js", +- "version": "0.8.17", +- "build": "commit.8df45f5f", +- "longVersion": "0.8.17+commit.8df45f5f", +- "keccak256": "0x3f2be218cf4545b4d2e380417c6da1e008fdc4255ab38c9ee12f64c0e3f55ea9", +- "sha256": "0x617828e63be485c7cc2dbcbdd5a22b582b40fafaa41016ad595637b83c90656c", +- "urls": [ +- "bzzr://fe8da5b2531d31e4b67acdce09c81eccba1100550a7222722152ffdb16ea85ef", +- "dweb:/ipfs/QmTedx1wBKSUaLatuqXYngjfKQLD2cGqPKjdLYCnbMYwiz" +- ] +- }, +- { +- "path": "soljson-v0.8.18+commit.87f61d96.js", +- "version": "0.8.18", +- "build": "commit.87f61d96", +- "longVersion": "0.8.18+commit.87f61d96", +- "keccak256": "0x9a8fa4183ef95496045189b80dfb39f745db89a903b398e40131f500953e5d57", +- "sha256": "0xd82bdcba2c386d60b33aca148a9cfdf097551f68c5e45d8ec01aebbafacf5075", +- "urls": [ +- "bzzr://338117c2130fcb6bce3006330712b6e7ee99875b56ce4bb6182312f76e4a6bac", +- "dweb:/ipfs/QmcKzrqRBy7PeFQxzJDs1AZZzNHKaKbJces6zUDysXZofJ" +- ] +- }, +- { +- "path": "soljson-v0.8.19+commit.7dd6d404.js", +- "version": "0.8.19", +- "build": "commit.7dd6d404", +- "longVersion": "0.8.19+commit.7dd6d404", +- "keccak256": "0x6be35b86f5656c06ae897ef311c28da375bdcbded68c4a81e124f2cb36adf830", +- "sha256": "0xe0b74e0a16e783a35169f74d1a615ecb48d07c30f97346b83cd587949268681e", +- "urls": [ +- "bzzr://434c17a0cc3bf371e5b9baa7f804b37ffd2dc141a98c59b2ba6021fc419a39c0", +- "dweb:/ipfs/QmPnhNtzrEBeWWQMXdAByQTDPoKXXV9NFXLk3YL4QbghMP" +- ] +- }, +- { +- "path": "soljson-v0.8.20+commit.a1b79de6.js", +- "version": "0.8.20", +- "build": "commit.a1b79de6", +- "longVersion": "0.8.20+commit.a1b79de6", +- "keccak256": "0x3a420fa9963772eee5b9221ebb8cf9548eea8f88b09537390960ea9b440f333c", +- "sha256": "0x5c509f760dc110a695c8b39bbc21e08c17dee431aa14d606f59e623d7c3cc657", +- "urls": [ +- "bzzr://fdc05062e4c7ec85ed18ab17b6f04f3274a4b7caf0be483eb86007d708825fb0", +- "dweb:/ipfs/QmciAxUX2kfuoxitmMdkKSfWn2SfxQdieLRa3S5S2munot" +- ] +- }, +- { +- "path": "soljson-v0.8.21+commit.d9974bed.js", +- "version": "0.8.21", +- "build": "commit.d9974bed", +- "longVersion": "0.8.21+commit.d9974bed", +- "keccak256": "0x370efd28e2d28b6d0ba55e20d8994f3d286c3772552ed63586b5fe157c0d3c57", +- "sha256": "0x45bea352b41d04039e19439962ddef1d3e10cf2bc9526feba39f2cc79e3c5a17", +- "urls": [ +- "bzzr://5e66947c220c91a6cd39bc22965dcf861015b8613a6e09aa7fb7dc10f367b5d7", +- "dweb:/ipfs/QmXLgy6oexvCBWYS5pTpJWohsDNGqgdNFLRKX7JrE3NxYt" +- ] +- }, +- { +- "path": "soljson-v0.8.22+commit.4fc1097e.js", +- "version": "0.8.22", +- "build": "commit.4fc1097e", +- "longVersion": "0.8.22+commit.4fc1097e", +- "keccak256": "0x907eeba6e6e0d6977ac5a8f50e4dd2762539ca827ceab1afb1f5a4f0f3ce3e0c", +- "sha256": "0x92d283c545395b91a656fa1ec94d567a464bca55aebcdbb99debf42b43026845", +- "urls": [ +- "bzzr://63ec828814e2b57db2a7a146061a96cc39797ba39a0063a7b664421a48f21c00", +- "dweb:/ipfs/Qma6o4e57YtWj8cQLQs12r2Enx9qmRA7VHtupCauXjYTAk" +- ] +- }, +- { +- "path": "soljson-v0.8.23+commit.f704f362.js", +- "version": "0.8.23", +- "build": "commit.f704f362", +- "longVersion": "0.8.23+commit.f704f362", +- "keccak256": "0x743aaafac24d9740a0b71215f55a132f89336a662487944767ca4bfd66400769", +- "sha256": "0x9c681b165c8647867589c0a5ecdc8692637a935928a2b1bbea2ff4a1f4976985", +- "urls": [ +- "bzzr://6e70fe6bfe8c3fc63f8a3eba733731aab129e6e58828b78058e53bb50440709b", +- "dweb:/ipfs/QmZy5ho8W943FMGwppXZFS1WFrVwV3UXhUUwcD7oH5vrYe" +- ] +- }, +- { +- "path": "soljson-v0.8.24+commit.e11b9ed9.js", +- "version": "0.8.24", +- "build": "commit.e11b9ed9", +- "longVersion": "0.8.24+commit.e11b9ed9", +- "keccak256": "0x1b6ceeabad21bbb2011ba13373160f7c4d46c11371a354243ee1be07159345f3", +- "sha256": "0x11b054b55273ec55f6ab3f445eb0eb2c83a23fed43d10079d34ac3eabe6ed8b1", +- "urls": [ +- "bzzr://c604bdd6384bf73594cd0e5cfbe979048191549ebc88e70996346f3b744c0680", +- "dweb:/ipfs/QmW2SQbEhiz3n2qV5iL8WBgzapv6cXjkLStvTMpCZhvr2x" +- ] +- } +- ], +- "releases": { +- "0.8.24": "soljson-v0.8.24+commit.e11b9ed9.js", +- "0.8.23": "soljson-v0.8.23+commit.f704f362.js", +- "0.8.22": "soljson-v0.8.22+commit.4fc1097e.js", +- "0.8.21": "soljson-v0.8.21+commit.d9974bed.js", +- "0.8.20": "soljson-v0.8.20+commit.a1b79de6.js", +- "0.8.19": "soljson-v0.8.19+commit.7dd6d404.js", +- "0.8.18": "soljson-v0.8.18+commit.87f61d96.js", +- "0.8.17": "soljson-v0.8.17+commit.8df45f5f.js", +- "0.8.16": "soljson-v0.8.16+commit.07a7930e.js", +- "0.8.15": "soljson-v0.8.15+commit.e14f2714.js", +- "0.8.14": "soljson-v0.8.14+commit.80d49f37.js", +- "0.8.13": "soljson-v0.8.13+commit.abaa5c0e.js", +- "0.8.12": "soljson-v0.8.12+commit.f00d7308.js", +- "0.8.11": "soljson-v0.8.11+commit.d7f03943.js", +- "0.8.10": "soljson-v0.8.10+commit.fc410830.js", +- "0.8.9": "soljson-v0.8.9+commit.e5eed63a.js", +- "0.8.8": "soljson-v0.8.8+commit.dddeac2f.js", +- "0.8.7": "soljson-v0.8.7+commit.e28d00a7.js", +- "0.8.6": "soljson-v0.8.6+commit.11564f7e.js", +- "0.8.5": "soljson-v0.8.5+commit.a4f2e591.js", +- "0.8.4": "soljson-v0.8.4+commit.c7e474f2.js", +- "0.8.3": "soljson-v0.8.3+commit.8d00100c.js", +- "0.8.2": "soljson-v0.8.2+commit.661d1103.js", +- "0.8.1": "soljson-v0.8.1+commit.df193b15.js", +- "0.8.0": "soljson-v0.8.0+commit.c7dfd78e.js", +- "0.7.6": "soljson-v0.7.6+commit.7338295f.js", +- "0.7.5": "soljson-v0.7.5+commit.eb77ed08.js", +- "0.7.4": "soljson-v0.7.4+commit.3f05b770.js", +- "0.7.3": "soljson-v0.7.3+commit.9bfce1f6.js", +- "0.7.2": "soljson-v0.7.2+commit.51b20bc0.js", +- "0.7.1": "soljson-v0.7.1+commit.f4a555be.js", +- "0.7.0": "soljson-v0.7.0+commit.9e61f92b.js", +- "0.6.12": "soljson-v0.6.12+commit.27d51765.js", +- "0.6.11": "soljson-v0.6.11+commit.5ef660b1.js", +- "0.6.10": "soljson-v0.6.10+commit.00c0fcaf.js", +- "0.6.9": "soljson-v0.6.9+commit.3e3065ac.js", +- "0.6.8": "soljson-v0.6.8+commit.0bbfe453.js", +- "0.6.7": "soljson-v0.6.7+commit.b8d736ae.js", +- "0.6.6": "soljson-v0.6.6+commit.6c089d02.js", +- "0.6.5": "soljson-v0.6.5+commit.f956cc89.js", +- "0.6.4": "soljson-v0.6.4+commit.1dca32f3.js", +- "0.6.3": "soljson-v0.6.3+commit.8dda9521.js", +- "0.6.2": "soljson-v0.6.2+commit.bacdbe57.js", +- "0.6.1": "soljson-v0.6.1+commit.e6f7d5a4.js", +- "0.6.0": "soljson-v0.6.0+commit.26b70077.js", +- "0.5.17": "soljson-v0.5.17+commit.d19bba13.js", +- "0.5.16": "soljson-v0.5.16+commit.9c3226ce.js", +- "0.5.15": "soljson-v0.5.15+commit.6a57276f.js", +- "0.5.14": "soljson-v0.5.14+commit.01f1aaa4.js", +- "0.5.13": "soljson-v0.5.13+commit.5b0b510c.js", +- "0.5.12": "soljson-v0.5.12+commit.7709ece9.js", +- "0.5.11": "soljson-v0.5.11+commit.c082d0b4.js", +- "0.5.10": "soljson-v0.5.10+commit.5a6ea5b1.js", +- "0.5.9": "soljson-v0.5.9+commit.e560f70d.js", +- "0.5.8": "soljson-v0.5.8+commit.23d335f2.js", +- "0.5.7": "soljson-v0.5.7+commit.6da8b019.js", +- "0.5.6": "soljson-v0.5.6+commit.b259423e.js", +- "0.5.5": "soljson-v0.5.5+commit.47a71e8f.js", +- "0.5.4": "soljson-v0.5.4+commit.9549d8ff.js", +- "0.5.3": "soljson-v0.5.3+commit.10d17f24.js", +- "0.5.2": "soljson-v0.5.2+commit.1df8f40c.js", +- "0.5.1": "soljson-v0.5.1+commit.c8a2cb62.js", +- "0.5.0": "soljson-v0.5.0+commit.1d4f565a.js", +- "0.4.26": "soljson-v0.4.26+commit.4563c3fc.js", +- "0.4.25": "soljson-v0.4.25+commit.59dbf8f1.js", +- "0.4.24": "soljson-v0.4.24+commit.e67f0147.js", +- "0.4.23": "soljson-v0.4.23+commit.124ca40d.js", +- "0.4.22": "soljson-v0.4.22+commit.4cb486ee.js", +- "0.4.21": "soljson-v0.4.21+commit.dfe3193c.js", +- "0.4.20": "soljson-v0.4.20+commit.3155dd80.js", +- "0.4.19": "soljson-v0.4.19+commit.c4cbbb05.js", +- "0.4.18": "soljson-v0.4.18+commit.9cf6e910.js", +- "0.4.17": "soljson-v0.4.17+commit.bdeb9e52.js", +- "0.4.16": "soljson-v0.4.16+commit.d7661dd9.js", +- "0.4.15": "soljson-v0.4.15+commit.bbb8e64f.js", +- "0.4.14": "soljson-v0.4.14+commit.c2215d46.js", +- "0.4.13": "soljson-v0.4.13+commit.0fb4cb1a.js", +- "0.4.12": "soljson-v0.4.12+commit.194ff033.js", +- "0.4.11": "soljson-v0.4.11+commit.68ef5810.js", +- "0.4.10": "soljson-v0.4.10+commit.f0d539ae.js", +- "0.4.9": "soljson-v0.4.9+commit.364da425.js", +- "0.4.8": "soljson-v0.4.8+commit.60cc1668.js", +- "0.4.7": "soljson-v0.4.7+commit.822622cf.js", +- "0.4.6": "soljson-v0.4.6+commit.2dabbdf0.js", +- "0.4.5": "soljson-v0.4.5+commit.b318366e.js", +- "0.4.4": "soljson-v0.4.4+commit.4633f3de.js", +- "0.4.3": "soljson-v0.4.3+commit.2353da71.js", +- "0.4.2": "soljson-v0.4.2+commit.af6afb04.js", +- "0.4.1": "soljson-v0.4.1+commit.4fc6fc2c.js", +- "0.4.0": "soljson-v0.4.0+commit.acd334c9.js", +- "0.3.6": "soljson-v0.3.6+commit.3fc68da5.js" +- }, +- "latestRelease": "0.8.24" +-} +\ No newline at end of file +diff --git a/apps/remix-ide/src/blockchain/providers/injected.ts b/apps/remix-ide/src/blockchain/providers/injected.ts +index 32b4938f7..76c211a0f 100644 +--- a/apps/remix-ide/src/blockchain/providers/injected.ts ++++ b/apps/remix-ide/src/blockchain/providers/injected.ts +@@ -29,8 +29,7 @@ export class InjectedProvider { + + async getBalanceInEther (address) { + const balance = await this.executionContext.web3().eth.getBalance(address) +- const balInString = balance.toString(10) +- return balInString === '0' ? balInString : Web3.utils.fromWei(balInString, 'ether') ++ return Web3.utils.fromWei(balance.toString(10), 'ether') + } + + getGasPrice (cb) { +diff --git a/apps/remix-ide/src/blockchain/providers/node.ts b/apps/remix-ide/src/blockchain/providers/node.ts +index c77421e04..1dcf1b6c4 100644 +--- a/apps/remix-ide/src/blockchain/providers/node.ts ++++ b/apps/remix-ide/src/blockchain/providers/node.ts +@@ -35,8 +35,7 @@ export class NodeProvider { + + async getBalanceInEther (address) { + const balance = await this.executionContext.web3().eth.getBalance(address) +- const balInString = balance.toString(10) +- return balInString === '0' ? balInString : Web3.utils.fromWei(balInString, 'ether') ++ return Web3.utils.fromWei(balance.toString(10), 'ether') + } + + getGasPrice (cb) { +diff --git a/apps/remix-ide/src/blockchain/providers/vm.ts b/apps/remix-ide/src/blockchain/providers/vm.ts +index 67357b347..3ae7f6a15 100644 +--- a/apps/remix-ide/src/blockchain/providers/vm.ts ++++ b/apps/remix-ide/src/blockchain/providers/vm.ts +@@ -97,8 +97,7 @@ export class VMProvider { + + async getBalanceInEther (address) { + const balance = await this.web3.eth.getBalance(address, undefined, { number: FMT_NUMBER.HEX, bytes: FMT_BYTES.HEX }) +- const balInString = toBigInt(balance).toString(10) +- return balInString === '0' ? balInString : fromWei(balInString, 'ether') ++ return fromWei(toBigInt(balance).toString(10), 'ether') + } + + getGasPrice (cb) { +diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js +index 8fa3fb15d..d55a27a56 100644 +--- a/apps/remix-ide/src/remixAppManager.js ++++ b/apps/remix-ide/src/remixAppManager.js +@@ -77,6 +77,7 @@ let requiredModules = [ // services + layout views + system views + 'contractflattener', + 'solidity-script', + 'openaigpt', ++ 'solcoder', + 'home', + 'doc-viewer', + 'doc-gen', +@@ -153,7 +154,7 @@ export class RemixAppManager extends PluginManager { + if (Registry.getInstance().get('platform').api.isDesktop()) { + requiredModules = [...requiredModules, 'fs', 'electronTemplates', 'isogit', 'remix-templates', 'electronconfig', 'xterm', 'compilerloader', 'ripgrep'] + } +- ++ + } + + async canActivatePlugin(from, to) { +@@ -331,17 +332,6 @@ export class RemixAppManager extends PluginManager { + sticky: true, + group: 7 + }) +- await this.call('filePanel', 'registerContextMenuItem', { +- id: 'vyper', +- name: 'vyperCompileCustomAction', +- label: 'Compile for Vyper', +- type: [], +- extension: ['.vy'], +- path: [], +- pattern: [], +- sticky: true, +- group: 7 +- }) + if (Registry.getInstance().get('platform').api.isDesktop()) { + await this.call('filePanel', 'registerContextMenuItem', { + id: 'fs', +diff --git a/apps/remix-ide/src/remixEngine.js b/apps/remix-ide/src/remixEngine.js +index 6b96d4478..1e416d006 100644 +--- a/apps/remix-ide/src/remixEngine.js ++++ b/apps/remix-ide/src/remixEngine.js +@@ -25,8 +25,8 @@ export class RemixEngine extends Engine { + if (name === 'circuit-compiler') return { queueTimeout: 60000 * 4 } + if (name === 'compilerloader') return { queueTimeout: 60000 * 4 } + if (name === 'filePanel') return { queueTimeout: 60000 * 20 } +- if (name === 'fileManager') return { queueTimeout: 60000 * 20 } + if (name === 'openaigpt') return { queueTimeout: 60000 * 2 } ++ if (name === 'solcoder') return { queueTimeout: 60000 * 2 } + if (name === 'cookbookdev') return { queueTimeout: 60000 * 2 } + return { queueTimeout: 10000 } + } +diff --git a/apps/vyper/src/app/app.css b/apps/vyper/src/app/app.css +index f299c4d37..7e4107ba6 100644 +--- a/apps/vyper/src/app/app.css ++++ b/apps/vyper/src/app/app.css +@@ -113,112 +113,3 @@ html, body, #root, main { + height: 100%; + width: 100%; + } +- +- +- +-.remixui_copyButton { +- padding: 6px; +- font-weight: bold; +- font-size: 11px; +- line-height: 15px; +-} +- +-.remixui_contractHelperButtons { +- margin-top: 6px; +- display: flex; +- align-items: center; +- justify-content: space-between; +- float: right; +-} +-.remixui_copyToClipboard { +- font-size: 1rem; +-} +-.remixui_copyIcon { +- margin-right: 5px; +-} +-.remixui_log { +- display: flex; +- flex-direction: column; +- margin-bottom: 0.5rem; +- overflow: visible; +-} +-.remixui_key { +- margin-right: 5px; +- text-transform: uppercase; +- width: 100%; +-} +-.remixui_value { +- display: flex; +- width: 100%; +- margin-top: 1.5%; +-} +-.remixui_questionMark { +- margin-left: 2%; +- cursor: pointer; +-} +- +-@keyframes spin { +- 0% { transform: rotate(0deg); } +- 100% { transform: rotate(360deg); } +-} +-@-webkit-keyframes spin { +- 0% { transform: rotate(0deg); } +- 100% { transform: rotate(360deg); } +-} +-@-moz-keyframes spin { +- 0% { transform: rotate(0deg); } +- 100% { transform: rotate(360deg); } +-} +-@-o-keyframes spin { +- 0% { transform: rotate(0deg); } +- 100% { transform: rotate(360deg); } +-} +-@-ms-keyframes spin { +- 0% { transform: rotate(0deg); } +- 100% { transform: rotate(360deg); } +-} +- +-.remixui_bouncingIcon { +- display: inline-block; +- position: relative; +- -moz-animation: bounce 2s infinite linear; +- -o-animation: bounce 2s infinite linear; +- -webkit-animation: bounce 2s infinite linear; +- animation: bounce 2s infinite linear; +-} +- +-@-webkit-keyframes bounce { +- 0% { top: 0; } +- 50% { top: -0.2em; } +- 70% { top: -0.3em; } +- 100% { top: 0; } +-} +-@-moz-keyframes bounce { +- 0% { top: 0; } +- 50% { top: -0.2em; } +- 70% { top: -0.3em; } +- 100% { top: 0; } +-} +-@-o-keyframes bounce { +- 0% { top: 0; } +- 50% { top: -0.2em; } +- 70% { top: -0.3em; } +- 100% { top: 0; } +-} +-@-ms-keyframes bounce { +- 0% { top: 0; } +- 50% { top: -0.2em; } +- 70% { top: -0.3em; } +- 100% { top: 0; } +-} +-@keyframes bounce { +- 0% { top: 0; } +- 50% { top: -0.2em; } +- 70% { top: -0.3em; } +- 100% { top: 0; } +-} +- +-#compileDetails { +- margin: 15px; +- padding: 15px; +-} +diff --git a/apps/vyper/src/app/app.tsx b/apps/vyper/src/app/app.tsx +index f09dc06cd..ebcfdd3aa 100644 +--- a/apps/vyper/src/app/app.tsx ++++ b/apps/vyper/src/app/app.tsx +@@ -13,9 +13,7 @@ import ToggleButton from 'react-bootstrap/ToggleButton' + import Button from 'react-bootstrap/Button' + + import './app.css' +-import {CustomTooltip} from '@remix-ui/helper' +-import {Form} from 'react-bootstrap' +-import {CompileErrorCard} from './components/CompileErrorCard' ++import { CustomTooltip } from '@remix-ui/helper' + + interface AppState { + status: 'idle' | 'inProgress' +@@ -30,13 +28,14 @@ interface OutputMap { + + const App = () => { + const [contract, setContract] = useState() +- const [output, setOutput] = useState(remixClient.compilerOutput) ++ const [output, setOutput] = useState({}) + const [state, setState] = useState({ + status: 'idle', + environment: 'remote', +- localUrl: 'http://localhost:8000/', ++ localUrl: 'http://localhost:8000/' + }) + ++ + useEffect(() => { + async function start() { + try { +@@ -54,33 +53,6 @@ const App = () => { + start() + }, []) + +- useEffect(() => { +- remixClient.eventEmitter.on('resetCompilerState', () => { +- resetCompilerResultState() +- }) +- +- return () => { +- remixClient.eventEmitter.off('resetCompilerState', () => { +- resetCompilerResultState() +- }) +- } +- }, []) +- +- useEffect(() => { +- remixClient.eventEmitter.on('setOutput', (payload) => { +- if (payload.status === 'failed') { +- console.error('Error in the compiler', payload) +- } +- setOutput(payload) +- }) +- +- return () => { +- remixClient.eventEmitter.off('setOutput', (payload) => { +- setOutput(payload) +- }) +- } +- }, []) +- + /** Update the environment state value */ + function setEnvironment(environment: 'local' | 'remote') { + setState({...state, environment}) +@@ -95,48 +67,48 @@ const App = () => { + } + + function resetCompilerResultState() { +- setOutput(remixClient.compilerOutput) ++ setOutput({}) + } + + return ( +
+-
+-
+- Vyper logo +-

yper Compiler

+-
+- +- +- +-
+
+
+- +- + +
+-
+-
+- setEnvironment('remote')} label="Remote Compiler" style={{cursor: state.environment === 'remote' ? 'default' : 'pointer'}} className="d-flex mr-4" /> +- setEnvironment('local')} label="Local Compiler" style={{cursor: state.environment === 'local' ? 'default' : 'pointer'}} /> +-
+-
+- Specify the compiler version & EVM version in the .vy file ++ ++ ++ Remote Compiler ++ ++ ++ Local Compiler ++ ++ + +
+- setOutput({...output, [name]: update})} resetCompilerState={resetCompilerResultState} /> ++ setOutput({...output, [name]: update})} ++ resetCompilerState={resetCompilerResultState} ++ /> +
+ +
+- {output && Object.keys(output).length > 0 && output.status !== 'failed' ? ( +- <> +- +- +- ) : output.status === 'failed' ? ( +- +- ) : null} ++ { ++ output && Object.keys(output).length > 0 && output.status !== 'failed' ? ( ++ <> ++ ++ ++ ) : null ++ } +
+
+
+diff --git a/apps/vyper/src/app/components/CompileErrorCard.tsx b/apps/vyper/src/app/components/CompileErrorCard.tsx +deleted file mode 100644 +index 4c8d1128b..000000000 +--- a/apps/vyper/src/app/components/CompileErrorCard.tsx ++++ /dev/null +@@ -1,19 +0,0 @@ +-import Reaact from 'react' +- +-export function CompileErrorCard(props: any) { +- return ( +-
+- +- +- {props.output.message.trim()} +- +-
+- ) +-} +diff --git a/apps/vyper/src/app/components/CompilerButton.tsx b/apps/vyper/src/app/components/CompilerButton.tsx +index f7d233134..ad04d0ba0 100644 +--- a/apps/vyper/src/app/components/CompilerButton.tsx ++++ b/apps/vyper/src/app/components/CompilerButton.tsx +@@ -1,6 +1,7 @@ + import React, { Fragment, useState } from 'react' +-import {isVyper, compile, toStandardOutput, isCompilationError, remixClient, normalizeContractPath, compileContract} from '../utils' ++import {isVyper, compile, toStandardOutput, isCompilationError, remixClient, normalizeContractPath} from '../utils' + import Button from 'react-bootstrap/Button' ++import _ from 'lodash' + + interface Props { + compilerUrl: string +@@ -20,14 +21,112 @@ function CompilerButton({contract, setOutput, compilerUrl, resetCompilerState}: + } + + /** Compile a Contract */ ++ async function compileContract() { ++ resetCompilerState() ++ setLoadingSpinnerState(true) ++ try { ++ // await remixClient.discardHighlight() ++ let _contract: any ++ try { ++ _contract = await remixClient.getContract() ++ } catch (e: any) { ++ setOutput('', {status: 'failed', message: e.message}) ++ return ++ } ++ remixClient.changeStatus({ ++ key: 'loading', ++ type: 'info', ++ title: 'Compiling' ++ }) ++ let output ++ try { ++ output = await compile(compilerUrl, _contract) ++ } catch (e: any) { ++ remixClient.changeStatus({ ++ key: 'failed', ++ type: 'error', ++ title: e.message ++ }) ++ return ++ } ++ const compileReturnType = () => { ++ const t: any = toStandardOutput(contract, output) ++ const temp = _.merge(t['contracts'][contract]) ++ const normal = normalizeContractPath(contract)[2] ++ const abi = temp[normal]['abi'] ++ const evm = _.merge(temp[normal]['evm']) ++ const dpb = evm.deployedBytecode ++ const runtimeBytecode = evm.bytecode ++ const methodIdentifiers = evm.methodIdentifiers ++ ++ const result = { ++ contractName: normal, ++ abi: abi, ++ bytecode: dpb, ++ runtimeBytecode: runtimeBytecode, ++ ir: '', ++ methodIdentifiers: methodIdentifiers ++ } ++ return result ++ } ++ ++ // ERROR ++ if (isCompilationError(output)) { ++ const line = output.line ++ if (line) { ++ const lineColumnPos = { ++ start: {line: line - 1, column: 10}, ++ end: {line: line - 1, column: 10} ++ } ++ // remixClient.highlight(lineColumnPos as any, _contract.name, '#e0b4b4') ++ } else { ++ const regex = output?.message?.match(/line ((\d+):(\d+))+/g) ++ const errors = output?.message?.split(/line ((\d+):(\d+))+/g) // extract error message ++ if (regex) { ++ let errorIndex = 0 ++ regex.map((errorLocation) => { ++ const location = errorLocation?.replace('line ', '').split(':') ++ let message = errors[errorIndex] ++ errorIndex = errorIndex + 4 ++ if (message && message?.split('\n\n').length > 0) { ++ try { ++ message = message?.split('\n\n')[message.split('\n\n').length - 1] ++ } catch (e) {} ++ } ++ if (location?.length > 0) { ++ const lineColumnPos = { ++ start: {line: parseInt(location[0]) - 1, column: 10}, ++ end: {line: parseInt(location[0]) - 1, column: 10} ++ } ++ // remixClient.highlight(lineColumnPos as any, _contract.name, message) ++ } ++ }) ++ } ++ } ++ throw new Error(output.message) ++ } ++ // SUCCESS ++ // remixClient.discardHighlight() ++ remixClient.changeStatus({ ++ key: 'succeed', ++ type: 'success', ++ title: 'success' ++ }) ++ const data = toStandardOutput(_contract.name, output) ++ remixClient.compilationFinish(_contract.name, _contract.content, data) ++ setOutput(_contract.name, compileReturnType()) ++ } catch (err: any) { ++ remixClient.changeStatus({ ++ key: 'failed', ++ type: 'error', ++ title: err.message ++ }) ++ } ++ } + + return ( + +- +-
+-
+-
+- (Object.values(output)[0] as OutputType).abi} direction="bottom" icon="far fa-copy"> +- +- +- (Object.values(output)[0] as OutputType).bytecode.object} direction="bottom" icon="far fa-copy"> +- +- +-
+-
+-
+ + + ) +diff --git a/apps/vyper/src/app/utils/compiler.tsx b/apps/vyper/src/app/utils/compiler.tsx +index fcb32a5b7..ed1cc80b5 100644 +--- a/apps/vyper/src/app/utils/compiler.tsx ++++ b/apps/vyper/src/app/utils/compiler.tsx +@@ -1,8 +1,5 @@ + import { ABIDescription} from '@remixproject/plugin-api' + import axios from 'axios' +-import { remixClient } from './remix-client' +-import _ from 'lodash' +- + + export interface Contract { + name: string +@@ -170,134 +167,6 @@ export function toStandardOutput(fileName: string, compilationResult: any): any + } + } + } +- +- +-export async function compileContract(contract: string, compilerUrl: string, setOutput?: any) { +- remixClient.eventEmitter.emit('resetCompilerState', {}) +- +- try { +- // await remixClient.discardHighlight() +- let _contract: any +- try { +- _contract = await remixClient.getContract() +- } catch (e: any) { +- // if (setOutput === null || setOutput === undefined) { +- const compileResult = { +- status: 'failed', +- message: e.message +- } +- remixClient.eventEmitter.emit('setOutput', compileResult) +- // } else { +- // setOutput('', {status: 'failed', message: e.message}) +- // } +- return +- } +- remixClient.changeStatus({ +- key: 'loading', +- type: 'info', +- title: 'Compiling' +- }) +- let output +- try { +- output = await compile(compilerUrl, _contract) +- console.log('checking compile result', output) +- remixClient.eventEmitter.emit('setOutput', output) +- } catch (e: any) { +- remixClient.changeStatus({ +- key: 'failed', +- type: 'error', +- title: `${e.message} debugging` +- }) +- // setOutput !== null || setOutput !== undefined && setOutput('', {status: 'failed', message: e.message}) +- remixClient.eventEmitter.emit('setOutput', {status: 'failed', message: e.message}) +- return +- } +- const compileReturnType = () => { +- const t: any = toStandardOutput(contract, output) +- const temp = _.merge(t['contracts'][contract]) +- const normal = normalizeContractPath(contract)[2] +- const abi = temp[normal]['abi'] +- const evm = _.merge(temp[normal]['evm']) +- const dpb = evm.deployedBytecode +- const runtimeBytecode = evm.bytecode +- const methodIdentifiers = evm.methodIdentifiers +- +- const result = { +- contractName: normal, +- abi: abi, +- bytecode: dpb, +- runtimeBytecode: runtimeBytecode, +- ir: '', +- methodIdentifiers: methodIdentifiers +- } +- return result +- } +- +- // ERROR +- if (isCompilationError(output)) { +- const line = output.line +- if (line) { +- const lineColumnPos = { +- start: {line: line - 1, column: 10}, +- end: {line: line - 1, column: 10} +- } +- // remixClient.highlight(lineColumnPos as any, _contract.name, '#e0b4b4') +- } else { +- const regex = output?.message?.match(/line ((\d+):(\d+))+/g) +- const errors = output?.message?.split(/line ((\d+):(\d+))+/g) // extract error message +- if (regex) { +- let errorIndex = 0 +- regex.map((errorLocation) => { +- const location = errorLocation?.replace('line ', '').split(':') +- let message = errors[errorIndex] +- errorIndex = errorIndex + 4 +- if (message && message?.split('\n\n').length > 0) { +- try { +- message = message?.split('\n\n')[message.split('\n\n').length - 1] +- } catch (e) {} +- } +- if (location?.length > 0) { +- const lineColumnPos = { +- start: {line: parseInt(location[0]) - 1, column: 10}, +- end: {line: parseInt(location[0]) - 1, column: 10} +- } +- // remixClient.highlight(lineColumnPos as any, _contract.name, message) +- } +- }) +- } +- } +- throw new Error(output.message) +- } +- // SUCCESS +- // remixClient.discardHighlight() +- remixClient.changeStatus({ +- key: 'succeed', +- type: 'success', +- title: 'success' +- }) +- +- const data = toStandardOutput(_contract.name, output) +- remixClient.compilationFinish(_contract.name, _contract.content, data) +- if (setOutput === null || setOutput === undefined) { +- const contractName = _contract['name'] +- const compileResult = compileReturnType() +- remixClient.eventEmitter.emit('setOutput', { contractName, compileResult }) +- } else { +- setOutput(_contract.name, compileReturnType()) +- } +- } catch (err: any) { +- remixClient.changeStatus({ +- key: 'failed', +- type: 'error', +- title: err.message +- }) +- remixClient.eventEmitter.emit('setOutput', {status: 'failed', message: err.message}) +- } +-} +- +- +- +- + export type StandardOutput = { + sources: { + [fileName: string]: { +diff --git a/apps/vyper/src/app/utils/remix-client.tsx b/apps/vyper/src/app/utils/remix-client.tsx +index 4f0c45a09..a4fda680c 100644 +--- a/apps/vyper/src/app/utils/remix-client.tsx ++++ b/apps/vyper/src/app/utils/remix-client.tsx +@@ -1,23 +1,12 @@ +-import {HighlightPosition, CompilationResult, RemixApi, customAction} from '@remixproject/plugin-api' ++import {HighlightPosition, CompilationResult, RemixApi} from '@remixproject/plugin-api' + import {Api, Status} from '@remixproject/plugin-utils' + import {createClient} from '@remixproject/plugin-webview' + import {PluginClient} from '@remixproject/plugin' +-import {Contract, compileContract} from './compiler' ++import {Contract} from './compiler' + import {ExampleContract} from '../components/VyperResult' +-import EventEmitter from 'events' + +- +-export type VyperComplierAddress = 'https://vyper2.remixproject.org/' | 'http://localhost:8000/' + export class RemixClient extends PluginClient { + private client = createClient>(this) +- compilerUrl: VyperComplierAddress = 'https://vyper2.remixproject.org/' +- compilerOutput: any +- eventEmitter = new EventEmitter() +- +- constructor() { +- super() +- this.compilerOutput = {} +- } + + loaded() { + return this.client.onload() +@@ -37,18 +26,6 @@ export class RemixClient extends PluginClient { + }) + } + +- resetCompilerState() { +- this.compilerOutput = {} +- this.eventEmitter.emit('resetCompilerState', {}) +- } +- +- async vyperCompileCustomAction(action: customAction) { +- //read selected contract from file explorer and create contract type +- const contract = await this.getContract() +- //compile contract +- await compileContract(contract.name, this.compilerUrl) +- } +- + /** Load Ballot contract example into the file manager */ + async loadContract({name, address}: ExampleContract) { + try { +diff --git a/apps/vyper/src/assets/vyperLogo_v2.webp b/apps/vyper/src/assets/vyperLogo_v2.webp +deleted file mode 100644 +index fc8599362..000000000 +Binary files a/apps/vyper/src/assets/vyperLogo_v2.webp and /dev/null differ +diff --git a/apps/vyper/src/profile.json b/apps/vyper/src/profile.json +index 8ed04d3cb..456772071 100644 +--- a/apps/vyper/src/profile.json ++++ b/apps/vyper/src/profile.json +@@ -1,7 +1,7 @@ + { + "name": "vyper", +- "displayName": "Vyper", +- "methods": ["getCompilationResult", "compile", "vyperCompileCustomAction"], ++ "displayName": "Vyper Plugin", ++ "methods": ["getCompilationResult", "compile"], + "url": "https://ipfs-cluster.ethdevops.io/ipfs/QmbmPzUg7ghTKcF2eo64zm1k1LKdibYfqYmiqXkHKXks8r", + "documentation": "https://remix-ide.readthedocs.io/en/latest/plugin_list.html", + "description": "Compile vyper contracts", +diff --git a/apps/walletconnect/src/app/app.tsx b/apps/walletconnect/src/app/app.tsx +index dd9626956..3aef77cf8 100644 +--- a/apps/walletconnect/src/app/app.tsx ++++ b/apps/walletconnect/src/app/app.tsx +@@ -1,16 +1,33 @@ ++import React, {useEffect, useState} from 'react' + import '../css/app.css' + import '@fortawesome/fontawesome-free/css/all.css' ++import type {EthereumClient} from '@web3modal/ethereum' + import {WalletConnectRemixClient} from '../services/WalletConnectRemixClient' + import {WalletConnectUI} from './walletConnectUI' + + const remix = new WalletConnectRemixClient() +-remix.initClient() + + function App() { ++ const [ethereumClient, setEthereumClient] = useState(null) ++ const [wagmiConfig, setWagmiConfig] = useState(null) ++ const [theme, setTheme] = useState('dark') ++ ++ useEffect(() => { ++ ;(async () => { ++ await remix.initClient() ++ remix.internalEvents.on('themeChanged', (theme: string) => { ++ setTheme(theme) ++ }) ++ ++ setWagmiConfig(remix.wagmiConfig) ++ setEthereumClient(remix.ethereumClient) ++ })() ++ }, []) ++ + return ( +
+

WalletConnect

+- ++ {ethereumClient && wagmiConfig && } +
+ ) + } +diff --git a/apps/walletconnect/src/app/walletConnectUI.tsx b/apps/walletconnect/src/app/walletConnectUI.tsx +index 655faa4d7..38c205000 100644 +--- a/apps/walletconnect/src/app/walletConnectUI.tsx ++++ b/apps/walletconnect/src/app/walletConnectUI.tsx +@@ -1,7 +1,16 @@ +-export function WalletConnectUI() { ++import {Web3Button, Web3Modal} from '@web3modal/react' ++import {WagmiConfig} from 'wagmi' ++import {PROJECT_ID} from '../services/constant' ++ ++export function WalletConnectUI({ethereumClient, wagmiConfig, theme}) { + return ( +-
+- ++
++
++ ++ ++ ++
++ +
+ ) + } +diff --git a/apps/walletconnect/src/services/WalletConnectRemixClient.ts b/apps/walletconnect/src/services/WalletConnectRemixClient.ts +index d8e8656cc..0a4ccc004 100644 +--- a/apps/walletconnect/src/services/WalletConnectRemixClient.ts ++++ b/apps/walletconnect/src/services/WalletConnectRemixClient.ts +@@ -1,18 +1,30 @@ + import {PluginClient} from '@remixproject/plugin' + import {createClient} from '@remixproject/plugin-webview' +-import { createWeb3Modal, defaultConfig } from '@web3modal/ethers5/react' +-import { constants } from '../utils/constants' ++import {w3mConnectors, w3mProvider} from '@web3modal/ethereum' ++import {createConfig, configureChains} from 'wagmi' ++import { ++ arbitrum, ++ arbitrumGoerli, ++ mainnet, ++ polygon, ++ polygonMumbai, ++ optimism, ++ optimismGoerli, ++ Chain, ++ goerli, ++ sepolia ++} from 'viem/chains' ++import {EthereumClient} from '@web3modal/ethereum' + import EventManager from 'events' +-import {PROJECT_ID as projectId, METADATA as metadata} from './constant' +-import { Chain, RequestArguments } from '../types' ++import {PROJECT_ID} from './constant' + + export class WalletConnectRemixClient extends PluginClient { +- web3modal: ReturnType +- ethersConfig: ReturnType ++ wagmiConfig ++ ethereumClient: EthereumClient + chains: Chain[] + currentChain: number + internalEvents: EventManager +- currentAccount: string ++ currentAcount: string + + constructor() { + super() +@@ -33,59 +45,74 @@ export class WalletConnectRemixClient extends PluginClient { + console.log('initializing walletconnect plugin...') + } + +- initClient() { ++ async initClient() { + try { +- const ethersConfig = defaultConfig({ +- metadata, +- rpcUrl: 'https://cloudflare-eth.com' ++ this.chains = [ ++ mainnet, ++ arbitrum, ++ arbitrumGoerli, ++ polygon, ++ polygonMumbai, ++ optimism, ++ optimismGoerli, ++ goerli, ++ sepolia ++ ] ++ const {publicClient} = configureChains(this.chains, [ ++ w3mProvider({projectId: PROJECT_ID}) ++ ], { ++ pollingInterval: 5000 + }) +- +- this.web3modal = createWeb3Modal({ projectId, chains: constants.chains, metadata, ethersConfig }) +- this.ethersConfig = ethersConfig +- this.chains = constants.chains ++ ++ this.wagmiConfig = createConfig({ ++ autoConnect: false, ++ connectors: w3mConnectors({projectId: PROJECT_ID, chains: this.chains}), ++ publicClient ++ }) ++ this.ethereumClient = new EthereumClient(this.wagmiConfig, this.chains) + } catch (e) { + return console.error('Could not get a wallet connection', e) + } + } + + subscribeToEvents() { +- this.web3modal.subscribeProvider(({ address, isConnected, chainId })=>{ +- if(isConnected){ +- if (address !== this.currentAccount) { +- this.currentAccount = address +- this.emit('accountsChanged', [address]) ++ this.wagmiConfig.subscribe((event) => { ++ if (event.status === 'connected') { ++ if (event.data.account !== this.currentAcount) { ++ this.currentAcount = event.data.account ++ this.emit('accountsChanged', [event.data.account]) + } +- if (this.currentChain !== chainId) { +- this.currentChain = chainId +- this.emit('chainChanged', chainId) ++ if (this.currentChain !== event.data.chain.id) { ++ this.currentChain = event.data.chain.id ++ this.emit('chainChanged', event.data.chain.id) + } +- }else{ ++ } else if (event.status === 'disconnected') { + this.emit('accountsChanged', []) +- this.currentAccount = '' ++ this.currentAcount = '' + this.emit('chainChanged', 0) + this.currentChain = 0 + } +- },) ++ }) + this.on('theme', 'themeChanged', (theme: any) => { +- this.web3modal.setThemeMode(theme.quality) ++ this.internalEvents.emit('themeChanged', theme.quality) + }) + } + +- async sendAsync(data: RequestArguments) { +- const address = this.web3modal.getAddress() +- const provider = this.web3modal.getWalletProvider() +- if (address && provider) { ++ async sendAsync(data: {method: string; params: string; id: string}) { ++ if (this.wagmiConfig.status === 'connected') { + if (data.method === 'eth_accounts') { + return { + jsonrpc: '2.0', +- result: [address], ++ result: [this.wagmiConfig.data.account], + id: data.id + } + } else { +- //@ts-expect-error this flag does not correspond to EIP-1193 but was introduced by MetaMask +- if (provider.isMetamask && provider.sendAsync) { ++ const provider = await this.wagmiConfig.connector.getProvider({ ++ chainId: this.wagmiConfig.data.chain.id ++ }) ++ ++ if (provider.isMetaMask) { + return new Promise((resolve) => { +- //@ts-expect-error sendAsync is a legacy function we know MetaMask supports it + provider.sendAsync(data, (error, response) => { + if (error) { + if (error.data && error.data.originalError && error.data.originalError.data) { +@@ -129,6 +156,6 @@ export class WalletConnectRemixClient extends PluginClient { + + async deactivate() { + console.log('deactivating walletconnect plugin...') +- await this.web3modal.disconnect() ++ await this.ethereumClient.disconnect() + } + } +diff --git a/apps/walletconnect/src/services/constant.ts b/apps/walletconnect/src/services/constant.ts +index 5ffe34340..497ddc535 100644 +--- a/apps/walletconnect/src/services/constant.ts ++++ b/apps/walletconnect/src/services/constant.ts +@@ -1,8 +1,2 @@ + // @ts-ignore +-export const PROJECT_ID = WALLET_CONNECT_PROJECT_ID +-export const METADATA = { +- name: 'Remix IDE', +- description: 'The Native IDE for Web3 Development.', +- url: 'https://remix.ethereum.org/', +- icons: ['https://remix.ethereum.org/favicon.ico'], +-} +\ No newline at end of file ++export const PROJECT_ID = WALLET_CONNECT_PROJECT_ID +\ No newline at end of file +diff --git a/apps/walletconnect/src/types.ts b/apps/walletconnect/src/types.ts +deleted file mode 100644 +index 0ae3233f7..000000000 +--- a/apps/walletconnect/src/types.ts ++++ /dev/null +@@ -1,13 +0,0 @@ +-export interface RequestArguments { +- readonly method: string +- readonly params?: readonly unknown[] | object +- readonly id?: string +-} +- +-export type Chain = { +- chainId: number +- name: string +- currency: string +- explorerUrl: string +- rpcUrl: string +-} +\ No newline at end of file +diff --git a/apps/walletconnect/src/utils/chains.ts b/apps/walletconnect/src/utils/chains.ts +deleted file mode 100644 +index 783fed703..000000000 +--- a/apps/walletconnect/src/utils/chains.ts ++++ /dev/null +@@ -1,151 +0,0 @@ +-export const mainnet = { +- chainId: 1, +- name: 'Ethereum', +- currency: 'ETH', +- explorerUrl: 'https://etherscan.io', +- rpcUrl: 'https://cloudflare-eth.com' +-} +- +-export const sepolia = { +- chainId: 11155111, +- name: 'Sepolia', +- currency: 'ETH', +- explorerUrl: 'https://sepolia.etherscan.io', +- rpcUrl: 'https://rpc.sepolia.org' +-} +- +-export const goerli = { +- chainId: 5, +- name: 'Goerli', +- currency: 'ETH', +- explorerUrl: 'https://goerli.etherscan.io', +- rpcUrl: 'https://rpc.ankr.com/eth_goerli' +-} +- +-export const arbitrum = { +- chainId: 42161, +- name: 'Arbitrum', +- currency: 'ETH', +- explorerUrl: 'https://arbiscan.io', +- rpcUrl: 'https://arb1.arbitrum.io/rpc' +-} +- +-export const arbitrumGoerli = { +- chainId: 421613, +- name: 'Arbitrum Goerli', +- currency: 'ETH', +- explorerUrl: 'https://goerli.arbiscan.io', +- rpcUrl: 'https://goerli-rollup.arbitrum.io/rpc' +-} +- +-export const avalanche = { +- chainId: 43114, +- name: 'Avalanche', +- currency: 'AVAX', +- explorerUrl: 'https://snowtrace.io', +- rpcUrl: 'https://api.avax.network/ext/bc/C/rpc' +-} +- +-export const bsc = { +- chainId: 56, +- name: 'Binance Smart Chain', +- currency: 'BNB', +- explorerUrl: 'https://bscscan.com', +- rpcUrl: 'https://rpc.ankr.com/bsc' +-} +- +-export const optimism = { +- chainId: 10, +- name: 'Optimism', +- currency: 'ETH', +- explorerUrl: 'https://optimistic.etherscan.io', +- rpcUrl: 'https://mainnet.optimism.io' +-} +- +-export const optimismGoerli = { +- chainId: 420, +- name: 'Optimism Goerli', +- currency: 'ETH', +- explorerUrl: 'https://goerli-optimism.etherscan.io', +- rpcUrl: 'https://goerli.optimism.io' +-} +- +-export const polygon = { +- chainId: 137, +- name: 'Polygon', +- currency: 'MATIC', +- explorerUrl: 'https://polygonscan.com', +- rpcUrl: 'https://polygon-rpc.com' +-} +- +-export const polygonMumbai = { +- chainId: 80001, +- name: 'Polygon Mumbai', +- currency: 'MATIC', +- explorerUrl: 'https://mumbai.polygonscan.com', +- rpcUrl: 'https://rpc.ankr.com/polygon_mumbai' +-} +- +-export const gnosis = { +- chainId: 100, +- name: 'Gnosis', +- currency: 'xDAI', +- explorerUrl: 'https://gnosis.blockscout.com', +- rpcUrl: 'https://rpc.gnosischain.com' +-} +- +-export const zkSync = { +- chainId: 324, +- name: 'ZkSync', +- currency: 'ETH', +- explorerUrl: 'https://explorer.zksync.io', +- rpcUrl: 'https://mainnet.era.zksync.io' +-} +- +-export const zora = { +- chainId: 7777777, +- name: 'Zora', +- currency: 'ETH', +- explorerUrl: 'https://explorer.zora.energy', +- rpcUrl: 'https://rpc.zora.energy' +-} +- +-export const celo = { +- chainId: 42220, +- name: 'Celo', +- currency: 'CELO', +- explorerUrl: 'https://explorer.celo.org/mainnet', +- rpcUrl: 'https://forno.celo.org' +-} +- +-export const base = { +- chainId: 8453, +- name: 'Base', +- currency: 'BASE', +- explorerUrl: 'https://basescan.org', +- rpcUrl: 'https://mainnet.base.org' +-} +- +-export const aurora = { +- chainId: 1313161554, +- name: 'Aurora', +- currency: 'ETH', +- explorerUrl: 'https://explorer.aurora.dev', +- rpcUrl: 'https://mainnet.aurora.dev' +-} +- +-export const ronin = { +- chainId: 2020, +- name: 'Ronin', +- currency: 'RON', +- explorerUrl: 'https://app.roninchain.com', +- rpcUrl: 'https://api.roninchain.com/rpc' +-} +- +-export const saigon = { +- chainId: 2021, +- name: 'Saigon Testnet', +- currency: 'RON', +- explorerUrl: 'https://saigon-explorer.roninchain.com', +- rpcUrl: 'https://saigon-testnet.roninchain.com/rpc' +-} +\ No newline at end of file +diff --git a/apps/walletconnect/src/utils/constants.ts b/apps/walletconnect/src/utils/constants.ts +deleted file mode 100644 +index 84e806591..000000000 +--- a/apps/walletconnect/src/utils/constants.ts ++++ /dev/null +@@ -1,45 +0,0 @@ +-import { +- arbitrum, +- arbitrumGoerli, +- mainnet, +- polygon, +- polygonMumbai, +- optimism, +- optimismGoerli, +- goerli, +- sepolia, +- ronin, +- saigon, +- aurora, +- avalanche, +- base, +- bsc, +- celo, +- gnosis, +- zkSync, +- zora, +-} from './chains' +- +-export const constants = { +- chains: [ +- arbitrum, +- arbitrumGoerli, +- mainnet, +- polygon, +- polygonMumbai, +- optimism, +- optimismGoerli, +- goerli, +- sepolia, +- ronin, +- saigon, +- aurora, +- avalanche, +- base, +- bsc, +- celo, +- gnosis, +- zkSync, +- zora, +- ] +-} +\ No newline at end of file +diff --git a/libs/ghaction-helper/package.json b/libs/ghaction-helper/package.json +index 2678c622e..ee415e405 100644 +--- a/libs/ghaction-helper/package.json ++++ b/libs/ghaction-helper/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/ghaction-helper", +- "version": "0.1.22", ++ "version": "0.1.21", + "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.28", ++ "@remix-project/remix-solidity": "^0.5.27", + "@types/chai": "^4.3.4", + "typescript": "^4.9.3" + }, + "dependencies": { + "@ethereum-waffle/chai": "^3.4.4", +- "@remix-project/remix-simulator": "^0.2.42", ++ "@remix-project/remix-simulator": "^0.2.41", + "chai": "^4.3.7", + "ethers": "^5.7.2", + "web3": "^4.1.1" + }, + "types": "./src/index.d.ts", +- "gitHead": "817089ab1f206f5e195756a4051afb812ec26901" ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca" + } +\ No newline at end of file +diff --git a/libs/remix-analyzer/package.json b/libs/remix-analyzer/package.json +index 0e0c3930b..4c9a3e3fa 100644 +--- a/libs/remix-analyzer/package.json ++++ b/libs/remix-analyzer/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-analyzer", +- "version": "0.5.51", ++ "version": "0.5.50", + "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.72", +- "@remix-project/remix-lib": "^0.5.49", ++ "@remix-project/remix-astwalker": "^0.0.71", ++ "@remix-project/remix-lib": "^0.5.48", + "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": "817089ab1f206f5e195756a4051afb812ec26901", ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca", + "main": "./src/index.js" + } +\ No newline at end of file +diff --git a/libs/remix-astwalker/package.json b/libs/remix-astwalker/package.json +index ff25025c3..baee8905e 100644 +--- a/libs/remix-astwalker/package.json ++++ b/libs/remix-astwalker/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-astwalker", +- "version": "0.0.72", ++ "version": "0.0.71", + "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.49", ++ "@remix-project/remix-lib": "^0.5.48", + "@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": "817089ab1f206f5e195756a4051afb812ec26901", ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca", + "types": "./src/index.d.ts" + } +\ No newline at end of file +diff --git a/libs/remix-debug/package.json b/libs/remix-debug/package.json +index fd0d5544a..766d8144e 100644 +--- a/libs/remix-debug/package.json ++++ b/libs/remix-debug/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-debug", +- "version": "0.5.42", ++ "version": "0.5.41", + "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.72", +- "@remix-project/remix-lib": "^0.5.49", +- "@remix-project/remix-simulator": "^0.2.42", +- "@remix-project/remix-solidity": "^0.5.28", ++ "@remix-project/remix-astwalker": "^0.0.71", ++ "@remix-project/remix-lib": "^0.5.48", ++ "@remix-project/remix-simulator": "^0.2.41", ++ "@remix-project/remix-solidity": "^0.5.27", + "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": "817089ab1f206f5e195756a4051afb812ec26901", ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca", + "types": "./src/index.d.ts" + } +\ No newline at end of file +diff --git a/libs/remix-lib/package.json b/libs/remix-lib/package.json +index 72a280844..e61e74a26 100644 +--- a/libs/remix-lib/package.json ++++ b/libs/remix-lib/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-lib", +- "version": "0.5.49", ++ "version": "0.5.48", + "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": "817089ab1f206f5e195756a4051afb812ec26901", ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca", + "types": "./src/index.d.ts" + } +\ No newline at end of file +diff --git a/libs/remix-simulator/package.json b/libs/remix-simulator/package.json +index 4a2f5299b..bb62895a6 100644 +--- a/libs/remix-simulator/package.json ++++ b/libs/remix-simulator/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-simulator", +- "version": "0.2.42", ++ "version": "0.2.41", + "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.49", ++ "@remix-project/remix-lib": "^0.5.48", + "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": "817089ab1f206f5e195756a4051afb812ec26901", ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca", + "types": "./src/index.d.ts" + } +\ No newline at end of file +diff --git a/libs/remix-simulator/src/methods/accounts.ts b/libs/remix-simulator/src/methods/accounts.ts +index 62a8411a0..00b8701da 100644 +--- a/libs/remix-simulator/src/methods/accounts.ts ++++ b/libs/remix-simulator/src/methods/accounts.ts +@@ -71,8 +71,7 @@ export class Web3Accounts { + return { + eth_accounts: this.eth_accounts.bind(this), + eth_getBalance: this.eth_getBalance.bind(this), +- eth_sign: this.eth_sign.bind(this), +- eth_chainId: this.eth_chainId.bind(this) ++ eth_sign: this.eth_sign.bind(this) + } + } + +@@ -104,8 +103,4 @@ export class Web3Accounts { + + cb(null, data.signature) + } +- +- eth_chainId (_payload, cb) { +- return cb(null, '0x539') // 0x539 is hex of 1337 +- } + } +diff --git a/libs/remix-solidity/package.json b/libs/remix-solidity/package.json +index e2192d252..43ef21624 100644 +--- a/libs/remix-solidity/package.json ++++ b/libs/remix-solidity/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-solidity", +- "version": "0.5.28", ++ "version": "0.5.27", + "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.49", ++ "@remix-project/remix-lib": "^0.5.48", + "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": "817089ab1f206f5e195756a4051afb812ec26901" ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca" + } +\ No newline at end of file +diff --git a/libs/remix-solidity/src/index.ts b/libs/remix-solidity/src/index.ts +index eba07bb04..b9db8be3b 100644 +--- a/libs/remix-solidity/src/index.ts ++++ b/libs/remix-solidity/src/index.ts +@@ -1,6 +1,6 @@ + export { Compiler } from './compiler/compiler' + export { compile } from './compiler/compiler-helpers' +-export { default as compilerInputFactory, getValidLanguage } from './compiler/compiler-input' ++export { default as CompilerInput, getValidLanguage } from './compiler/compiler-input' + export { CompilerAbstract } from './compiler/compiler-abstract' + export * from './compiler/types' + export { pathToURL, baseURLBin, baseURLWasm, canUseWorker, urlFromVersion } from './compiler/compiler-utils' +diff --git a/libs/remix-tests/package.json b/libs/remix-tests/package.json +index 98d1e1c9e..a2980f4d1 100644 +--- a/libs/remix-tests/package.json ++++ b/libs/remix-tests/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-tests", +- "version": "0.2.42", ++ "version": "0.2.41", + "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.49", +- "@remix-project/remix-simulator": "^0.2.42", +- "@remix-project/remix-solidity": "^0.5.28", ++ "@remix-project/remix-lib": "^0.5.48", ++ "@remix-project/remix-simulator": "^0.2.41", ++ "@remix-project/remix-solidity": "^0.5.27", + "@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": "817089ab1f206f5e195756a4051afb812ec26901" ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca" + } +\ No newline at end of file +diff --git a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts +index 7f047833e..86fef067e 100644 +--- a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts ++++ b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts +@@ -1,6 +1,9 @@ + /* eslint-disable no-control-regex */ + import { EditorUIProps, monacoTypes } from '@remix-ui/editor'; + import axios, {AxiosResponse} from 'axios' ++import { slice } from 'lodash'; ++const _paq = (window._paq = window._paq || []) ++ + const controller = new AbortController(); + const { signal } = controller; + const result: string = '' +@@ -8,9 +11,11 @@ const result: string = '' + export class RemixInLineCompletionProvider implements monacoTypes.languages.InlineCompletionsProvider { + props: EditorUIProps + monaco: any ++ running:boolean + constructor(props: any, monaco: any) { + this.props = props + this.monaco = monaco ++ this.running = false + } + + async provideInlineCompletions(model: monacoTypes.editor.ITextModel, position: monacoTypes.Position, context: monacoTypes.languages.InlineCompletionContext, token: monacoTypes.CancellationToken): Promise> { +@@ -25,7 +30,11 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli + endColumn: position.column, + }); + +- if (!word.endsWith(' ') && !word.endsWith('\n') && !word.endsWith(';') && !word.endsWith('.')) { ++ ++ if (!word.endsWith('\n') && ++ !word.endsWith(';') && ++ !word.endsWith('.') && ++ !word.endsWith('(')) { + return; + } + +@@ -40,13 +49,16 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli + const split = word.split('\n') + if (split.length < 2) return + const ask = split[split.length - 2].trimStart() +- if (split[split.length - 1].trim() === '' && ask.startsWith('///')) { +- // use the code generation model +- const {data} = await axios.post('https://gpt-chat.remixproject.org/infer', {comment: ask.replace('///', '')}) +- const parsedData = JSON.parse(data).trimStart() ++ if (split[split.length - 1].trim() === '' && ask.startsWith('///') && (!this.running)) { ++ // use the code generation model, only take max 1000 word as context ++ this.running = true ++ const data = await this.props.plugin.call('solcoder', 'code_completion', word) ++ console.log("solcoder completion data", data) ++ const parsedData = data[0].trimStart() //JSON.parse(data).trimStart() + const item: monacoTypes.languages.InlineCompletion = { + insertText: parsedData + }; ++ this.running =false + return { + items: [item], + enableForwardStability: true +@@ -55,6 +67,15 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli + } catch (e) { + console.error(e) + } ++ ++ if (word.split('\n').at(-1).trimStart().startsWith('//') || ++ word.split('\n').at(-1).trimStart().startsWith('/*') || ++ word.split('\n').at(-1).trimStart().startsWith('*') || ++ word.split('\n').at(-1).trimStart().startsWith('*/') ++ ){ ++ return; // do not do completion on single and multiline comment ++ } ++ + + // abort if there is a signal + if (token.isCancellationRequested) { +@@ -63,21 +84,23 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli + + let result + try { +- result = await this.props.plugin.call('copilot-suggestion', 'suggest', word) ++ if (!this.running){ ++ result = await this.props.plugin.call('copilot-suggestion', 'suggest', word) ++ this.running = true ++ } + } catch (err) { ++ this.running=false + return + } + + const generatedText = (result as any).output[0].generated_text as string +- // the generated text remove a space from the context... +- let clean = generatedText +- if (generatedText.indexOf('@custom:dev-run-script./') !== -1) { +- clean = generatedText.replace('@custom:dev-run-script', '@custom:dev-run-script ') +- } +- clean = clean.replace(word, '') ++ const clean = generatedText ++ console.log('solcoder inline data:\n', clean) ++ + const item: monacoTypes.languages.InlineCompletion = { + insertText: clean + }; ++ this.running=false + + // abort if there is a signal + if (token.isCancellationRequested) { +diff --git a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +index 300d41836..adc5aadf8 100644 +--- a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx ++++ b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +@@ -3,7 +3,7 @@ import { FormattedMessage, useIntl } from 'react-intl' + import { isArray } from 'lodash' + import Editor, { loader, Monaco } from '@monaco-editor/react' + import { AlertModal } from '@remix-ui/app' +-import { QueryParams } from '@remix-project/remix-lib' ++import { ConsoleLogs, QueryParams } from '@remix-project/remix-lib' + import { reducerActions, reducerListener, initialState } from './actions/editor' + import { solidityTokensProvider, solidityLanguageConfig } from './syntaxes/solidity' + import { cairoTokensProvider, cairoLanguageConfig } from './syntaxes/cairo' +@@ -741,6 +741,24 @@ export const EditorUI = (props: EditorUIProps) => { + }, + } + ++ let solgptExplainFunctionAction ++ const executeSolgptExplainFunctionAction = { ++ id: 'explainFunction', ++ label: intl.formatMessage({id: 'editor.explainFunctionSol'}), ++ contextMenuOrder: 1, // choose the order ++ contextMenuGroupId: 'sol-gtp', // create a new grouping ++ keybindings: [], ++ run: async () => { ++ const file = await props.plugin.call('fileManager', 'getCurrentFile') ++ const content = await props.plugin.call('fileManager', 'readFile', file) ++ const selectedCode = editor.getModel().getValueInRange(editor.getSelection()) ++ ++ await props.plugin.call('solcoder', 'code_explaining', selectedCode) ++ _paq.push(['trackEvent', 'ai', 'solcoder', 'explainFunction']) ++ }, ++ } ++ ++ + const freeFunctionCondition = editor.createContextKey('freeFunctionCondition', false) + let freeFunctionAction + const executeFreeFunctionAction = { +@@ -775,6 +793,7 @@ export const EditorUI = (props: EditorUIProps) => { + freeFunctionAction = editor.addAction(executeFreeFunctionAction) + gptGenerateDocumentationAction = editor.addAction(executeGptGenerateDocumentationAction) + gptExplainFunctionAction = editor.addAction(executegptExplainFunctionAction) ++ solgptExplainFunctionAction = editor.addAction(executeSolgptExplainFunctionAction) + + // we have to add the command because the menu action isn't always available (see onContextMenuHandlerForFreeFunction) + editor.addCommand(monacoRef.current.KeyMod.Shift | monacoRef.current.KeyMod.Alt | monacoRef.current.KeyCode.KeyR, () => executeFreeFunctionAction.run()) +@@ -794,6 +813,10 @@ export const EditorUI = (props: EditorUIProps) => { + gptExplainFunctionAction.dispose() + gptExplainFunctionAction = null + } ++ if (solgptExplainFunctionAction) { ++ solgptExplainFunctionAction.dispose() ++ solgptExplainFunctionAction = null ++ } + + const file = await props.plugin.call('fileManager', 'getCurrentFile') + if (!file.endsWith('.sol')) { +@@ -811,8 +834,11 @@ export const EditorUI = (props: EditorUIProps) => { + currentFunction.current = functionImpl.name + executeGptGenerateDocumentationAction.label = intl.formatMessage({id: 'editor.generateDocumentation2'}, {name: functionImpl.name}) + gptGenerateDocumentationAction = editor.addAction(executeGptGenerateDocumentationAction) +- executegptExplainFunctionAction.label = intl.formatMessage({id: 'editor.explainFunction2'}, {name: functionImpl.name}) ++ executegptExplainFunctionAction.label = intl.formatMessage({id: 'editor.explainFunction'}, {name: functionImpl.name}) + gptExplainFunctionAction = editor.addAction(executegptExplainFunctionAction) ++ }else{ ++ executeSolgptExplainFunctionAction.label = intl.formatMessage({id: 'editor.explainFunctionSol'}) ++ solgptExplainFunctionAction = editor.addAction(executeSolgptExplainFunctionAction) + } + freeFunctionCondition.set(!!freeFunctionNode) + } +diff --git a/libs/remix-ui/editor/src/lib/suggestion-service/suggestion-service.ts b/libs/remix-ui/editor/src/lib/suggestion-service/suggestion-service.ts +new file mode 100644 +index 000000000..9f6b9db75 +--- /dev/null ++++ b/libs/remix-ui/editor/src/lib/suggestion-service/suggestion-service.ts +@@ -0,0 +1,89 @@ ++import EventEmitter from 'events' ++ ++export class SuggestionService { ++ worker: Worker ++ responses: Array ++ events: EventEmitter ++ constructor() { ++ console.log('SuggestionService instanciate worker') ++ this.worker = new Worker(new URL('./worker.js', import.meta.url), { ++ type: 'module' ++ }); ++ this.init() ++ this.events = new EventEmitter() ++ this.responses = [] ++ } ++ ++ async init() { ++ const onMessageReceived = (e) => { ++ switch (e.data.status) { ++ case 'initiate': ++ console.log(e.data) ++ this.events.emit(e.data.status, e.data) ++ // Model file start load: add a new progress item to the list. ++ break; ++ ++ case 'progress': ++ this.events.emit(e.data.status, e.data) ++ console.log(e.data) ++ // Model file progress: update one of the progress items. ++ break; ++ ++ case 'done': ++ this.events.emit(e.data.status, e.data) ++ console.log(e.data) ++ // Model file loaded: remove the progress item from the list. ++ break; ++ ++ case 'ready': ++ this.events.emit(e.data.status, e.data) ++ console.log(e.data) ++ // Pipeline ready: the worker is ready to accept messages. ++ break; ++ ++ case 'update': ++ this.events.emit(e.data.status, e.data) ++ console.log(e.data) ++ // Generation update: update the output text. ++ break; ++ ++ case 'complete': ++ console.log(e.data) ++ if (this.responses[e.data.id]) { ++ this.responses[e.data.id](null, e.data) ++ } else { ++ console.log('no callback for', e.data) ++ } ++ ++ // Generation complete: re-enable the "Generate" button ++ break; ++ } ++ }; ++ ++ // Attach the callback function as an event listener. ++ this.worker.addEventListener('message', onMessageReceived) ++ ++ this.worker.postMessage({ ++ cmd: 'init', ++ model: 'Pipper/solstarcoder' ++ }) ++ } ++ ++ suggest (content: string, max_new_tokens: number, temperature: number, top_k: number, do_sample: boolean) { ++ return new Promise((resolve, reject) => { ++ this.worker.postMessage({ ++ id: this.responses.length, ++ cmd: 'suggest', ++ text: content, ++ max_new_tokens, ++ temperature, ++ top_k, ++ do_sample ++ }) ++ this.responses.push((error, result) => { ++ if (error) return reject(error) ++ resolve(result) ++ }) ++ }) ++ } ++} +\ No newline at end of file +diff --git a/libs/remix-ui/home-tab/src/lib/components/pluginButton.tsx b/libs/remix-ui/home-tab/src/lib/components/pluginButton.tsx +index ca27c846c..a0d22eb06 100644 +--- a/libs/remix-ui/home-tab/src/lib/components/pluginButton.tsx ++++ b/libs/remix-ui/home-tab/src/lib/components/pluginButton.tsx +@@ -30,14 +30,11 @@ function PluginButton({imgPath, envID, envText, callback, l2, description, remix +
+ + {l2 && } +- {remixMaintained ? ( ++ {remixMaintained && ( + }> + +- ) +- : (}> +- +- ) +- } ++ ++ )} + + ) + } +diff --git a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.css b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.css +index 4ceded21f..a7fa9b4da 100644 +--- a/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.css ++++ b/libs/remix-ui/home-tab/src/lib/remix-ui-home-tab.css +@@ -102,7 +102,7 @@ + right: 180px; + } + .remixui_home_maintainedLabel { +- top: 118px; ++ top: 120px; + right: 180px; + } + +diff --git a/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx b/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx +index 6037ef583..4f9c35801 100644 +--- a/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx ++++ b/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx +@@ -35,14 +35,11 @@ const RemixUIPanelHeader = (props: RemixPanelProps) => { + +
+
+- {plugin?.profile?.maintainedBy?.toLowerCase() === 'remix' ? ( ++ {plugin?.profile?.maintainedBy?.toLowerCase() === 'remix' && ( + }> + +- ) +- : (}> +- +- ) +- } ++ ++ )} +
+
+ } tooltipId="pluginInfoTooltip" tooltipClasses="text-nowrap"> +diff --git a/libs/remix-ui/plugin-manager/src/lib/components/ActivePluginCard.tsx b/libs/remix-ui/plugin-manager/src/lib/components/ActivePluginCard.tsx +index 2c0b61c9a..a8fb287d0 100644 +--- a/libs/remix-ui/plugin-manager/src/lib/components/ActivePluginCard.tsx ++++ b/libs/remix-ui/plugin-manager/src/lib/components/ActivePluginCard.tsx +@@ -17,7 +17,7 @@ function ActivePluginCard({profile, buttonText, deactivatePlugin}: PluginCardPro +
+
+ {profile.displayName || profile.name} +- {profile?.maintainedBy?.toLowerCase() == 'remix' ? ( ++ {profile?.maintainedBy?.toLowerCase() == 'remix' && ( + } + > + +- ) +- : (} +- > +- +- ) +- } ++ ++ )} + {profile.documentation && ( + +
+ {profile.displayName || profile.name} +- {profile?.maintainedBy?.toLowerCase() == 'remix' ? ( ++ {profile?.maintainedBy?.toLowerCase() == 'remix' && ( + } + > + +- ) +- : (} +- > +- +- ) +- } ++ ++ )} + {profile.documentation && ( + ) => { + const accounts = plugin.REACT_API.accounts.loadedAccounts +@@ -18,12 +18,17 @@ export const updateAccountBalances = async (plugin: RunTab, dispatch: React.Disp + export const fillAccountsList = async (plugin: RunTab, dispatch: React.Dispatch) => { + try { + dispatch(fetchAccountsListRequest()) +- try { +- let accounts = await plugin.blockchain.getAccounts() +- if (!accounts) accounts = [] ++ const promise = plugin.blockchain.getAccounts() + ++ promise.then(async (accounts: string[]) => { + const loadedAccounts = {} +- ++ ++ if (!accounts) accounts = [] ++ // allSettled is undefined.. ++ // so the current promise (all) will finish when: ++ // - all the promises resolve ++ // - at least one reject ++ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all + for (const account of accounts) { + const balance = await plugin.blockchain.getBalanceInEther(account) + loadedAccounts[account] = shortenAddress(account, balance) +@@ -32,12 +37,13 @@ export const fillAccountsList = async (plugin: RunTab, dispatch: React.Dispatch< + + if (provider === 'injected') { + const selectedAddress = plugin.blockchain.getInjectedWeb3Address() +- if (!(Object.keys(loadedAccounts).includes(toChecksumAddress(selectedAddress)))) setAccount(dispatch, null) ++ ++ if (!(Object.keys(loadedAccounts).includes(selectedAddress))) setAccount(dispatch, null) + } + dispatch(fetchAccountsListSuccess(loadedAccounts)) +- } catch (e) { ++ }).catch((e) => { + dispatch(fetchAccountsListFailed(e.message)) +- } ++ }) + } catch (e) { + dispatch(displayPopUp(`Cannot get account list: ${e}`)) + } +diff --git a/libs/remix-ui/run-tab/src/lib/actions/events.ts b/libs/remix-ui/run-tab/src/lib/actions/events.ts +index fddd67988..bc8833172 100644 +--- a/libs/remix-ui/run-tab/src/lib/actions/events.ts ++++ b/libs/remix-ui/run-tab/src/lib/actions/events.ts +@@ -33,6 +33,7 @@ export const setupEvents = (plugin: RunTab, dispatch: React.Dispatch) => { + } + setFinalContext(plugin, dispatch) + fillAccountsList(plugin, dispatch) ++ updateAccountBalances(plugin, dispatch) + }) + + plugin.blockchain.event.register('networkStatus', ({ error, network }) => { +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 a2b44f989..411180b34 100644 +--- a/libs/remix-ui/run-tab/src/lib/actions/index.ts ++++ b/libs/remix-ui/run-tab/src/lib/actions/index.ts +@@ -20,7 +20,7 @@ declare global { + } + + const _paq = window._paq = window._paq || [] //eslint-disable-line +-let plugin: RunTab, dispatch: React.Dispatch = () => {} ++let plugin: RunTab, dispatch: React.Dispatch + + export const initRunTab = (udapp: RunTab) => async (reducerDispatch: React.Dispatch) => { + plugin = udapp +diff --git a/libs/remix-ui/run-tab/src/lib/components/account.tsx b/libs/remix-ui/run-tab/src/lib/components/account.tsx +index 1ea87b2d1..86e6132ca 100644 +--- a/libs/remix-ui/run-tab/src/lib/components/account.tsx ++++ b/libs/remix-ui/run-tab/src/lib/components/account.tsx +@@ -8,7 +8,6 @@ import {CustomTooltip} from '@remix-ui/helper' + + export function AccountUI(props: AccountProps) { + const {selectedAccount, loadedAccounts} = props.accounts +- const {selectExEnv, personalMode} = props + const accounts = Object.keys(loadedAccounts) + const [plusOpt, setPlusOpt] = useState({ + classList: '', +@@ -19,14 +18,11 @@ export function AccountUI(props: AccountProps) { + const intl = useIntl() + + useEffect(() => { +- if (accounts.length > 0 && !accounts.includes(selectedAccount)) { +- props.setAccount(accounts[0]) +- } ++ if (!selectedAccount && accounts.length > 0) props.setAccount(accounts[0]) + }, [accounts, selectedAccount]) + + useEffect(() => { +- props.setAccount('') +- switch (selectExEnv) { ++ switch (props.selectExEnv) { + case 'injected': + setPlusOpt({ + classList: 'udapp_disableMouseEvents', +@@ -63,7 +59,7 @@ export function AccountUI(props: AccountProps) { + break + + case 'web3': +- if (!personalMode) { ++ if (!props.personalMode) { + setPlusOpt({ + classList: 'disableMouseEvents', + title: intl.formatMessage({id: 'udapp.web3Title'}) +@@ -79,10 +75,11 @@ export function AccountUI(props: AccountProps) { + default: + setPlusOpt({ + classList: 'disableMouseEvents', +- title: intl.formatMessage({id: 'udapp.defaultTitle'}, {selectExEnv}) ++ title: intl.formatMessage({id: 'udapp.defaultTitle'}, {selectExEnv: props.selectExEnv}) + }) + } +- }, [selectExEnv, personalMode]) ++ // this._deps.config.get('settings/personal-mode') ++ }, [props.selectExEnv, props.personalMode]) + + const newAccount = () => { + props.createNewBlockchainAccount(passphraseCreationPrompt()) +@@ -93,7 +90,7 @@ export function AccountUI(props: AccountProps) { + return props.tooltip(intl.formatMessage({id: 'udapp.tooltipText1'})) + } + +- if (selectExEnv === 'web3') { ++ if (props.selectExEnv === 'web3') { + return props.modal( + intl.formatMessage({id: 'udapp.modalTitle1'}), + , +diff --git a/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx b/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx +index c43aafc27..c1a3e65c0 100644 +--- a/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx ++++ b/libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx +@@ -296,12 +296,13 @@ export function ContractGUI(props: ContractGUIProps) { + : buttonOptions.title + } + > +-
++
+ +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 34bac7624..54c064424 100644 +--- a/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx ++++ b/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx +@@ -36,6 +36,7 @@ export interface RemixUiSettingsProps { + editor: any + _deps: any + useMatomoAnalytics: boolean ++ useCopilot: boolean + themeModule: ThemeModule + localeModule: LocaleModule + } +@@ -134,41 +135,15 @@ export const RemixUiSettings = (props: RemixUiSettingsProps) => { + copilotActivate(props.config, event.target.checked, dispatch) + props.plugin.call('copilot-suggestion', 'uninstall') + return +- } +- const message =
Please wait while the copilot is downloaded. 0/100 .
+- props.plugin.on('copilot-suggestion', 'loading', (data) => { +- if (!copilotDownload.current) return +- const loaded = ((data.loaded / data.total) * 100).toString() +- const dot = loaded.match(/(.*)\./g) +- copilotDownload.current.innerText = dot ? dot[0].replace('.', '') : loaded +- }) +- const modalActivate: AppModal = { +- id: 'loadcopilotActivate', +- title: 'Download Solidity copilot', +- modalType: ModalTypes.default, +- okLabel: 'Close', +- message, +- okFn: async() => { +- props.plugin.off('copilot-suggestion', 'loading') +- if (await props.plugin.call('copilot-suggestion', 'status')) { +- copilotActivate(props.config, true, dispatch) +- } else { +- props.plugin.call('copilot-suggestion', 'uninstall') +- copilotActivate(props.config, false, dispatch) +- } +- }, +- hideFn: async () => { +- props.plugin.off('copilot-suggestion', 'loading') +- if (await props.plugin.call('copilot-suggestion', 'status')) { +- copilotActivate(props.config, true, dispatch) +- } else { +- props.plugin.call('copilot-suggestion', 'uninstall') +- copilotActivate(props.config, false, dispatch) +- } +- } ++ } ++ if (await props.plugin.call('copilot-suggestion', 'status')) { ++ copilotActivate(props.config, true, dispatch) ++ } else { ++ props.plugin.call('copilot-suggestion', 'uninstall') ++ copilotActivate(props.config, false, dispatch) + } ++ + props.plugin.call('copilot-suggestion', 'init') +- props.plugin.call('notification', 'modal', modalActivate) + + } + +diff --git a/libs/remix-ui/solidity-compiler/src/lib/logic/flattenerUtilities.ts b/libs/remix-ui/solidity-compiler/src/lib/logic/flattenerUtilities.ts +index 7dadf6fa5..b4b0824eb 100644 +--- a/libs/remix-ui/solidity-compiler/src/lib/logic/flattenerUtilities.ts ++++ b/libs/remix-ui/solidity-compiler/src/lib/logic/flattenerUtilities.ts +@@ -1,14 +1,11 @@ +-import type {CompilationSource, AstNode} from '@remix-project/remix-solidity' +- + const IMPORT_SOLIDITY_REGEX = /^\s*import(\s+).*$/gm; + const SPDX_SOLIDITY_REGEX = /^\s*\/\/ SPDX-License-Identifier:.*$/gm; + +-type Visited = { [key: string]: number } +-export function getDependencyGraph(ast: { [name: string]: CompilationSource }, target: string, remappings: string[]) { ++export function getDependencyGraph(ast, target) { + const graph = tsort(); + const visited = {}; + visited[target] = 1; +- _traverse(graph, visited, ast, target, remappings); ++ _traverse(graph, visited, ast, target); + return graph; + } + +@@ -24,31 +21,32 @@ export function concatSourceFiles(files: any[], sources: any) { + return concat; + } + +-function _traverse(graph: Graph, visited: Visited, ast: { [name: string]: CompilationSource }, name: string, remappings: string[]) { ++function _traverse(graph, visited, ast, name) { + let currentAst = null + currentAst = ast[name].ast + const dependencies = _getDependencies(currentAst); + for (const dependency of dependencies) { +- const path = resolve(name, dependency, remappings); ++ const path = resolve(name, dependency); + if (path in visited) { + // continue; // fixes wrong ordering of source in flattened file + } + visited[path] = 1; + graph.add(name, path); +- _traverse(graph, visited, ast, path, remappings); ++ _traverse(graph, visited, ast, path); + } + } + +-function _getDependencies(ast: AstNode) { ++function _getDependencies(ast) { + const dependencies = ast?.nodes + .filter(node => node?.nodeType === 'ImportDirective') + .map(node => node?.file); + return dependencies; + } + ++ + // TSORT + +-function tsort(initial?: any): Graph { ++function tsort(initial?: any) { + const graph = new Graph(); + + if (initial) { +@@ -60,88 +58,78 @@ function tsort(initial?: any): Graph { + return graph; + } + +-class Graph { +- nodes: { [key: string]: any} +- constructor() { +- this.nodes = {} +- } + +- // Add sorted items to the graph +- add (name, path) { +- const self = this; +- // eslint-disable-next-line prefer-rest-params +- let items = [].slice.call(arguments); +- +- if (items.length === 1 && Array.isArray(items[0])) +- items = items[0]; +- +- items.forEach(function (item) { +- if (!self.nodes[item]) { +- self.nodes[item] = []; +- } +- }); +- +- for (let i = 1; i < items.length; i++) { +- const from = items[i]; +- const to = items[i - 1]; +- +- self.nodes[from].push(to); ++function Graph() { ++ this.nodes = {}; ++} ++ ++// Add sorted items to the graph ++Graph.prototype.add = function () { ++ const self = this; ++ // eslint-disable-next-line prefer-rest-params ++ let items = [].slice.call(arguments); ++ ++ if (items.length === 1 && Array.isArray(items[0])) ++ items = items[0]; ++ ++ items.forEach(function (item) { ++ if (!self.nodes[item]) { ++ self.nodes[item] = []; + } +- +- return self; ++ }); ++ ++ for (let i = 1; i < items.length; i++) { ++ const from = items[i]; ++ const to = items[i - 1]; ++ ++ self.nodes[from].push(to); + } + +- // Depth first search +- // As given in http://en.wikipedia.org/wiki/Topological_sorting +- sort () { +- const self = this; +- const nodes = Object.keys(this.nodes); +- +- const sorted = []; +- const marks = {}; +- +- for (let i = 0; i < nodes.length; i++) { +- const node = nodes[i]; +- +- if (!marks[node]) { +- visit(node); +- } +- } +- +- return sorted; +- +- function visit(node) { +- if (marks[node] === 'temp') +- throw new Error("There is a cycle in the graph. It is not possible to derive a topological sort."); +- else if (marks[node]) +- return; +- +- marks[node] = 'temp'; +- self.nodes[node].forEach(visit); +- marks[node] = 'perm'; +- +- sorted.push(node); ++ return self; ++}; ++ ++// Depth first search ++// As given in http://en.wikipedia.org/wiki/Topological_sorting ++Graph.prototype.sort = function () { ++ const self = this; ++ const nodes = Object.keys(this.nodes); ++ ++ const sorted = []; ++ const marks = {}; ++ ++ for (let i = 0; i < nodes.length; i++) { ++ const node = nodes[i]; ++ ++ if (!marks[node]) { ++ visit(node); + } + } + +- isEmpty () { +- const nodes = Object.keys(this.nodes); +- return nodes.length === 0; ++ return sorted; ++ ++ function visit(node) { ++ if (marks[node] === 'temp') ++ throw new Error("There is a cycle in the graph. It is not possible to derive a topological sort."); ++ else if (marks[node]) ++ return; ++ ++ marks[node] = 'temp'; ++ self.nodes[node].forEach(visit); ++ marks[node] = 'perm'; ++ ++ sorted.push(node); + } ++}; ++ ++Graph.prototype.isEmpty = function () { ++ const nodes = Object.keys(this.nodes); ++ return nodes.length === 0; + } + +-// PATH + +-function resolve(parentPath, childPath, remappings: string[]) { +- if (remappings && remappings.length) { +- for (const mapping of remappings) { +- if (mapping.indexOf('=') !== -1) { +- const split = mapping.split('=') +- childPath = childPath.replace(split[0].trim(), split[1].trim()) +- } +- } +- } ++// PATH + ++function resolve(parentPath, childPath) { + if (_isAbsolute(childPath)) { + return childPath; + } +diff --git a/libs/remix-ui/solidity-uml-gen/src/types/index.ts b/libs/remix-ui/solidity-uml-gen/src/types/index.ts +index a90b9340d..435930264 100644 +--- a/libs/remix-ui/solidity-uml-gen/src/types/index.ts ++++ b/libs/remix-ui/solidity-uml-gen/src/types/index.ts +@@ -1,6 +1,5 @@ + import { ViewPlugin } from '@remixproject/engine-web' + import { customAction } from '@remixproject/plugin-api' +-import type {CompilerInput} from '@remix-project/remix-solidity' + import React from 'react' + + export interface ISolidityUmlGen extends ViewPlugin { +@@ -18,7 +17,7 @@ export interface ISolidityUmlGen extends ViewPlugin { + updateComponent(state: any): JSX.Element + setDispatch(dispatch: React.Dispatch): void + generateCustomAction(action: customAction): Promise +- flattenContract (source: any, filePath: string, data: any, input: CompilerInput): Promise ++ flattenContract (source: any, filePath: string, data: any): Promise + hideSpinner(): void + renderComponent (): void + triggerGenerateUml: boolean +diff --git a/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx b/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx +index 6ea63767d..95dcedbbd 100644 +--- a/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx ++++ b/libs/remix-ui/tabs/src/lib/remix-ui-tabs.tsx +@@ -62,6 +62,7 @@ export const TabsUI = (props: TabsUIProps) => { + const currentIndexRef = useRef(-1) + const tabsRef = useRef({}) + const tabsElement = useRef(null) ++ const [ai_switch, setAI_switch] = useState(false) + + const tabs = useRef(props.tabs) + tabs.current = props.tabs // we do this to pass the tabs list to the onReady callbacks +@@ -203,6 +204,65 @@ export const TabsUI = (props: TabsUIProps) => { + + + ++ ++ ++ + }> + props.onZoomOut()}> + +diff --git a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx +index 2f5caaf9a..768a8c67c 100644 +--- a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx ++++ b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx +@@ -44,6 +44,7 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { + const [cmdHistory, cmdHistoryDispatch] = useReducer(addCommandHistoryReducer, initialState) + const [, scriptRunnerDispatch] = useReducer(registerScriptRunnerReducer, initialState) + const [toaster, setToaster] = useState(false) ++ const [aiLoading, setAILoading] = useState(false) + const [toastProvider, setToastProvider] = useState({ + show: false, + fileName: '', +@@ -103,6 +104,14 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { + setIsVM(provider.startsWith('vm-')) + }) + ++ props.plugin.on('solcoder', 'aiInfering', () => { ++ setAILoading(true) ++ }) ++ ++ props.plugin.on('solcoder', 'aiInferingDone', () => { ++ setAILoading(false) ++ }) ++ + props.onReady({ + logHtml: (html) => { + scriptRunnerDispatch({ +@@ -239,7 +248,11 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { + call('terminal', 'log',{ type: 'warn', value: `> ${script}` }) + await call('openaigpt', 'message', script) + _paq.push(['trackEvent', 'ai', 'openai', 'askFromTerminal']) +- } else { ++ } else if (script.trim().startsWith('sol-gpt')) { ++ call('terminal', 'log',{ type: 'warn', value: `> ${script}` }) ++ await call('solcoder', 'solidity_answer', script) ++ _paq.push(['trackEvent', 'ai', 'solcoder', 'askFromTerminal']) ++ }else { + await call('scriptRunner', 'execute', script) + } + done() +@@ -645,6 +658,11 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { + data-id="terminalInputSearch" + /> +
++ {aiLoading &&
++ ++ AI Running ... ++
} ++ +
+
+
+diff --git a/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx b/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx +index 24c37b400..3531b9ede 100644 +--- a/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx ++++ b/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx +@@ -57,6 +57,9 @@ const TerminalWelcomeMessage = ({packageJson, storage}) => { +
  • + gpt <your question here> {' '} +
  • ++
  • ++ sol-gpt <your Solidity question here> {' '} ++
  • + +
    + . +diff --git a/libs/remix-ui/terminal/src/lib/utils/wrapScript.ts b/libs/remix-ui/terminal/src/lib/utils/wrapScript.ts +index 26ded2f58..41d027b12 100644 +--- a/libs/remix-ui/terminal/src/lib/utils/wrapScript.ts ++++ b/libs/remix-ui/terminal/src/lib/utils/wrapScript.ts +@@ -1,5 +1,5 @@ + export const wrapScript = (script) => { +- const isKnownScript = ['remix.', 'console.', 'git', 'gpt'].some(prefix => script.trim().startsWith(prefix)) ++ const isKnownScript = ['remix.', 'console.', 'git', 'gpt', 'sol-gpt'].some(prefix => script.trim().startsWith(prefix)) + if (isKnownScript) return script + return ` + try { +diff --git a/libs/remix-ui/vyper-compile-details/src/lib/vyper-compile-details.tsx b/libs/remix-ui/vyper-compile-details/src/lib/vyper-compile-details.tsx +index cbb7353fb..63da76b41 100644 +--- a/libs/remix-ui/vyper-compile-details/src/lib/vyper-compile-details.tsx ++++ b/libs/remix-ui/vyper-compile-details/src/lib/vyper-compile-details.tsx +@@ -10,13 +10,12 @@ interface RemixUiVyperCompileDetailsProps { + } + + export function RemixUiVyperCompileDetails({ payload, theme, themeStyle }: RemixUiVyperCompileDetailsProps) { +- const compileResult = payload['compileResult'] ?? {} +- console.log('compileResult', compileResult, payload) +- const bcode = compileResult.bytecode ? compileResult.bytecode.object : '' +- const runtimeBcode = compileResult.runtimeBytecode ? compileResult.runtimeBytecode.object : '' +- const ir = compileResult.ir +- const methodIdentifiers= compileResult.methodIdentifiers +- const abi= compileResult.abi ++ const dpayload = Object.values(payload) as any ?? {} ++ const bcode = dpayload[0].bytecode ? dpayload[0].bytecode.object : '' ++ const runtimeBcode = dpayload[0].runtimeBytecode ? dpayload[0].runtimeBytecode.object : '' ++ const ir = dpayload[0].ir ++ const methodIdentifiers= dpayload[0].methodIdentifiers ++ const abi= dpayload[0].abi + return ( + <> + ('abi') + const tabContent = [ + { +diff --git a/libs/remix-ui/workspace/src/lib/components/file-explorer-hovericons.tsx b/libs/remix-ui/workspace/src/lib/components/file-explorer-hovericons.tsx +deleted file mode 100644 +index c6b299f66..000000000 +--- a/libs/remix-ui/workspace/src/lib/components/file-explorer-hovericons.tsx ++++ /dev/null +@@ -1,100 +0,0 @@ +-import React, { useState } from 'react' +-import { CustomTooltip } from '@remix-ui/helper' +-import { FormattedMessage } from 'react-intl' +- +-export type FileHoverIconsProps = { +- file: any +- handleNewFolderOp?: any +- handleNewFileOp?: any +- renamePathOp?: (path: string, type: string, isNew?: boolean) => void +- deletePathOp?: (path: string | string[]) => void | Promise +-} +- +-export function FileHoverIcons(props: FileHoverIconsProps) { +- const [mouseOver, setMouseOver] = useState(false) +- return ( +- <> +- {
    +- { +- props.file.isDirectory ? ( +- <> +- } +- tooltipId={`filePanel.createNewFolder.${props.file.path}`} +- tooltipClasses="text-nowrap" +- > +- { +- e.stopPropagation() +- await props.handleNewFolderOp(props.file.path) +- }} +- style={{ cursor: mouseOver ? 'pointer' : 'default' }} +- onMouseEnter={(e) => setMouseOver(true)} +- onMouseLeave={(e) => setMouseOver(false)} +- > +- +- } +- tooltipId={`fileExplorer.createNewFile.${props.file.path}`} +- tooltipClasses="text-nowrap" +- > +- { +- e.stopPropagation() +- await props.handleNewFileOp(props.file.path) +- }} +- style={{ cursor: mouseOver ? 'pointer' : 'default' }} +- onMouseEnter={(e) => setMouseOver(true)} +- onMouseLeave={(e) => setMouseOver(false)} +- > +- +- +- ) : null +- } +- } +- tooltipId={`filePanel.rename.${props.file.path}`} +- tooltipClasses="text-nowrap" +- > +- { +- e.stopPropagation() +- props.renamePathOp(props.file.path, props.file.type) +- }} +- style={{ cursor: mouseOver ? 'pointer' : 'default' }} +- onMouseEnter={(e) => setMouseOver(true)} +- onMouseLeave={(e) => setMouseOver(false)} +- > +- +- } +- tooltipId={`filePanel.deleteItem.${props.file.path}`} +- tooltipClasses="text-nowrap" +- > +- { +- e.stopPropagation() +- await props.deletePathOp(props.file.path) +- }} +- style={{ cursor: mouseOver ? 'pointer' : 'default' }} +- onMouseEnter={(e) => setMouseOver(true)} +- onMouseLeave={(e) => setMouseOver(false)} +- > +- +-
    +- } +- +- ) +-} +diff --git a/libs/remix-ui/workspace/src/lib/components/file-explorer.tsx b/libs/remix-ui/workspace/src/lib/components/file-explorer.tsx +index 6e2010f80..39e20428d 100644 +--- a/libs/remix-ui/workspace/src/lib/components/file-explorer.tsx ++++ b/libs/remix-ui/workspace/src/lib/components/file-explorer.tsx +@@ -1,4 +1,4 @@ +-import React, { useEffect, useState, useRef, SyntheticEvent } from 'react' // eslint-disable-line ++import React, { useEffect, useState, useRef, SyntheticEvent, useTransition } from 'react' // eslint-disable-line + import { useIntl } from 'react-intl' + import { TreeView } from '@remix-ui/tree-view' // eslint-disable-line + import { FileExplorerMenu } from './file-explorer-menu' // eslint-disable-line +@@ -27,13 +27,12 @@ export const FileExplorer = (props: FileExplorerProps) => { + handleContextMenu, + handleNewFileInput, + handleNewFolderInput, +- deletePath, + uploadFile, + uploadFolder, + fileState + } = props + const [state, setState] = useState(workspaceState) +- // const [isPending, startTransition] = useTransition(); ++ const [isPending, startTransition] = useTransition(); + const treeRef = useRef(null) + + useEffect(() => { +@@ -131,7 +130,6 @@ export const FileExplorer = (props: FileExplorerProps) => { + + const renamePath = async (oldPath: string, newPath: string) => { + try { +- if (oldPath === newPath) return + props.dispatchRenamePath(oldPath, newPath) + } catch (error) { + props.modal( +@@ -406,10 +404,6 @@ export const FileExplorer = (props: FileExplorerProps) => { + moveFile={handleFileMove} + moveFolder={handleFolderMove} + handleClickFolder={handleClickFolder} +- createNewFile={props.createNewFile} +- createNewFolder={props.createNewFolder} +- deletePath={deletePath} +- editPath={props.editModeOn} + /> +
    +
    +diff --git a/libs/remix-ui/workspace/src/lib/components/flat-tree-drop.tsx b/libs/remix-ui/workspace/src/lib/components/flat-tree-drop.tsx +index de274562f..e1d7fc72c 100644 +--- a/libs/remix-ui/workspace/src/lib/components/flat-tree-drop.tsx ++++ b/libs/remix-ui/workspace/src/lib/components/flat-tree-drop.tsx +@@ -1,4 +1,4 @@ +-import React, { SyntheticEvent, useEffect, useRef, useState } from 'react' ++import React, { SyntheticEvent, startTransition, useEffect, useRef, useState } from 'react' + import { FileType } from '../types' + import { getEventTarget } from '../utils/getEventTarget' + import { extractParentFromKey } from '@remix-ui/helper' +@@ -23,6 +23,7 @@ export const FlatTreeDrop = (props: FlatTreeDropProps) => { + const onDragOver = async (e: SyntheticEvent) => { + e.preventDefault() + const target = await getEventTarget(e) ++ + if (!target || !target.path) { + clearTimeout(timer) + setFolderToOpen(null) +@@ -35,7 +36,7 @@ export const FlatTreeDrop = (props: FlatTreeDropProps) => { + setFolderToOpen(null) + } + if (dragDestination && dragDestination.isDirectory && !expandPath.includes(dragDestination.path) && folderToOpen !== dragDestination.path && props.handleClickFolder) { +- ++ + setFolderToOpen(dragDestination.path) + timer && clearTimeout(timer) + setTimer( +@@ -60,6 +61,7 @@ export const FlatTreeDrop = (props: FlatTreeDropProps) => { + } else { + dragDestination = getFlatTreeItem(target.path) + } ++ + if (dragDestination.isDirectory) { + if (dragSource.isDirectory) { + moveFolder(dragDestination.path, dragSource.path) +@@ -82,4 +84,4 @@ export const FlatTreeDrop = (props: FlatTreeDropProps) => { + onDrop={onDrop} onDragOver={onDragOver} + className="d-flex h-100" + >{props.children}
    ) +-} ++} +\ No newline at end of file +diff --git a/libs/remix-ui/workspace/src/lib/components/flat-tree.tsx b/libs/remix-ui/workspace/src/lib/components/flat-tree.tsx +index 4bdddffe5..f86cd2873 100644 +--- a/libs/remix-ui/workspace/src/lib/components/flat-tree.tsx ++++ b/libs/remix-ui/workspace/src/lib/components/flat-tree.tsx +@@ -7,8 +7,6 @@ import { FlatTreeItemInput } from './flat-tree-item-input'; + import { FlatTreeDrop } from './flat-tree-drop'; + import { getEventTarget } from '../utils/getEventTarget'; + import { fileDecoration, FileDecorationIcons } from '@remix-ui/file-decorators'; +-import { FileHoverIcons } from './file-explorer-hovericons'; +-import { deletePath } from '../actions'; + + export default function useOnScreen(ref: RefObject) { + +@@ -38,10 +36,6 @@ interface FlatTreeProps { + moveFile: (dest: string, src: string) => void + moveFolder: (dest: string, src: string) => void + fileState: fileDecoration[] +- createNewFile?: any +- createNewFolder?: any +- deletePath?: (path: string | string[]) => void | Promise +- editPath?: (path: string, type: string, isNew?: boolean) => void + } + + let mouseTimer: any = { +@@ -50,7 +44,7 @@ let mouseTimer: any = { + } + + export const FlatTree = (props: FlatTreeProps) => { +- const { files, flatTree, expandPath, focusEdit, editModeOff, handleTreeClick, moveFile, moveFolder, fileState, focusElement, handleClickFolder, deletePath, editPath } = props ++ const { files, flatTree, expandPath, focusEdit, editModeOff, handleTreeClick, moveFile, moveFolder, fileState, focusElement, handleClickFolder } = props + const [hover, setHover] = useState('') + const [mouseOverTarget, setMouseOverTarget] = useState<{ + path: string, +@@ -184,62 +178,42 @@ export const FlatTree = (props: FlatTreeProps) => { + } + }, [focusEdit]) + +- const showIcons = (file: FileType) => +- file.path === hover && !isDragging ? ( +-
    +- +-
    +- ) : null + + const Row = (index: number) => { + const node = Object.keys(flatTree)[index] + const file = flatTree[node] +- return ( +-
  • { +- setHover(file.path) +- }} +- onMouseOut={() => { +- setHover('') +- }} +- data-type={file.isDirectory ? 'folder' : 'file'} +- data-path={`${file.path}`} +- data-id={`treeViewLitreeViewItem${file.path}`} +- > +-
    +- {getIndentLevelDiv(file.path)} ++ return (
  • setHover(file.path)} ++ onMouseOut={() => setHover(file.path)} ++ data-type={file.isDirectory ? 'folder' : 'file'} ++ data-path={`${file.path}`} ++ data-id={`treeViewLitreeViewItem${file.path}`} ++ > ++
    ++ {getIndentLevelDiv(file.path)} + +-
    +- {focusEdit && file.path && focusEdit.element === file.path ? +- : +- <>
    +- {file.name} +-
    +-
    +- {showIcons(file)} +- {getFileStateIcons(file)} +-
    +- +- } +-
    +-
  • ) ++
    ++ {focusEdit && file.path && focusEdit.element === file.path ? ++ : ++ <>
    ++ {file.name} ++ ++
    ++ {getFileStateIcons(file)} ++ ++ } ++
    ++ ) + } + + return (<> +diff --git a/libs/remix-ui/workspace/src/lib/css/file-explorer.css b/libs/remix-ui/workspace/src/lib/css/file-explorer.css +index 16f0ffca5..c49a0a54a 100644 +--- a/libs/remix-ui/workspace/src/lib/css/file-explorer.css ++++ b/libs/remix-ui/workspace/src/lib/css/file-explorer.css +@@ -60,12 +60,4 @@ ul { + [contenteditable] { + -webkit-user-select: text; + user-select: text; +-} +- +-.remixui_icons { +- +-} +- +-.remixui_icons:hover { +- color: var(--text); +-} ++} +\ No newline at end of file +diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +index e71d94ffd..400aa1de2 100644 +--- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx ++++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +@@ -796,7 +796,7 @@ export function Workspace() { + + ++ + +
    +
    + {(platform !== appPlatformTypes.desktop) ? ( +@@ -1063,7 +1063,7 @@ export function Workspace() { +
    + + +- ++ +
    { +@@ -1077,7 +1077,7 @@ export function Workspace() { +
    + )} + {!(global.fs.browser.isRequestingWorkspace || global.fs.browser.isRequestingCloning) && global.fs.mode === 'browser' && currentWorkspace !== NO_WORKSPACE && ( +- ++ + +- ++ + )} + {global.fs.localhost.isRequestingLocalhost && ( +
    +@@ -1192,10 +1188,6 @@ export function Workspace() { + editModeOn={editModeOn} + handleNewFileInput={handleNewFileInput} + handleNewFolderInput={handleNewFolderInput} +- createNewFile={handleNewFileInput} +- createNewFolder={handleNewFolderInput} +- deletePath={deletePath} +- renamePath={editModeOn} + dragStatus={dragStatus} + /> + )} +@@ -1207,11 +1199,11 @@ export function Workspace() { +
    +
    +
    GIT
    +- {selectedWorkspace.hasGitSubmodules? ++ {selectedWorkspace.hasGitSubmodules? +
    + {global.fs.browser.isRequestingCloning ?
    updating submodules
    : +
    update submodules
    } +-
    ++
    + : null} +
    + +diff --git a/libs/remix-ui/workspace/src/lib/types/index.ts b/libs/remix-ui/workspace/src/lib/types/index.ts +index 313f7a5dd..14ff7864d 100644 +--- a/libs/remix-ui/workspace/src/lib/types/index.ts ++++ b/libs/remix-ui/workspace/src/lib/types/index.ts +@@ -130,10 +130,6 @@ export interface FileExplorerProps { + toGist: (path?: string, type?: string) => void + handleNewFileInput: (parentFolder?: string) => Promise + handleNewFolderInput: (parentFolder?: string) => Promise +- deletePath?: (path: string[]) => Promise +- createNewFile:(parentFolder?: string) => Promise +- createNewFolder:(parentFolder?: string) => Promise +- renamePath:(path: string, type: string, isNew?: boolean) => void + dragStatus: (status: boolean) => void + } + +diff --git a/libs/remix-url-resolver/package.json b/libs/remix-url-resolver/package.json +index faa7e61e0..0609c7ddb 100644 +--- a/libs/remix-url-resolver/package.json ++++ b/libs/remix-url-resolver/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-url-resolver", +- "version": "0.0.71", ++ "version": "0.0.70", + "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": "817089ab1f206f5e195756a4051afb812ec26901" ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca" + } +\ No newline at end of file +diff --git a/libs/remix-ws-templates/package.json b/libs/remix-ws-templates/package.json +index ad6b73cc0..6b511fa80 100644 +--- a/libs/remix-ws-templates/package.json ++++ b/libs/remix-ws-templates/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remix-ws-templates", +- "version": "1.0.36", ++ "version": "1.0.35", + "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": "817089ab1f206f5e195756a4051afb812ec26901" ++ "gitHead": "24416dcc55a6c0d26ee589ec10e4fce98daf2aca" + } +\ No newline at end of file +diff --git a/libs/remixd/package.json b/libs/remixd/package.json +index d75083115..8272a24d2 100644 +--- a/libs/remixd/package.json ++++ b/libs/remixd/package.json +@@ -1,6 +1,6 @@ + { + "name": "@remix-project/remixd", +- "version": "0.6.26", ++ "version": "0.6.24", + "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", +diff --git a/package.json b/package.json +index fdef679bf..f90be37d0 100644 +--- a/package.json ++++ b/package.json +@@ -1,6 +1,6 @@ + { + "name": "remix-project", +- "version": "0.44.0-dev", ++ "version": "0.43.0-dev", + "license": "MIT", + "description": "Ethereum Remix Monorepo", + "main": "index.js", +@@ -136,6 +136,7 @@ + "@ethereumjs/util": "^8.0.5", + "@ethereumjs/vm": "^6.4.1", + "@ethersphere/bee-js": "^3.2.0", ++ "@gradio/client": "^0.10.1", + "@isomorphic-git/lightning-fs": "^4.4.1", + "@microlink/react-json-view": "^1.23.0", + "@openzeppelin/contracts": "^5.0.0", +@@ -152,7 +153,8 @@ + "@remixproject/plugin-ws": "0.3.42", + "@ricarso/react-image-magnifiers": "^1.9.0", + "@types/nightwatch": "^2.3.1", +- "@web3modal/ethers5": "^4.0.1", ++ "@web3modal/ethereum": "^2.7.1", ++ "@web3modal/react": "^2.6.2", + "@xenova/transformers": "^2.7.0", + "ansi-gray": "^0.1.1", + "assert": "^2.1.0", +@@ -233,6 +235,8 @@ + "tree-kill": "^1.2.2", + "ts-loader": "^9.2.6", + "tslib": "^2.3.0", ++ "viem": "^1.6.0", ++ "wagmi": "^1.3.10", + "web3": "^4.1.0", + "winston": "^3.3.3", + "ws": "^7.3.0", +diff --git a/releaseDetails.json b/releaseDetails.json +index dd4041968..e6cf4b762 100644 +--- a/releaseDetails.json ++++ b/releaseDetails.json +@@ -1,10 +1,10 @@ + { +- "version": "v0.43.0", ++ "version": "v0.42.0", + "title": "RELEASE HIGHLIGHTS", +- "highlight1": "File Explorer and Vyper compiler comes with a better user interface", +- "highlight2": "Update Wallet Connect to the latest version", +- "highlight3": "", ++ "highlight1": "Ask GPT for circom ZKP compiler errors/warnings", ++ "highlight2": "Default Solidity compiler set to 0.8.24 with support of 'Cancun' EVM", ++ "highlight3": "Workspace Template 'Uniswap v4 Periphery' renamed to 'Uniswap v4 Template'", + "highlight4": "", + "more": "Read More", +- "moreLink": "https://medium.com/remix-ide/remix-release-v0-43-0-1150e59a81df?source=friends_link&sk=4965f88ef43b297c4350f3a749083cfb" +- } ++ "moreLink": "https://medium.com/remix-ide/remix-release-v0-42-0-56ec48a49ae0" ++ } +\ No newline at end of file +diff --git a/yarn.lock b/yarn.lock +index ce81affdb..06c0741ba 100644 +--- a/yarn.lock ++++ b/yarn.lock +@@ -7,6 +7,11 @@ + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + ++"@adraffy/ens-normalize@1.9.0": ++ version "1.9.0" ++ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d" ++ integrity sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ== ++ + "@adraffy/ens-normalize@^1.8.8": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.4.tgz#aae21cb858bbb0411949d5b7b3051f4209043f62" +@@ -729,11 +734,6 @@ + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" + integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== + +-"@babel/parser@^7.23.6": +- version "7.23.6" +- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" +- integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== +- + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" +@@ -1670,6 +1670,13 @@ + dependencies: + regenerator-runtime "^0.13.4" + ++"@babel/runtime@^7.17.2": ++ version "7.21.0" ++ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" ++ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== ++ dependencies: ++ regenerator-runtime "^0.13.11" ++ + "@babel/runtime@^7.18.9": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" +@@ -1871,20 +1878,28 @@ + "@chainsafe/persistent-merkle-tree" "^0.4.2" + case "^1.6.3" + +-"@coinbase/wallet-sdk@3.9.1": +- version "3.9.1" +- resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.9.1.tgz#503a14671bb392d653623ef2340934e213ac971f" +- integrity sha512-cGUE8wm1/cMI8irRMVOqbFWYcnNugqCtuy2lnnHfgloBg+GRLs9RsrkOUDMdv/StfUeeKhCDyYudsXXvcL1xIA== ++"@coinbase/wallet-sdk@^3.6.6": ++ version "3.7.1" ++ resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.7.1.tgz#44b3b7a925ff5cc974e4cbf7a44199ffdcf03541" ++ integrity sha512-LjyoDCB+7p0waQXfK+fUgcAs3Ezk6S6e+LYaoFjpJ6c9VTop3NyZF40Pi7df4z7QJohCwzuIDjz0Rhtig6Y7Pg== + dependencies: +- bn.js "^5.2.1" ++ "@metamask/safe-event-emitter" "2.0.0" ++ "@solana/web3.js" "^1.70.1" ++ bind-decorator "^1.0.11" ++ bn.js "^5.1.1" + buffer "^6.0.3" +- clsx "^1.2.1" +- eth-block-tracker "^7.1.0" +- eth-json-rpc-filters "^6.0.0" +- eventemitter3 "^5.0.1" +- keccak "^3.0.3" +- preact "^10.16.0" ++ clsx "^1.1.0" ++ eth-block-tracker "6.1.0" ++ eth-json-rpc-filters "5.1.0" ++ eth-rpc-errors "4.0.2" ++ json-rpc-engine "6.1.0" ++ keccak "^3.0.1" ++ preact "^10.5.9" ++ qs "^6.10.3" ++ rxjs "^6.6.3" + sha.js "^2.4.11" ++ stream-browserify "^3.0.0" ++ util "^0.12.4" + + "@cspotcode/source-map-support@^0.8.0": + version "0.8.1" +@@ -2323,14 +2338,6 @@ + "@ethereumjs/util" "^8.0.6" + crc-32 "^1.2.0" + +-"@ethereumjs/common@^3.2.0": +- version "3.2.0" +- resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-3.2.0.tgz#b71df25845caf5456449163012074a55f048e0a0" +- integrity sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== +- dependencies: +- "@ethereumjs/util" "^8.1.0" +- crc-32 "^1.2.0" +- + "@ethereumjs/ethash@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/ethash/-/ethash-2.0.5.tgz#577b9d470eea6b61f77d624b58ac90929d6e857d" +@@ -2396,16 +2403,6 @@ + "@ethereumjs/util" "^8.0.6" + ethereum-cryptography "^2.0.0" + +-"@ethereumjs/tx@^4.2.0": +- version "4.2.0" +- resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-4.2.0.tgz#5988ae15daf5a3b3c815493bc6b495e76009e853" +- integrity sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== +- dependencies: +- "@ethereumjs/common" "^3.2.0" +- "@ethereumjs/rlp" "^4.0.1" +- "@ethereumjs/util" "^8.1.0" +- ethereum-cryptography "^2.0.0" +- + "@ethereumjs/util@^8.0.5", "@ethereumjs/util@^8.0.6": + version "8.0.6" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.0.6.tgz#f9716ed34235ea05eff8353bc5d483e5a6455989" +@@ -2416,15 +2413,6 @@ + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + +-"@ethereumjs/util@^8.1.0": +- version "8.1.0" +- resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" +- integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== +- dependencies: +- "@ethereumjs/rlp" "^4.0.1" +- ethereum-cryptography "^2.0.0" +- micro-ftch "^0.3.1" +- + "@ethereumjs/vm@^6.4.1": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/vm/-/vm-6.4.2.tgz#9898105a96f0975d561db69319331944db4bfafc" +@@ -2964,6 +2952,15 @@ + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + ++"@gradio/client@^0.10.1": ++ version "0.10.1" ++ resolved "https://registry.yarnpkg.com/@gradio/client/-/client-0.10.1.tgz#cdd90efbc0156d8e338af61031d2c88f21134f11" ++ integrity sha512-C3uWIWEqlpTuG3sfPw3K3+26Fkr+jXPL8U2lC1u7DlBm25rHdGMVX17o8ApW7XcFtznfaLceVtpnDPkDpQTJlw== ++ dependencies: ++ bufferutil "^4.0.7" ++ semiver "^1.1.0" ++ ws "^8.13.0" ++ + "@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" +@@ -2996,11 +2993,6 @@ + fastfile "0.0.20" + ffjavascript "^0.2.48" + +-"@ioredis/commands@^1.1.1": +- version "1.2.0" +- resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" +- integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== +- + "@isomorphic-git/idb-keyval@3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@isomorphic-git/idb-keyval/-/idb-keyval-3.3.2.tgz#c0509a6c5987d8a62efb3e47f2815bcc5eda2489" +@@ -3259,11 +3251,6 @@ + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +-"@jridgewell/sourcemap-codec@^1.4.15": +- version "1.4.15" +- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" +- integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +- + "@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" +@@ -3295,6 +3282,11 @@ + dependencies: + glob-to-regexp "^0.4.1" + ++"@ledgerhq/connect-kit-loader@^1.1.0": ++ version "1.1.0" ++ resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.0.tgz#10343b78ef13436818bf3453568a559c0eeb9d48" ++ integrity sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg== ++ + "@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" +@@ -3985,25 +3977,23 @@ + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +-"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0", "@lit-labs/ssr-dom-shim@^1.1.2": +- version "1.1.2" +- resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" +- integrity sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g== ++"@lit-labs/ssr-dom-shim@^1.0.0": ++ version "1.0.0" ++ resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz#427e19a2765681fd83411cd72c55ba80a01e0523" ++ integrity sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw== ++ ++"@lit-labs/ssr-dom-shim@^1.1.0": ++ version "1.1.1" ++ resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" ++ integrity sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ== + + "@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": +- version "1.6.3" +- resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" +- integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== ++ version "1.6.1" ++ resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.1.tgz#0d958b6d479d0e3db5fc1132ecc4fa84be3f0b93" ++ integrity sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + +-"@lit/reactive-element@^2.0.0": +- version "2.0.3" +- resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-2.0.3.tgz#29d7d4ee8d9b00804be957cc6937577eb4d3db63" +- integrity sha512-e067EuTNNgOHm1tZcc0Ia7TCzD/9ZpoPegHKgesrGK6pSDRGkGDAQbYuQclqLPIoJ9eC8Kb9mYtGryWcM5AywA== +- dependencies: +- "@lit-labs/ssr-dom-shim" "^1.1.2" +- + "@malept/cross-spawn-promise@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" +@@ -4018,15 +4008,6 @@ + dependencies: + cross-spawn "^7.0.1" + +-"@metamask/eth-json-rpc-provider@^1.0.0": +- version "1.0.1" +- resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz#3fd5316c767847f4ca107518b611b15396a5a32c" +- integrity sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA== +- dependencies: +- "@metamask/json-rpc-engine" "^7.0.0" +- "@metamask/safe-event-emitter" "^3.0.0" +- "@metamask/utils" "^5.0.1" +- + "@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" +@@ -4038,58 +4019,21 @@ + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +-"@metamask/json-rpc-engine@^7.0.0": +- version "7.3.2" +- resolved "https://registry.yarnpkg.com/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.2.tgz#e8f0695811619eef7b7c894ba5cf782db9f1c2cb" +- integrity sha512-dVjBPlni4CoiBpESVqrxh6k4OR14w6GRXKSSXHFuITjuhALE42gNCkXTpL4cjNeOBUgTba3eGe5EI8cyc2QLRg== +- dependencies: +- "@metamask/rpc-errors" "^6.1.0" +- "@metamask/safe-event-emitter" "^3.0.0" +- "@metamask/utils" "^8.3.0" +- +-"@metamask/rpc-errors@^6.1.0": +- version "6.1.0" +- resolved "https://registry.yarnpkg.com/@metamask/rpc-errors/-/rpc-errors-6.1.0.tgz#dfdef7cba4b9ad01ca3f99e990b5980575b89b4f" +- integrity sha512-JQElKxai26FpDyRKO/yH732wI+BV90i1u6pOuDOpdADSbppB2g1pPh3AGST1zkZqEE9eIKIUw8UdBQ4rp3VTSg== +- dependencies: +- "@metamask/utils" "^8.1.0" +- fast-safe-stringify "^2.0.6" +- +-"@metamask/safe-event-emitter@^2.0.0": ++"@metamask/safe-event-emitter@2.0.0", "@metamask/safe-event-emitter@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" + integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== + +-"@metamask/safe-event-emitter@^3.0.0": +- version "3.0.0" +- resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.0.0.tgz#8c2b9073fe0722d48693143b0dc8448840daa3bd" +- integrity sha512-j6Z47VOmVyGMlnKXZmL0fyvWfEYtKWCA9yGZkU3FCsGZUT5lHGmvaV9JA5F2Y+010y7+ROtR3WMXIkvl/nVzqQ== +- +-"@metamask/utils@^5.0.1": +- version "5.0.2" +- resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-5.0.2.tgz#140ba5061d90d9dac0280c19cab101bc18c8857c" +- integrity sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== ++"@metamask/utils@^3.0.1": ++ version "3.6.0" ++ resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-3.6.0.tgz#b218b969a05ca7a8093b5d1670f6625061de707d" ++ integrity sha512-9cIRrfkWvHblSiNDVXsjivqa9Ak0RYo/1H6tqTqTbAx+oBK2Sva0lWDHxGchOqA7bySGUJKAWSNJvH6gdHZ0gQ== + dependencies: +- "@ethereumjs/tx" "^4.1.2" + "@types/debug" "^4.1.7" + debug "^4.3.4" + semver "^7.3.8" + superstruct "^1.0.3" + +-"@metamask/utils@^8.1.0", "@metamask/utils@^8.3.0": +- version "8.3.0" +- resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-8.3.0.tgz#a20de447aeb9ffb75924d822a186a597033984b6" +- integrity sha512-WFVcMPEkKKRCJ8DDkZUTVbLlpwgRn98F4VM/WzN89HM8PmHMnCyk/oG0AmK/seOxtik7uC7Bbi2YBC5Z5XB2zw== +- dependencies: +- "@ethereumjs/tx" "^4.2.0" +- "@noble/hashes" "^1.3.1" +- "@scure/base" "^1.1.3" +- "@types/debug" "^4.1.7" +- debug "^4.3.4" +- pony-cause "^2.1.10" +- semver "^7.5.4" +- superstruct "^1.0.3" +- + "@microlink/react-json-view@^1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@microlink/react-json-view/-/react-json-view-1.23.0.tgz#641c2483b1a0014818303d4e9cce634d5dacc7e9" +@@ -4114,73 +4058,73 @@ + dependencies: + "@monaco-editor/loader" "^1.4.0" + +-"@motionone/animation@^10.15.1", "@motionone/animation@^10.17.0": +- version "10.17.0" +- resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.17.0.tgz#7633c6f684b5fee2b61c405881b8c24662c68fca" +- integrity sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== ++"@motionone/animation@^10.15.1": ++ version "10.15.1" ++ resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.15.1.tgz#4a85596c31cbc5100ae8eb8b34c459fb0ccf6807" ++ integrity sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ== + dependencies: +- "@motionone/easing" "^10.17.0" +- "@motionone/types" "^10.17.0" +- "@motionone/utils" "^10.17.0" ++ "@motionone/easing" "^10.15.1" ++ "@motionone/types" "^10.15.1" ++ "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + +-"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": +- version "10.17.0" +- resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.17.0.tgz#519dd78aab0750a94614c69a82da5290cd617383" +- integrity sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== ++"@motionone/dom@^10.16.2": ++ version "10.16.2" ++ resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.2.tgz#0c44df8ee3d1cfc50ee11d27050b27824355a61a" ++ integrity sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg== + dependencies: +- "@motionone/animation" "^10.17.0" +- "@motionone/generators" "^10.17.0" +- "@motionone/types" "^10.17.0" +- "@motionone/utils" "^10.17.0" ++ "@motionone/animation" "^10.15.1" ++ "@motionone/generators" "^10.15.1" ++ "@motionone/types" "^10.15.1" ++ "@motionone/utils" "^10.15.1" + hey-listen "^1.0.8" + tslib "^2.3.1" + +-"@motionone/easing@^10.17.0": +- version "10.17.0" +- resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.17.0.tgz#d66cecf7e3ee30104ad00389fb3f0b2282d81aa9" +- integrity sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== ++"@motionone/easing@^10.15.1": ++ version "10.15.1" ++ resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.15.1.tgz#95cf3adaef34da6deebb83940d8143ede3deb693" ++ integrity sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw== + dependencies: +- "@motionone/utils" "^10.17.0" ++ "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + +-"@motionone/generators@^10.17.0": +- version "10.17.0" +- resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.17.0.tgz#878d292539c41434c13310d5f863a87a94e6e689" +- integrity sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== ++"@motionone/generators@^10.15.1": ++ version "10.15.1" ++ resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.15.1.tgz#dc6abb11139d1bafe758a41c134d4c753a9b871c" ++ integrity sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ== + dependencies: +- "@motionone/types" "^10.17.0" +- "@motionone/utils" "^10.17.0" ++ "@motionone/types" "^10.15.1" ++ "@motionone/utils" "^10.15.1" + tslib "^2.3.1" + + "@motionone/svelte@^10.16.2": +- version "10.16.4" +- resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" +- integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== ++ version "10.16.2" ++ resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.2.tgz#0b37c3b12927814d31d24941d1ca0ff49981b444" ++ integrity sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q== + dependencies: +- "@motionone/dom" "^10.16.4" ++ "@motionone/dom" "^10.16.2" + tslib "^2.3.1" + +-"@motionone/types@^10.15.1", "@motionone/types@^10.17.0": +- version "10.17.0" +- resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.0.tgz#179571ce98851bac78e19a1c3974767227f08ba3" +- integrity sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== ++"@motionone/types@^10.15.1": ++ version "10.15.1" ++ resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.15.1.tgz#89441b54285012795cbba8612cbaa0fa420db3eb" ++ integrity sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA== + +-"@motionone/utils@^10.15.1", "@motionone/utils@^10.17.0": +- version "10.17.0" +- resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.17.0.tgz#cc0ba8acdc6848ff48d8c1f2d0d3e7602f4f942e" +- integrity sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== ++"@motionone/utils@^10.15.1": ++ version "10.15.1" ++ resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.15.1.tgz#6b5f51bde75be88b5411e084310299050368a438" ++ integrity sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw== + dependencies: +- "@motionone/types" "^10.17.0" ++ "@motionone/types" "^10.15.1" + hey-listen "^1.0.8" + tslib "^2.3.1" + + "@motionone/vue@^10.16.2": +- version "10.16.4" +- resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" +- integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== ++ version "10.16.2" ++ resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.2.tgz#faf13afc27620a2df870c71c58a04ee8de8dea65" ++ integrity sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw== + dependencies: +- "@motionone/dom" "^10.16.4" ++ "@motionone/dom" "^10.16.2" + tslib "^2.3.1" + + "@mrmlnc/readdir-enhanced@^2.2.1": +@@ -4220,22 +4164,34 @@ + dependencies: + "@noble/hashes" "1.3.0" + ++"@noble/curves@1.1.0": ++ version "1.1.0" ++ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" ++ integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== ++ dependencies: ++ "@noble/hashes" "1.3.1" ++ ++"@noble/ed25519@^1.7.0": ++ version "1.7.3" ++ resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" ++ integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== ++ + "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== + +-"@noble/hashes@1.3.0", "@noble/hashes@^1.3.0", "@noble/hashes@~1.3.0": ++"@noble/hashes@1.3.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.3.0", "@noble/hashes@~1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" + integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + +-"@noble/hashes@^1.3.1": +- version "1.3.3" +- resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" +- integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== ++"@noble/hashes@1.3.1": ++ version "1.3.1" ++ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" ++ integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + +-"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": ++"@noble/secp256k1@1.7.1", "@noble/secp256k1@^1.6.3", "@noble/secp256k1@~1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== +@@ -5144,75 +5100,6 @@ + dependencies: + array.prototype.flatmap "^1.2.4" + +-"@parcel/watcher-android-arm64@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz#9c93763794153e4f76920994a423b6ea3257059d" +- integrity sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA== +- +-"@parcel/watcher-darwin-arm64@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz#2c79c2abde16aa24cac67e555b60802fd13fe210" +- integrity sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA== +- +-"@parcel/watcher-darwin-x64@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz#23d82f198c5d033f047467c68d7c335f3df49b46" +- integrity sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q== +- +-"@parcel/watcher-freebsd-x64@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz#7310cc86abc27dacd57624bcdba1f0ba092e76df" +- integrity sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA== +- +-"@parcel/watcher-linux-arm-glibc@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz#c31b76e695027eeb1078d3d6f1d641d0b900c335" +- integrity sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ== +- +-"@parcel/watcher-linux-arm64-glibc@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz#56e09b86e9d8a4096f606be118b588da6e965080" +- integrity sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg== +- +-"@parcel/watcher-linux-arm64-musl@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz#27ffd5ca5f510ecd638f9ad22e2e813049db54e7" +- integrity sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng== +- +-"@parcel/watcher-linux-x64-glibc@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz#44cbbb1e5884a1ca900655f47a0775218318f934" +- integrity sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ== +- +-"@parcel/watcher-linux-x64-musl@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz#4c33993618c8d5113722852806239cb80360494b" +- integrity sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA== +- +-"@parcel/watcher-wasm@2.3.0": +- version "2.3.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz#73b66c6fbd2a3326ae86a1ec77eab7139d0dd725" +- integrity sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA== +- dependencies: +- is-glob "^4.0.3" +- micromatch "^4.0.5" +- napi-wasm "^1.1.0" +- +-"@parcel/watcher-win32-arm64@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz#2a172fd2fda95fe5389298ca3e70b5a96316162a" +- integrity sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg== +- +-"@parcel/watcher-win32-ia32@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz#279225b2ebe1fadd3c5137c9b2365ad422656904" +- integrity sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA== +- +-"@parcel/watcher-win32-x64@2.4.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz#93e0bd0ad1bda2c9a688764b9b30b71dc5b72a71" +- integrity sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA== +- + "@parcel/watcher@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" +@@ -5221,29 +5108,6 @@ + node-addon-api "^3.2.1" + node-gyp-build "^4.3.0" + +-"@parcel/watcher@^2.3.0": +- version "2.4.0" +- resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.0.tgz#2d3c4ef8832a5cdfdbb76b914f022489933e664f" +- integrity sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg== +- dependencies: +- detect-libc "^1.0.3" +- is-glob "^4.0.3" +- micromatch "^4.0.5" +- node-addon-api "^7.0.0" +- optionalDependencies: +- "@parcel/watcher-android-arm64" "2.4.0" +- "@parcel/watcher-darwin-arm64" "2.4.0" +- "@parcel/watcher-darwin-x64" "2.4.0" +- "@parcel/watcher-freebsd-x64" "2.4.0" +- "@parcel/watcher-linux-arm-glibc" "2.4.0" +- "@parcel/watcher-linux-arm64-glibc" "2.4.0" +- "@parcel/watcher-linux-arm64-musl" "2.4.0" +- "@parcel/watcher-linux-x64-glibc" "2.4.0" +- "@parcel/watcher-linux-x64-musl" "2.4.0" +- "@parcel/watcher-win32-arm64" "2.4.0" +- "@parcel/watcher-win32-ia32" "2.4.0" +- "@parcel/watcher-win32-x64" "2.4.0" +- + "@phenomnomnominal/tsquery@4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz#42971b83590e9d853d024ddb04a18085a36518df" +@@ -5511,10 +5375,28 @@ + estree-walker "^2.0.1" + picomatch "^2.2.2" + +-"@scure/base@^1.1.3": +- version "1.1.5" +- resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" +- integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== ++"@safe-global/safe-apps-provider@^0.17.1": ++ version "0.17.1" ++ resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.17.1.tgz#72df2a66be5343940ed505efe594ed3b0f2f7015" ++ integrity sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ== ++ dependencies: ++ "@safe-global/safe-apps-sdk" "8.0.0" ++ events "^3.3.0" ++ ++"@safe-global/safe-apps-sdk@8.0.0", "@safe-global/safe-apps-sdk@^8.0.0": ++ version "8.0.0" ++ resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-sdk/-/safe-apps-sdk-8.0.0.tgz#9bdfe0e0d85e1b2d279bb840f40c4b930aaf8bc1" ++ integrity sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw== ++ dependencies: ++ "@safe-global/safe-gateway-typescript-sdk" "^3.5.3" ++ viem "^1.0.0" ++ ++"@safe-global/safe-gateway-typescript-sdk@^3.5.3": ++ version "3.7.0" ++ resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.7.0.tgz#2af52f1bc73759b1b6a549fed598781c8c5fce72" ++ integrity sha512-3BvlUgp0oZ1Zkn7nG3wY1jvCEE4t530BjKcaa3r0qsf0whf/ez/0gmQwk7DTOGmVmvOfjj6HHikxnrUCCX+/3Q== ++ dependencies: ++ cross-fetch "^3.1.5" + + "@scure/base@~1.1.0": + version "1.1.1" +@@ -5657,6 +5539,35 @@ + dependencies: + "@sinonjs/commons" "^1.7.0" + ++"@solana/buffer-layout@^4.0.0": ++ version "4.0.1" ++ resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" ++ integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== ++ dependencies: ++ buffer "~6.0.3" ++ ++"@solana/web3.js@^1.70.1": ++ version "1.74.0" ++ resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.74.0.tgz#dbcbeabb830dd7cbbcf5e31404ca79c9785cbf2d" ++ integrity sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg== ++ dependencies: ++ "@babel/runtime" "^7.12.5" ++ "@noble/ed25519" "^1.7.0" ++ "@noble/hashes" "^1.1.2" ++ "@noble/secp256k1" "^1.6.3" ++ "@solana/buffer-layout" "^4.0.0" ++ agentkeepalive "^4.2.1" ++ bigint-buffer "^1.1.5" ++ bn.js "^5.0.0" ++ borsh "^0.7.0" ++ bs58 "^4.0.1" ++ buffer "6.0.1" ++ fast-stable-stringify "^1.0.0" ++ jayson "^3.4.4" ++ node-fetch "^2.6.7" ++ rpc-websockets "^7.5.1" ++ superstruct "^0.14.2" ++ + "@solidity-parser/parser@^0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.3.tgz#0d627427b35a40d8521aaa933cc3df7d07bfa36f" +@@ -5925,6 +5836,40 @@ + dependencies: + defer-to-connect "^2.0.0" + ++"@tanstack/query-core@4.29.19": ++ version "4.29.19" ++ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.29.19.tgz#49ccbd0606633d1e55baf3b91ab7cc7aef411b1d" ++ integrity sha512-uPe1DukeIpIHpQi6UzIgBcXsjjsDaLnc7hF+zLBKnaUlh7jFE/A+P8t4cU4VzKPMFB/C970n/9SxtpO5hmIRgw== ++ ++"@tanstack/query-persist-client-core@4.29.19": ++ version "4.29.19" ++ resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.29.19.tgz#c0cd03eca74d33e5aa40c95cadd5585620ff2320" ++ integrity sha512-rr6p3xwEZCz3cEDZsj3QGePf6PG44WxRUGQVcm2JFPZOq9TkG/0i5+hQ3STiHm1Fj6qwCH8xIi62L8kG0zRj/Q== ++ dependencies: ++ "@tanstack/query-core" "4.29.19" ++ ++"@tanstack/query-sync-storage-persister@^4.27.1": ++ version "4.29.19" ++ resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.29.19.tgz#292d33cdc9b38b11127f2f07b1935a73039cbba4" ++ integrity sha512-B3wDl3D3YBFTlY2yeXecEh4NEG/8Hr8pqsxnWJijRwBqvOKlqD4bUgk5kl5nbn1mShD2vnQ+yvH900/11X29Zw== ++ dependencies: ++ "@tanstack/query-persist-client-core" "4.29.19" ++ ++"@tanstack/react-query-persist-client@^4.28.0": ++ version "4.29.19" ++ resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.29.19.tgz#27b24ec5c8983894d6f23450e2f922d07f47706f" ++ integrity sha512-LfcasTosdnI9K66HTP0Rk72Ypza3tCgrcF9bc2qFlKsBleYOYo8bz7/GiiOHj1SQH4GRQlKB+P4+/it+qlJg4g== ++ dependencies: ++ "@tanstack/query-persist-client-core" "4.29.19" ++ ++"@tanstack/react-query@^4.28.0": ++ version "4.29.19" ++ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.29.19.tgz#6ba187f2d0ea36ae83ff1f67068f53c88ce7b228" ++ integrity sha512-XiTIOHHQ5Cw1WUlHaD4fmVUMhoWjuNJlAeJGq7eM4BraI5z7y8WkZO+NR8PSuRnQGblpuVdjClQbDFtwxTtTUw== ++ dependencies: ++ "@tanstack/query-core" "4.29.19" ++ use-sync-external-store "^1.2.0" ++ + "@testing-library/dom@^8.5.0": + version "8.19.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.19.0.tgz#bd3f83c217ebac16694329e413d9ad5fdcfd785f" +@@ -6117,27 +6062,20 @@ + "@types/express-serve-static-core" "*" + "@types/node" "*" + +-"@types/connect@*": ++"@types/connect@*", "@types/connect@^3.4.33": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +-"@types/debug@^4.0.0": ++"@types/debug@^4.0.0", "@types/debug@^4.1.7": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +-"@types/debug@^4.1.7": +- version "4.1.12" +- resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" +- integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== +- dependencies: +- "@types/ms" "*" +- + "@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" +@@ -6396,6 +6334,11 @@ + dependencies: + undici-types "~5.26.4" + ++"@types/node@^12.12.54": ++ version "12.20.55" ++ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" ++ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== ++ + "@types/node@^18.11.18": + version "18.16.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.16.tgz#3b64862856c7874ccf7439e6bab872d245c86d8e" +@@ -6650,9 +6593,9 @@ + integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== + + "@types/trusted-types@^2.0.2": +- version "2.0.7" +- resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" +- integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== ++ version "2.0.3" ++ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" ++ integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + + "@types/unist@*", "@types/unist@^2.0.0": + version "2.0.6" +@@ -6671,13 +6614,20 @@ + dependencies: + "@types/node" "*" + +-"@types/ws@^7.2.4": ++"@types/ws@^7.2.4", "@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + ++"@types/ws@^8.5.4": ++ version "8.5.5" ++ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" ++ integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== ++ dependencies: ++ "@types/node" "*" ++ + "@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" +@@ -6801,108 +6751,91 @@ + dependencies: + resolve "^1.10.0" + +-"@vue/compiler-core@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" +- integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== +- dependencies: +- "@babel/parser" "^7.23.6" +- "@vue/shared" "3.4.15" +- entities "^4.5.0" +- estree-walker "^2.0.2" +- source-map-js "^1.0.2" +- +-"@vue/compiler-dom@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" +- integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== +- dependencies: +- "@vue/compiler-core" "3.4.15" +- "@vue/shared" "3.4.15" +- +-"@vue/compiler-sfc@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" +- integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== +- dependencies: +- "@babel/parser" "^7.23.6" +- "@vue/compiler-core" "3.4.15" +- "@vue/compiler-dom" "3.4.15" +- "@vue/compiler-ssr" "3.4.15" +- "@vue/shared" "3.4.15" +- estree-walker "^2.0.2" +- magic-string "^0.30.5" +- postcss "^8.4.33" +- source-map-js "^1.0.2" +- +-"@vue/compiler-ssr@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" +- integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== +- dependencies: +- "@vue/compiler-dom" "3.4.15" +- "@vue/shared" "3.4.15" +- +-"@vue/reactivity@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" +- integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== +- dependencies: +- "@vue/shared" "3.4.15" ++"@wagmi/chains@1.2.0": ++ version "1.2.0" ++ resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.2.0.tgz#d59eaa70ec51a5fdcd113975926992acfb17ab12" ++ integrity sha512-dmDRipsE54JfyudOBkuhEexqQWcrZqxn/qiujG8SBzMh/az/AH5xlJSA+j1CPWTx9+QofSMF3B7A4gb6XRmSaQ== + +-"@vue/runtime-core@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" +- integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== +- dependencies: +- "@vue/reactivity" "3.4.15" +- "@vue/shared" "3.4.15" ++"@wagmi/chains@1.6.0": ++ version "1.6.0" ++ resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.6.0.tgz#eb992ad28dbaaab729b5bcab3e5b461e8a035656" ++ integrity sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw== + +-"@vue/runtime-dom@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" +- integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== +- dependencies: +- "@vue/runtime-core" "3.4.15" +- "@vue/shared" "3.4.15" +- csstype "^3.1.3" ++"@wagmi/chains@1.7.0": ++ version "1.7.0" ++ resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.7.0.tgz#8f6ad81cf867e1788417f7c978ca92bc083ecaf6" ++ integrity sha512-TKVeHv0GqP5sV1yQ8BDGYToAFezPnCexbbBpeH14x7ywi5a1dDStPffpt9x+ytE6LJWkZ6pAMs/HNWXBQ5Nqmw== + +-"@vue/server-renderer@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" +- integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== ++"@wagmi/connectors@2.7.0": ++ version "2.7.0" ++ resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-2.7.0.tgz#547972502cbe6719217043fe5b610ac48534dc93" ++ integrity sha512-1KOL0HTJl5kzSC/YdKwFwiokr6poUQn1V/tcT0TpG3iH2x0lSM7FTkvCjVVY/6lKzTXrLlo9y2aE7AsOPnkvqg== ++ dependencies: ++ "@coinbase/wallet-sdk" "^3.6.6" ++ "@ledgerhq/connect-kit-loader" "^1.1.0" ++ "@safe-global/safe-apps-provider" "^0.17.1" ++ "@safe-global/safe-apps-sdk" "^8.0.0" ++ "@walletconnect/ethereum-provider" "2.9.2" ++ "@walletconnect/legacy-provider" "^2.0.0" ++ "@walletconnect/modal" "2.6.1" ++ "@walletconnect/utils" "2.9.2" ++ abitype "0.8.7" ++ eventemitter3 "^4.0.7" ++ ++"@wagmi/core@1.3.9": ++ version "1.3.9" ++ resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-1.3.9.tgz#16bac164fe74203fde68abe7991b947d3a26e6ab" ++ integrity sha512-SrnABCrsDvhiMCLLLyzyHnZbEumsFT/XWlJJQZeyEDcixL95R7XQwOaaoRI4MpNilCtMtu3jzN57tA5Z2iA+kw== + dependencies: +- "@vue/compiler-ssr" "3.4.15" +- "@vue/shared" "3.4.15" ++ "@wagmi/chains" "1.7.0" ++ "@wagmi/connectors" "2.7.0" ++ abitype "0.8.7" ++ eventemitter3 "^4.0.7" ++ zustand "^4.3.1" + +-"@vue/shared@3.4.15": +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" +- integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== +- +-"@walletconnect/core@2.11.1": +- version "2.11.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.11.1.tgz#da2be26b8b6514c74f06dc9a5ffb450bdec3456d" +- integrity sha512-T57Vd7YdbHPsy3tthBuwrhaZNafN0+PqjISFRNeJy/bsKdXxpJg2hGSARuOTpCO7V6VcaatqlaSMuG3DrnG5rA== ++"@walletconnect/core@2.9.2": ++ version "2.9.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.9.2.tgz#c46734ca63771b28fd77606fd521930b7ecfc5e1" ++ integrity sha512-VARMPAx8sIgodeyngDHbealP3B621PQqjqKsByFUTOep8ZI1/R/20zU+cmq6j9RCrL+kLKZcrZqeVzs8Z7OlqQ== + dependencies: + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/jsonrpc-utils" "1.0.8" +- "@walletconnect/jsonrpc-ws-connection" "1.0.14" +- "@walletconnect/keyvaluestorage" "^1.1.1" ++ "@walletconnect/jsonrpc-ws-connection" "1.0.13" ++ "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" +- "@walletconnect/types" "2.11.1" +- "@walletconnect/utils" "2.11.1" ++ "@walletconnect/types" "2.9.2" ++ "@walletconnect/utils" "2.9.2" + events "^3.3.0" +- isomorphic-unfetch "3.1.0" + lodash.isequal "4.5.0" + uint8arrays "^3.1.0" + ++"@walletconnect/crypto@^1.0.3": ++ version "1.0.3" ++ resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.3.tgz#7b8dd4d7e2884fe3543c7c07aea425eef5ef9dd4" ++ integrity sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g== ++ dependencies: ++ "@walletconnect/encoding" "^1.0.2" ++ "@walletconnect/environment" "^1.0.1" ++ "@walletconnect/randombytes" "^1.0.3" ++ aes-js "^3.1.2" ++ hash.js "^1.1.7" ++ tslib "1.14.1" ++ ++"@walletconnect/encoding@^1.0.2": ++ version "1.0.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.2.tgz#cb3942ad038d6a6bf01158f66773062dd25724da" ++ integrity sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag== ++ dependencies: ++ is-typedarray "1.0.0" ++ tslib "1.14.1" ++ typedarray-to-buffer "3.1.5" ++ + "@walletconnect/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" +@@ -6910,20 +6843,19 @@ + dependencies: + tslib "1.14.1" + +-"@walletconnect/ethereum-provider@2.11.1": +- version "2.11.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.11.1.tgz#6e0174ec9026940eaadeedc53417e222eb45f5aa" +- integrity sha512-UfQH0ho24aa2M1xYmanbJv2ggQPebKmQytp2j20QEvURJ2R0v7YKWZ+0PfwOs6o6cuGw6gGxy/0WQXQRZSAsfg== ++"@walletconnect/ethereum-provider@2.9.2": ++ version "2.9.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.9.2.tgz#fb3a6fca279bb4e98e75baa2fb9730545d41bb99" ++ integrity sha512-eO1dkhZffV1g7vpG19XUJTw09M/bwGUwwhy1mJ3AOPbOSbMPvwiCuRz2Kbtm1g9B0Jv15Dl+TvJ9vTgYF8zoZg== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "^1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.3" + "@walletconnect/jsonrpc-utils" "^1.0.8" +- "@walletconnect/modal" "^2.6.2" +- "@walletconnect/sign-client" "2.11.1" +- "@walletconnect/types" "2.11.1" +- "@walletconnect/universal-provider" "2.11.1" +- "@walletconnect/utils" "2.11.1" ++ "@walletconnect/sign-client" "2.9.2" ++ "@walletconnect/types" "2.9.2" ++ "@walletconnect/universal-provider" "2.9.2" ++ "@walletconnect/utils" "2.9.2" + events "^3.3.0" + + "@walletconnect/events@^1.0.1": +@@ -6943,6 +6875,16 @@ + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + ++"@walletconnect/jsonrpc-http-connection@^1.0.4": ++ version "1.0.6" ++ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.6.tgz#48c41cf3e5ac9add9425420b345615dc438594cd" ++ integrity sha512-/3zSqDi7JDN06E4qm0NmVYMitngXfh21UWwy8zeJcBeJc+Jcs094EbLsIxtziIIKTCCbT88lWuTjl1ZujxN7cw== ++ dependencies: ++ "@walletconnect/jsonrpc-utils" "^1.0.6" ++ "@walletconnect/safe-json" "^1.0.1" ++ cross-fetch "^3.1.4" ++ tslib "1.14.1" ++ + "@walletconnect/jsonrpc-http-connection@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz#a6973569b8854c22da707a759d241e4f5c2d5a98" +@@ -6962,7 +6904,16 @@ + "@walletconnect/safe-json" "^1.0.2" + tslib "1.14.1" + +-"@walletconnect/jsonrpc-types@1.0.3", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": ++"@walletconnect/jsonrpc-provider@^1.0.6": ++ version "1.0.10" ++ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.10.tgz#8351a06b70faa8f8c0e77dc2c6d9b0190d17d407" ++ integrity sha512-g0ffPSpY3P6GqGjWGHsr3yqvQUhj7q2k6pAikoXv5XTXWaJRzFvrlbFkSgxziXsBrwrMZn0qvPufvpN4mMZ5FA== ++ dependencies: ++ "@walletconnect/jsonrpc-utils" "^1.0.6" ++ "@walletconnect/safe-json" "^1.0.1" ++ tslib "1.14.1" ++ ++"@walletconnect/jsonrpc-types@1.0.3", "@walletconnect/jsonrpc-types@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" + integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== +@@ -6970,7 +6921,15 @@ + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +-"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": ++"@walletconnect/jsonrpc-types@^1.0.2": ++ version "1.0.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz#b79519f679cd6a5fa4a1bea888f27c1916689a20" ++ integrity sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg== ++ dependencies: ++ keyvaluestorage-interface "^1.0.0" ++ tslib "1.14.1" ++ ++"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" + integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== +@@ -6979,24 +6938,102 @@ + "@walletconnect/jsonrpc-types" "^1.0.3" + tslib "1.14.1" + +-"@walletconnect/jsonrpc-ws-connection@1.0.14": +- version "1.0.14" +- resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" +- integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== ++"@walletconnect/jsonrpc-utils@^1.0.4", "@walletconnect/jsonrpc-utils@^1.0.6": ++ version "1.0.6" ++ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.6.tgz#7fa58e6671247e64e189828103282e6258f5330f" ++ integrity sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg== ++ dependencies: ++ "@walletconnect/environment" "^1.0.1" ++ "@walletconnect/jsonrpc-types" "^1.0.2" ++ tslib "1.14.1" ++ ++"@walletconnect/jsonrpc-utils@^1.0.7": ++ version "1.0.7" ++ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.7.tgz#1812d17c784f1ec0735bf03d0884287f60bfa2ce" ++ integrity sha512-zJziApzUF/Il4VcwabnaU+0yo1QI4eUkYX99zmCVTHJvZOf2l0zjADf/OpKqWyeNFC3Io56Z/8uJHVtcNVvyFA== ++ dependencies: ++ "@walletconnect/environment" "^1.0.1" ++ "@walletconnect/jsonrpc-types" "^1.0.2" ++ tslib "1.14.1" ++ ++"@walletconnect/jsonrpc-ws-connection@1.0.13": ++ version "1.0.13" ++ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.13.tgz#23b0cdd899801bfbb44a6556936ec2b93ef2adf4" ++ integrity sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" ++ tslib "1.14.1" + ws "^7.5.1" + +-"@walletconnect/keyvaluestorage@^1.1.1": +- version "1.1.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" +- integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== ++"@walletconnect/keyvaluestorage@^1.0.2": ++ version "1.0.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz#92f5ca0f54c1a88a093778842ce0c874d86369c8" ++ integrity sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ== ++ dependencies: ++ safe-json-utils "^1.1.1" ++ tslib "1.14.1" ++ ++"@walletconnect/legacy-client@^2.0.0": ++ version "2.0.0" ++ resolved "https://registry.yarnpkg.com/@walletconnect/legacy-client/-/legacy-client-2.0.0.tgz#9f2c09694789fd4b6c5d68d6423b44bac55aed30" ++ integrity sha512-v5L7rYk9loVnfvUf0mF+76bUPFaU5/Vh7mzL6/950CD/yoGdzYZ3Kj+L7mkC6HPMEGeQsBP1+sqBuiVGZ/aODA== ++ dependencies: ++ "@walletconnect/crypto" "^1.0.3" ++ "@walletconnect/encoding" "^1.0.2" ++ "@walletconnect/jsonrpc-utils" "^1.0.4" ++ "@walletconnect/legacy-types" "^2.0.0" ++ "@walletconnect/legacy-utils" "^2.0.0" ++ "@walletconnect/safe-json" "^1.0.1" ++ "@walletconnect/window-getters" "^1.0.1" ++ "@walletconnect/window-metadata" "^1.0.1" ++ detect-browser "^5.3.0" ++ query-string "^6.13.5" ++ ++"@walletconnect/legacy-modal@^2.0.0": ++ version "2.0.0" ++ resolved "https://registry.yarnpkg.com/@walletconnect/legacy-modal/-/legacy-modal-2.0.0.tgz#d0fab01a1337a8f5d88cdb1430cbef2d46072bbf" ++ integrity sha512-jckNd8lMhm4X7dX9TDdxM3bXKJnaqkRs6K2Mo5j6GmbIF9Eyx40jZ5+q457RVxvM6ciZEDT5s1wBHWdWoOo+9Q== ++ dependencies: ++ "@walletconnect/legacy-types" "^2.0.0" ++ "@walletconnect/legacy-utils" "^2.0.0" ++ copy-to-clipboard "^3.3.3" ++ preact "^10.12.0" ++ qrcode "^1.5.1" ++ ++"@walletconnect/legacy-provider@^2.0.0": ++ version "2.0.0" ++ resolved "https://registry.yarnpkg.com/@walletconnect/legacy-provider/-/legacy-provider-2.0.0.tgz#08e2db1e4c234743b2f30422bc8100bc42e8fc44" ++ integrity sha512-A8xPebMI1A+50HbWwTpFCbwP7G+1NGKdTKyg8BUUg3h3Y9JucpC1W6w/x0v1Xw7qFEqQnz74LoIN/A3ytH9xrQ== ++ dependencies: ++ "@walletconnect/jsonrpc-http-connection" "^1.0.4" ++ "@walletconnect/jsonrpc-provider" "^1.0.6" ++ "@walletconnect/legacy-client" "^2.0.0" ++ "@walletconnect/legacy-modal" "^2.0.0" ++ "@walletconnect/legacy-types" "^2.0.0" ++ "@walletconnect/legacy-utils" "^2.0.0" ++ ++"@walletconnect/legacy-types@^2.0.0": ++ version "2.0.0" ++ resolved "https://registry.yarnpkg.com/@walletconnect/legacy-types/-/legacy-types-2.0.0.tgz#224278ae2874c6a2ca805c2d1d062a511dcf7227" ++ integrity sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw== ++ dependencies: ++ "@walletconnect/jsonrpc-types" "^1.0.2" ++ ++"@walletconnect/legacy-utils@^2.0.0": ++ version "2.0.0" ++ resolved "https://registry.yarnpkg.com/@walletconnect/legacy-utils/-/legacy-utils-2.0.0.tgz#e3a637c00783f9cd2ae139b640f82223ab78ed9d" ++ integrity sha512-CPWxSVVXw0kgNCxvU126g4GiV3mzXmC8IPJ15twE46aJ1FX+RHEIfAzFMFz2F2+fEhBxL63A7dwNQKDXorRPcQ== + dependencies: ++ "@walletconnect/encoding" "^1.0.2" ++ "@walletconnect/jsonrpc-utils" "^1.0.4" ++ "@walletconnect/legacy-types" "^2.0.0" + "@walletconnect/safe-json" "^1.0.1" +- idb-keyval "^6.2.1" +- unstorage "^1.9.0" ++ "@walletconnect/window-getters" "^1.0.1" ++ "@walletconnect/window-metadata" "^1.0.1" ++ detect-browser "^5.3.0" ++ query-string "^6.13.5" + + "@walletconnect/logger@^2.0.1": + version "2.0.1" +@@ -7006,30 +7043,40 @@ + pino "7.11.0" + tslib "1.14.1" + +-"@walletconnect/modal-core@2.6.2": +- version "2.6.2" +- resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" +- integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== ++"@walletconnect/modal-core@2.6.1": ++ version "2.6.1" ++ resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.1.tgz#bc76055d0b644a2d4b98024324825c108a700905" ++ integrity sha512-f2hYlJ5pwzGvjyaZ6BoGR5uiMgXzWXt6w6ktt1N8lmY6PiYp8whZgqx2hTxVWwVlsGnaIfh6UHp1hGnANx0eTQ== + dependencies: +- valtio "1.11.2" ++ valtio "1.11.0" + +-"@walletconnect/modal-ui@2.6.2": +- version "2.6.2" +- resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" +- integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== ++"@walletconnect/modal-ui@2.6.1": ++ version "2.6.1" ++ resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.1.tgz#200c54c8dfe3c71321abb2724e18bb357dfd6371" ++ integrity sha512-RFUOwDAMijSK8B7W3+KoLKaa1l+KEUG0LCrtHqaB0H0cLnhEGdLR+kdTdygw+W8+yYZbkM5tXBm7MlFbcuyitA== + dependencies: +- "@walletconnect/modal-core" "2.6.2" +- lit "2.8.0" ++ "@walletconnect/modal-core" "2.6.1" ++ lit "2.7.6" + motion "10.16.2" + qrcode "1.5.3" + +-"@walletconnect/modal@^2.6.2": +- version "2.6.2" +- resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" +- integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== ++"@walletconnect/modal@2.6.1": ++ version "2.6.1" ++ resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.1.tgz#066fdbfcff83b58c8a9da66ab4af0eb93e3626de" ++ integrity sha512-G84tSzdPKAFk1zimgV7JzIUFT5olZUVtI3GcOk77OeLYjlMfnDT23RVRHm5EyCrjkptnvpD0wQScXePOFd2Xcw== ++ dependencies: ++ "@walletconnect/modal-core" "2.6.1" ++ "@walletconnect/modal-ui" "2.6.1" ++ ++"@walletconnect/randombytes@^1.0.3": ++ version "1.0.3" ++ resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" ++ integrity sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw== + dependencies: +- "@walletconnect/modal-core" "2.6.2" +- "@walletconnect/modal-ui" "2.6.2" ++ "@walletconnect/encoding" "^1.0.2" ++ "@walletconnect/environment" "^1.0.1" ++ randombytes "^2.1.0" ++ tslib "1.14.1" + + "@walletconnect/relay-api@^1.0.9": + version "1.0.9" +@@ -7051,26 +7098,33 @@ + tslib "1.14.1" + uint8arrays "^3.0.0" + +-"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": ++"@walletconnect/safe-json@^1.0.1": ++ version "1.0.1" ++ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.1.tgz#9813fa0a7a544b16468730c2d7bed046ed160957" ++ integrity sha512-Fm7e31oSYY15NQr8SsLJheKAy5L744udZf2lJKcz6wFmPJEzf7hOF0866o/rrldRzJnjZ4H2GJ45pFudsnLW5A== ++ dependencies: ++ tslib "1.14.1" ++ ++"@walletconnect/safe-json@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" + integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== + dependencies: + tslib "1.14.1" + +-"@walletconnect/sign-client@2.11.1": +- version "2.11.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.11.1.tgz#c073b8d2d594e792bb783d36c8b021bd37a9d4f6" +- integrity sha512-s3oKSx6/F5X2WmkV1jfJImBFACf9Km5HpTb+n5q+mobJVpUQw/clvoVyIrNNppLhm1V1S/ylHXh0qCrDppDpCA== ++"@walletconnect/sign-client@2.9.2": ++ version "2.9.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.9.2.tgz#ff4c81c082c2078878367d07f24bcb20b1f7ab9e" ++ integrity sha512-anRwnXKlR08lYllFMEarS01hp1gr6Q9XUgvacr749hoaC/AwGVlxYFdM8+MyYr3ozlA+2i599kjbK/mAebqdXg== + dependencies: +- "@walletconnect/core" "2.11.1" ++ "@walletconnect/core" "2.9.2" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" +- "@walletconnect/types" "2.11.1" +- "@walletconnect/utils" "2.11.1" ++ "@walletconnect/types" "2.9.2" ++ "@walletconnect/utils" "2.9.2" + events "^3.3.0" + + "@walletconnect/time@^1.0.2": +@@ -7080,37 +7134,37 @@ + dependencies: + tslib "1.14.1" + +-"@walletconnect/types@2.11.1": +- version "2.11.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.11.1.tgz#4f705b43ddc286b69eb9bf91bb6e9496d20de0e3" +- integrity sha512-UbdbX+d6MOK0AXKxt5imV3KvAcLVpZUHylaRDIP5ffwVylM/p4DHnKppil1Qq5N+IGDr3RsUwLGFkKjqsQYRKw== ++"@walletconnect/types@2.9.2": ++ version "2.9.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.9.2.tgz#d5fd5a61dc0f41cbdca59d1885b85207ac7bf8c5" ++ integrity sha512-7Rdn30amnJEEal4hk83cdwHUuxI1SWQ+K7fFFHBMqkuHLGi3tpMY6kpyfDxnUScYEZXqgRps4Jo5qQgnRqVM7A== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-types" "1.0.3" +- "@walletconnect/keyvaluestorage" "^1.1.1" ++ "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + +-"@walletconnect/universal-provider@2.11.1": +- version "2.11.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.11.1.tgz#988f2a78325eb52ef7481a220851a56efb209d64" +- integrity sha512-BJvPYByIfbBYF4x8mqDV79ebQX0tD54pp8itsqrHWn0qKZeJyIH8sQ69yY0GnbJrzoFS3ZLULdC0yDxWDeuRGw== ++"@walletconnect/universal-provider@2.9.2": ++ version "2.9.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.9.2.tgz#40e54e98bc48b1f2f5f77eb5b7f05462093a8506" ++ integrity sha512-JmaolkO8D31UdRaQCHwlr8uIFUI5BYhBzqYFt54Mc6gbIa1tijGOmdyr6YhhFO70LPmS6gHIjljwOuEllmlrxw== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.7" + "@walletconnect/logger" "^2.0.1" +- "@walletconnect/sign-client" "2.11.1" +- "@walletconnect/types" "2.11.1" +- "@walletconnect/utils" "2.11.1" ++ "@walletconnect/sign-client" "2.9.2" ++ "@walletconnect/types" "2.9.2" ++ "@walletconnect/utils" "2.9.2" + events "^3.3.0" + +-"@walletconnect/utils@2.11.1": +- version "2.11.1" +- resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.11.1.tgz#56116d9c410c6f2ae8d562017cf6876cccb366f1" +- integrity sha512-wRFDHN86dZ05mCET1H3912odIeQa8j7cZKxl1FlWRpV2YsILj9HCYSX6Uq2brwO02Kv2vryke44G1r8XI/LViA== ++"@walletconnect/utils@2.9.2": ++ version "2.9.2" ++ resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.9.2.tgz#035bdb859ee81a4bcc6420f56114cc5ec3e30afb" ++ integrity sha512-D44hwXET/8JhhIjqljY6qxSu7xXnlPrf63UN/Qfl98vDjWlYVcDl2+JIQRxD9GPastw0S8XZXdRq59XDXLuZBg== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" +@@ -7120,7 +7174,7 @@ + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" +- "@walletconnect/types" "2.11.1" ++ "@walletconnect/types" "2.9.2" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" +@@ -7142,108 +7196,37 @@ + "@walletconnect/window-getters" "^1.0.1" + tslib "1.14.1" + +-"@web3modal/common@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/common/-/common-4.0.1.tgz#633054870ecbc01622dd9c18b7d70378260aa391" +- integrity sha512-JsZk4KEr9pomSi2yY6ONLKnIPfiwH7AD1rYwU53EuCr/p6pfge8BXp+kIlinRPuJVeFAwWffYGdVr8oMKPBp7A== +- dependencies: +- dayjs "1.11.10" +- +-"@web3modal/core@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-4.0.1.tgz#e41c33fd49b7d515db6938fee58de4a463e205a2" +- integrity sha512-A2bQuwC+HIx3511Vs0V+ramno8UYHmqpFJ2K8s8akRolsFsvRPXyClzJFP0eSEiKnGaRhrzaeVrgVni4Ef3D8A== +- dependencies: +- "@web3modal/common" "4.0.1" +- "@web3modal/wallet" "4.0.1" +- valtio "1.11.2" +- +-"@web3modal/ethers5@^4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/ethers5/-/ethers5-4.0.1.tgz#6f0099e766c6d5d95882b775791df3b1fbc411f4" +- integrity sha512-GYPPntTm5TIbOoE6aP7UmmJMruc7qhK8g6+pkzSnkTLSn4d25K10O640sAncYSZx3WlCXb9OWSGwNaJoyGsI2w== +- dependencies: +- "@coinbase/wallet-sdk" "3.9.1" +- "@walletconnect/ethereum-provider" "2.11.1" +- "@web3modal/polyfills" "4.0.1" +- "@web3modal/scaffold" "4.0.1" +- "@web3modal/scaffold-react" "4.0.1" +- "@web3modal/scaffold-utils" "4.0.1" +- "@web3modal/scaffold-vue" "4.0.1" +- valtio "1.11.2" +- optionalDependencies: +- "@web3modal/siwe" "4.0.1" +- react ">=17" +- react-dom ">=17" +- vue ">=3" +- +-"@web3modal/polyfills@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/polyfills/-/polyfills-4.0.1.tgz#ac0a386c75baeb997013ea61d4fecbb5ea1bd7ac" +- integrity sha512-9IRH4t4NKsiWAKj88JunrP/vq8yt4m/YjX4FcCvVv1+oQB0pLFNNhPz6SWPqRbQp0wVC6WvPQQfR4uz4HDpNLQ== ++"@web3modal/core@2.6.2": ++ version "2.6.2" ++ resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-2.6.2.tgz#776f18b3014eab1d99c257cba7acd426d786d981" ++ integrity sha512-7gi618Z+bFOwEzhdxROt4AC8N45oiPHJFEA0AX3PxhB+ni5Usc1VQ03jQhk7DnQLDnQq+3hCY71F1escdxkdBA== + dependencies: + buffer "6.0.3" ++ valtio "1.10.6" + +-"@web3modal/scaffold-react@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/scaffold-react/-/scaffold-react-4.0.1.tgz#891dd60e32cbbcfe39865cf304c77c23d44a80f3" +- integrity sha512-UF+aUysx/4EbCMguAIeyJ3icx2vYW/STJjjNYFbY9S9EujZSkAY5F86nBo/R7YPrcnFohM6OK4owLfc1oyCpFw== +- dependencies: +- "@web3modal/scaffold" "4.0.1" +- +-"@web3modal/scaffold-utils@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/scaffold-utils/-/scaffold-utils-4.0.1.tgz#d120f479ed9d0fc2863d91ccf2b5b314d2ee5d94" +- integrity sha512-IXdv1kf9DLhXpXhSElKEA4CYBjCgdnQv3EW8PQfhOiXPTYaXdPMSESKw+q/xrDg0f/mGNo1gkpUnnSY2RUtWpw== +- dependencies: +- "@web3modal/polyfills" "4.0.1" +- "@web3modal/scaffold" "4.0.1" +- valtio "1.11.2" +- +-"@web3modal/scaffold-vue@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/scaffold-vue/-/scaffold-vue-4.0.1.tgz#33d1e27673c54fb9fe82a1314ccbe5e1d475b077" +- integrity sha512-p7rb6K3SrUmHErccyDNfzmKvp7GsyJFAXsz47I6J0L+wiYaOu6+1vLYbI0ymWJnBH8+LdUpdQztnHv8XNNoDvw== +- dependencies: +- "@web3modal/scaffold" "4.0.1" ++"@web3modal/ethereum@^2.7.1": ++ version "2.7.1" ++ resolved "https://registry.yarnpkg.com/@web3modal/ethereum/-/ethereum-2.7.1.tgz#464dbc1d00d075c16961b77e9a353b1966538653" ++ integrity sha512-1x3qhYh9qgtvw1MDQD4VeDf2ZOsVANKRPtUty4lF+N4L8xnAIwvNKUAMA4j6T5xSsjqUfq5Tdy5mYsNxLmsWMA== + +-"@web3modal/scaffold@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/scaffold/-/scaffold-4.0.1.tgz#1eb10ca5a3869c2154105eb726d4e1510bf75194" +- integrity sha512-njZtEv2zzJbfnKEY+IXUG7L4F5MCACBq3gMu6Zq8N9iBquTTEAxM6v5T7PJfgr/5Z9jRQXuthX3ZAHVCmNbJVA== ++"@web3modal/react@^2.6.2": ++ version "2.6.2" ++ resolved "https://registry.yarnpkg.com/@web3modal/react/-/react-2.6.2.tgz#1c65cd3a2a51b767c1287cb04dc20fc0c94ee998" ++ integrity sha512-Fi4rFCFI5L0w2Mx8hmY6Nwh4fQapGfKZA2JgXT8cduTk9N+Qov+clwyt9bhRC/60F1g8Kq+/L8a3T1OoEFvHyg== + dependencies: +- "@web3modal/common" "4.0.1" +- "@web3modal/core" "4.0.1" +- "@web3modal/ui" "4.0.1" +- lit "3.1.0" ++ "@web3modal/core" "2.6.2" ++ "@web3modal/ui" "2.6.2" + +-"@web3modal/siwe@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/siwe/-/siwe-4.0.1.tgz#ab6664ff91807854b0bce84c4596b345ba88dc7d" +- integrity sha512-P5Xc4Kat674ZlhrTKdaYNSt2N/fWzAFvgCTGUleJegwNrPfD2i7pNqulqjl3Z2fo5VrOC+YZfWtK5Dx0KwNs0w== +- dependencies: +- "@web3modal/core" "4.0.1" +- "@web3modal/scaffold-utils" "4.0.1" +- optionalDependencies: +- react ">=17" +- react-dom ">=17" +- vue ">=3" +- +-"@web3modal/ui@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-4.0.1.tgz#36cf1d44ecd6c051a676e670a56fb85837407a97" +- integrity sha512-W7uD0p7CFraKcrK4DcPU6PDvMNtbjR7a2Qk2gIcWHLrDHxSuSPnWFX/HX2R4Zh6OXs914vCfnmZmQdifSiGoeQ== ++"@web3modal/ui@2.6.2": ++ version "2.6.2" ++ resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-2.6.2.tgz#ed88f06e9c83bd0b3bb22437a5a8ffc460ef21db" ++ integrity sha512-bhBNsookaqkTdLjyERBA7XM9KV8XPQ2bWAGd3roIgAFxLlaoWqrV0pPZHLtp+C97AglV4mbeqvFsHZ0jwpm8lw== + dependencies: +- lit "3.1.0" ++ "@web3modal/core" "2.6.2" ++ lit "2.7.5" ++ motion "10.16.2" + qrcode "1.5.3" + +-"@web3modal/wallet@4.0.1": +- version "4.0.1" +- resolved "https://registry.yarnpkg.com/@web3modal/wallet/-/wallet-4.0.1.tgz#b9f3e3f606bf430bfc073d2a23626d443796d3cd" +- integrity sha512-rzrXk3nW9sm3W/Kf0kXEX7S/FqbZVdzck25SJnqzaKWZDVIFwc8Mn8y88rlu6OFD4vArx7gSFSnPTHu6TtzriQ== +- dependencies: +- zod "3.22.4" +- + "@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" +@@ -7436,7 +7419,7 @@ + resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" + integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== + +-JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4: ++JSONStream@^1.0.3, JSONStream@^1.0.4, JSONStream@^1.3.4, JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== +@@ -7472,6 +7455,21 @@ abitype@0.7.1: + resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.7.1.tgz#16db20abe67de80f6183cf75f3de1ff86453b745" + integrity sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ== + ++abitype@0.8.11: ++ version "0.8.11" ++ resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.8.11.tgz#66e1cf2cbf46f48d0e57132d7c1c392447536cc1" ++ integrity sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A== ++ ++abitype@0.8.7: ++ version "0.8.7" ++ resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.8.7.tgz#e4b3f051febd08111f486c0cc6a98fa72d033622" ++ integrity sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w== ++ ++abitype@0.9.3: ++ version "0.9.3" ++ resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.3.tgz#294d25288ee683d72baf4e1fed757034e3c8c277" ++ integrity sha512-dz4qCQLurx97FQhnb/EIYTk/ldQ+oafEDUqC0VVIeQS1Q48/YWt/9YNfMmp9SLFqN41ktxny3c8aYxHjmFIB/w== ++ + abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" +@@ -7589,11 +7587,6 @@ acorn@^8.0.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +-acorn@^8.11.3: +- version "8.11.3" +- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" +- integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +- + acorn@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" +@@ -7609,6 +7602,11 @@ aes-js@3.0.0: + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + ++aes-js@^3.1.2: ++ version "3.1.2" ++ resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" ++ integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== ++ + agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" +@@ -7876,7 +7874,7 @@ anymatch@^2.0.0: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +-anymatch@^3.0.3, anymatch@^3.1.3: ++anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== +@@ -9233,6 +9231,13 @@ big.js@^5.2.2: + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + ++bigint-buffer@^1.1.5: ++ version "1.1.5" ++ resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" ++ integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== ++ dependencies: ++ bindings "^1.3.0" ++ + bigint-crypto-utils@^3.0.23: + version "3.1.6" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.6.tgz#3a52a660423416856342d0d9981935fa9856f177" +@@ -9265,7 +9270,12 @@ binary-extensions@^2.0.0: + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +-bindings@^1.5.0: ++bind-decorator@^1.0.11: ++ version "1.0.11" ++ resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" ++ integrity sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg== ++ ++bindings@^1.3.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== +@@ -9333,7 +9343,7 @@ bn.js@^4.11.0, bn.js@^4.11.1: + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +-bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0: ++bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +@@ -9424,6 +9434,15 @@ borc@^2.1.2: + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + ++borsh@^0.7.0: ++ version "0.7.0" ++ resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" ++ integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== ++ dependencies: ++ bn.js "^5.2.0" ++ bs58 "^4.0.0" ++ text-encoding-utf-8 "^1.0.2" ++ + bottleneck@^2.15.3: + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" +@@ -9768,7 +9787,7 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4 + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + +-bs58@^4.0.0: ++bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== +@@ -9849,7 +9868,15 @@ buffer-xor@^1.0.3: + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +-buffer@6.0.3, buffer@^6.0.3: ++buffer@6.0.1: ++ version "6.0.1" ++ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" ++ integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== ++ dependencies: ++ base64-js "^1.3.1" ++ ieee754 "^1.2.1" ++ ++buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== +@@ -9873,7 +9900,7 @@ buffer@~5.2.1: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +-bufferutil@4.0.5, bufferutil@^4.0.3: ++bufferutil@4.0.5, bufferutil@^4.0.1, bufferutil@^4.0.3: + version "4.0.5" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== +@@ -9887,6 +9914,13 @@ bufferutil@4.0.7: + dependencies: + node-gyp-build "^4.3.0" + ++bufferutil@^4.0.7: ++ version "4.0.8" ++ resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" ++ integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== ++ dependencies: ++ node-gyp-build "^4.3.0" ++ + builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +@@ -10529,13 +10563,6 @@ circular-json@^0.3.0: + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +-citty@^0.1.5: +- version "0.1.5" +- resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" +- integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== +- dependencies: +- consola "^3.2.3" +- + cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" +@@ -10658,15 +10685,6 @@ cli-width@^2.0.0: + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +-clipboardy@^4.0.0: +- version "4.0.0" +- resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-4.0.0.tgz#e73ced93a76d19dd379ebf1f297565426dffdca1" +- integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== +- dependencies: +- execa "^8.0.1" +- is-wsl "^3.1.0" +- is64bit "^2.0.0" +- + cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" +@@ -10775,12 +10793,12 @@ cloneable-readable@^1.0.0: + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +-clsx@^1.0.4, clsx@^1.2.1: ++clsx@^1.0.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +-clsx@^1.1.1: ++clsx@^1.1.0, clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== +@@ -10790,11 +10808,6 @@ clsx@^2.0.0: + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + +-cluster-key-slot@^1.1.0: +- version "1.1.2" +- resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" +- integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== +- + cmd-shim@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" +@@ -10998,7 +11011,7 @@ commander@^10.0.0: + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +-commander@^2.12.1, commander@^2.15.0, commander@^2.20.0, commander@^2.9.0: ++commander@^2.12.1, commander@^2.15.0, commander@^2.20.0, commander@^2.20.3, commander@^2.9.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +@@ -11160,11 +11173,6 @@ connect-history-api-fallback@^2.0.0: + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +-consola@^3.2.3: +- version "3.2.3" +- resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" +- integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== +- + console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" +@@ -11324,11 +11332,6 @@ convert-svg-to-png@^0.6.4: + dependencies: + convert-svg-core "^0.6.4" + +-cookie-es@^1.0.0: +- version "1.0.0" +- resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.0.0.tgz#4759684af168dfc54365b2c2dda0a8d7ee1e4865" +- integrity sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ== +- + cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" +@@ -11376,6 +11379,13 @@ copy-to-clipboard@^3.3.1: + dependencies: + toggle-selection "^1.0.6" + ++copy-to-clipboard@^3.3.3: ++ version "3.3.3" ++ resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" ++ integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== ++ dependencies: ++ toggle-selection "^1.0.6" ++ + copy-webpack-plugin@^10.2.4: + version "10.2.4" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz#6c854be3fdaae22025da34b9112ccf81c63308fe" +@@ -11538,20 +11548,13 @@ cross-blob@^2.0.1: + blob-polyfill "^5.0.20210201" + fetch-blob "^2.1.2" + +-cross-fetch@3.1.5, cross-fetch@^3.1.5: ++cross-fetch@3.1.5, cross-fetch@^3.1.4, cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +-cross-fetch@^3.1.4: +- version "3.1.8" +- resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" +- integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== +- dependencies: +- node-fetch "^2.6.12" +- + cross-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" +@@ -11923,11 +11926,6 @@ csstype@^3.0.2: + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== + +-csstype@^3.1.3: +- version "3.1.3" +- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" +- integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +- + currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" +@@ -11992,11 +11990,6 @@ dateformat@^3.0.0: + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +-dayjs@1.11.10: +- version "1.11.10" +- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" +- integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== +- + deasync@^0.1.9: + version "0.1.24" + resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.24.tgz#6ecc9c6ff9eba64a4f4572ae3c4db77fed09268a" +@@ -12293,11 +12286,6 @@ defined@~1.0.0: + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +-defu@^6.1.3, defu@^6.1.4: +- version "6.1.4" +- resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" +- integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== +- + degenerator@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" +@@ -12307,6 +12295,11 @@ degenerator@^5.0.0: + escodegen "^2.1.0" + esprima "^4.0.1" + ++delay@^5.0.0: ++ version "5.0.0" ++ resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" ++ integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== ++ + delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" +@@ -12322,11 +12315,6 @@ delimit-stream@0.1.0: + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= + +-denque@^2.1.0: +- version "2.1.0" +- resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" +- integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== +- + depd@2.0.0, depd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" +@@ -12365,17 +12353,12 @@ des.js@^1.0.0: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +-destr@^2.0.1, destr@^2.0.2: +- version "2.0.2" +- resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.2.tgz#8d3c0ee4ec0a76df54bc8b819bca215592a8c218" +- integrity sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg== +- + destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +-detect-browser@5.3.0: ++detect-browser@5.3.0, detect-browser@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== +@@ -12390,11 +12373,6 @@ detect-indent@^5.0.0: + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +-detect-libc@^1.0.3: +- version "1.0.3" +- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +- integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +- + detect-libc@^2.0.0, detect-libc@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" +@@ -12487,9 +12465,9 @@ diffie-hellman@^5.0.0: + randombytes "^2.0.0" + + dijkstrajs@^1.0.1: +- version "1.0.3" +- resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" +- integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== ++ version "1.0.2" ++ resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" ++ integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== + + dir-compare@^3.0.0: + version "3.3.0" +@@ -12968,11 +12946,6 @@ entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + +-entities@^4.5.0: +- version "4.5.0" +- resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" +- integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +- + env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" +@@ -13635,7 +13608,7 @@ estree-walker@^1.0.1: + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +-estree-walker@^2.0.1, estree-walker@^2.0.2: ++estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +@@ -13650,23 +13623,22 @@ etag@~1.8.1: + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +-eth-block-tracker@^7.1.0: +- version "7.1.0" +- resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz#dfc16085c6817cc30caabba381deb8d204c1c766" +- integrity sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg== ++eth-block-tracker@6.1.0: ++ version "6.1.0" ++ resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz#0481f97bbb88a100b9d45806fe7e37af741cbefc" ++ integrity sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ== + dependencies: +- "@metamask/eth-json-rpc-provider" "^1.0.0" +- "@metamask/safe-event-emitter" "^3.0.0" +- "@metamask/utils" "^5.0.1" ++ "@metamask/safe-event-emitter" "^2.0.0" ++ "@metamask/utils" "^3.0.1" + json-rpc-random-id "^1.0.1" + pify "^3.0.0" + +-eth-json-rpc-filters@^6.0.0: +- version "6.0.1" +- resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz#0b3e370f017f5c6f58d3e7bd0756d8099ed85c56" +- integrity sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig== ++eth-json-rpc-filters@5.1.0: ++ version "5.1.0" ++ resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-5.1.0.tgz#f0c2aeaec2a45e2dc6ca1b9843d8e85447821427" ++ integrity sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ== + dependencies: +- "@metamask/safe-event-emitter" "^3.0.0" ++ "@metamask/safe-event-emitter" "^2.0.0" + async-mutex "^0.2.6" + eth-query "^2.1.2" + json-rpc-engine "^6.1.0" +@@ -13680,6 +13652,13 @@ eth-query@^2.1.2: + json-rpc-random-id "^1.0.0" + xtend "^4.0.1" + ++eth-rpc-errors@4.0.2: ++ version "4.0.2" ++ resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.2.tgz#11bc164e25237a679061ac05b7da7537b673d3b7" ++ integrity sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ== ++ dependencies: ++ fast-safe-stringify "^2.0.6" ++ + eth-rpc-errors@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" +@@ -13822,16 +13801,11 @@ eventemitter3@^3.1.0: + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +-eventemitter3@^4.0.0, eventemitter3@^4.0.4: ++eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +-eventemitter3@^5.0.1: +- version "5.0.1" +- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" +- integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +- + events@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" +@@ -13923,21 +13897,6 @@ execa@^7.0.0: + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +-execa@^8.0.1: +- version "8.0.1" +- resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" +- integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== +- dependencies: +- cross-spawn "^7.0.3" +- get-stream "^8.0.1" +- human-signals "^5.0.0" +- is-stream "^3.0.0" +- merge-stream "^2.0.0" +- npm-run-path "^5.1.0" +- onetime "^6.0.0" +- signal-exit "^4.1.0" +- strip-final-newline "^3.0.0" +- + execr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/execr/-/execr-1.0.1.tgz#79865e89a940f56f72be2dd6656ffffd7f2b7c8b" +@@ -14177,6 +14136,11 @@ extsprintf@1.0.2: + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + integrity sha1-4QgOBljjALBilJkMxw4VAiNf1VA= + ++eyes@^0.1.8: ++ version "0.1.8" ++ resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" ++ integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== ++ + fancy-log@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" +@@ -14263,15 +14227,20 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + + fast-redact@^3.0.0: +- version "3.3.0" +- resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634" +- integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ== ++ version "3.1.2" ++ resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" ++ integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== + + fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + ++fast-stable-stringify@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" ++ integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== ++ + fast-text-encoding@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" +@@ -15259,11 +15228,6 @@ get-pkg-repo@^1.0.0: + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +-get-port-please@^3.1.2: +- version "3.1.2" +- resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" +- integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== +- + get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" +@@ -15308,11 +15272,6 @@ get-stream@^6.0.0, get-stream@^6.0.1: + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +-get-stream@^8.0.1: +- version "8.0.1" +- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" +- integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== +- + get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" +@@ -15869,20 +15828,6 @@ gzip-size@^6.0.0: + dependencies: + duplexer "^0.1.2" + +-h3@^1.10.0, h3@^1.8.2: +- version "1.10.0" +- resolved "https://registry.yarnpkg.com/h3/-/h3-1.10.0.tgz#55ac36deb6e250ada5ff1940b6324bc6acc4085f" +- integrity sha512-Tw1kcIC+AeimwRmviiObaD5EB430Yt+lTgOxLJxNr96Vd/fGRu04EF7aKfOAcpwKCI+U2JlbxOLhycD86p3Ciw== +- dependencies: +- cookie-es "^1.0.0" +- defu "^6.1.3" +- destr "^2.0.2" +- iron-webcrypto "^1.0.0" +- radix3 "^1.1.0" +- ufo "^1.3.2" +- uncrypto "^0.1.3" +- unenv "^1.8.0" +- + handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" +@@ -16381,11 +16326,6 @@ http-server@^14.1.0, http-server@^14.1.1: + union "~0.5.0" + url-join "^4.0.1" + +-http-shutdown@^1.2.2: +- version "1.2.2" +- resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" +- integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== +- + http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" +@@ -16459,11 +16399,6 @@ human-signals@^4.3.0: + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + +-human-signals@^5.0.0: +- version "5.0.0" +- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" +- integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== +- + humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" +@@ -16512,11 +16447,6 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +-idb-keyval@^6.2.1: +- version "6.2.1" +- resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" +- integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== +- + identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" +@@ -16839,21 +16769,6 @@ io-ts@1.10.4: + dependencies: + fp-ts "^1.0.0" + +-ioredis@^5.3.2: +- version "5.3.2" +- resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" +- integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== +- dependencies: +- "@ioredis/commands" "^1.1.1" +- cluster-key-slot "^1.1.0" +- debug "^4.3.4" +- denque "^2.1.0" +- lodash.defaults "^4.2.0" +- lodash.isarguments "^3.1.0" +- redis-errors "^1.2.0" +- redis-parser "^3.0.0" +- standard-as-callback "^2.1.0" +- + ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" +@@ -17003,11 +16918,6 @@ ipld-raw@^6.0.0: + multicodec "^2.0.0" + multihashing-async "^2.0.0" + +-iron-webcrypto@^1.0.0: +- version "1.0.0" +- resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz#e3b689c0c61b434a0a4cb82d0aeabbc8b672a867" +- integrity sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg== +- + is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" +@@ -17214,11 +17124,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +-is-docker@^3.0.0: +- version "3.0.0" +- resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" +- integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +- + is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" +@@ -17323,13 +17228,6 @@ is-hex-prefixed@1.0.0: + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + +-is-inside-container@^1.0.0: +- version "1.0.0" +- resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" +- integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== +- dependencies: +- is-docker "^3.0.0" +- + is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" +@@ -17598,7 +17496,7 @@ is-typed-array@^1.1.3, is-typed-array@^1.1.7: + foreach "^2.0.5" + has-tostringtag "^1.0.0" + +-is-typedarray@~1.0.0: ++is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +@@ -17664,20 +17562,6 @@ is-wsl@^2.2.0: + dependencies: + is-docker "^2.0.0" + +-is-wsl@^3.1.0: +- version "3.1.0" +- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" +- integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== +- dependencies: +- is-inside-container "^1.0.0" +- +-is64bit@^2.0.0: +- version "2.0.0" +- resolved "https://registry.yarnpkg.com/is64bit/-/is64bit-2.0.0.tgz#198c627cbcb198bbec402251f88e5e1a51236c07" +- integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== +- dependencies: +- system-architecture "^0.1.0" +- + isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" +@@ -17756,24 +17640,16 @@ isomorphic-textencoder@1.0.1: + dependencies: + fast-text-encoding "^1.0.0" + +-isomorphic-unfetch@3.1.0: +- version "3.1.0" +- resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" +- integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== +- dependencies: +- node-fetch "^2.6.1" +- unfetch "^4.2.0" ++isomorphic-ws@5.0.0, isomorphic-ws@^5.0.0: ++ version "5.0.0" ++ resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" ++ integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + + isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +-isomorphic-ws@^5.0.0: +- version "5.0.0" +- resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" +- integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== +- + isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +@@ -17971,6 +17847,25 @@ javascript-serialize@^1.6.1: + dom-serialize "^2.2.1" + fnjson "^1.3.0" + ++jayson@^3.4.4: ++ version "3.7.0" ++ resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" ++ integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== ++ dependencies: ++ "@types/connect" "^3.4.33" ++ "@types/node" "^12.12.54" ++ "@types/ws" "^7.4.4" ++ JSONStream "^1.3.5" ++ commander "^2.20.3" ++ delay "^5.0.0" ++ es6-promisify "^5.0.0" ++ eyes "^0.1.8" ++ isomorphic-ws "^4.0.1" ++ json-stringify-safe "^5.0.1" ++ lodash "^4.17.20" ++ uuid "^8.3.2" ++ ws "^7.4.5" ++ + jest-circus@^28.1.1: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" +@@ -18343,11 +18238,6 @@ jest-worker@^29.1.2: + merge-stream "^2.0.0" + supports-color "^8.0.0" + +-jiti@^1.21.0: +- version "1.21.0" +- resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" +- integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +- + jju@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa" +@@ -18469,7 +18359,7 @@ json-parse-helpfulerror@^1.0.2: + dependencies: + jju "^1.1.0" + +-json-rpc-engine@^6.1.0: ++json-rpc-engine@6.1.0, json-rpc-engine@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" + integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== +@@ -18550,11 +18440,6 @@ jsonc-parser@3.2.0: + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +-jsonc-parser@^3.2.0: +- version "3.2.1" +- resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" +- integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== +- + jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" +@@ -18731,7 +18616,7 @@ keccak@3.0.2, keccak@^3.0.0: + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +-keccak@^3.0.2: ++keccak@^3.0.1, keccak@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" + integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== +@@ -18740,15 +18625,6 @@ keccak@^3.0.2: + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +-keccak@^3.0.3: +- version "3.0.4" +- resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" +- integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== +- dependencies: +- node-addon-api "^2.0.0" +- node-gyp-build "^4.2.0" +- readable-stream "^3.6.0" +- + keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" +@@ -19098,29 +18974,6 @@ lint-staged@^13.2.3: + string-argv "^0.3.1" + yaml "^2.2.2" + +-listhen@^1.5.5: +- version "1.5.6" +- resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.6.tgz#8dc8cdccef225e39c69bcc6f6bd704447b499b51" +- integrity sha512-gTpEJhT5L85L0bFgmu+Boqu5rP4DwDtEb4Exq5gdQUxWRwx4jbzdInZkmyLONo5EwIcQB0k7ZpWlpCDPdL77EQ== +- dependencies: +- "@parcel/watcher" "^2.3.0" +- "@parcel/watcher-wasm" "2.3.0" +- citty "^0.1.5" +- clipboardy "^4.0.0" +- consola "^3.2.3" +- defu "^6.1.4" +- get-port-please "^3.1.2" +- h3 "^1.10.0" +- http-shutdown "^1.2.2" +- jiti "^1.21.0" +- mlly "^1.4.2" +- node-forge "^1.3.1" +- pathe "^1.1.1" +- std-env "^3.7.0" +- ufo "^1.3.2" +- untun "^0.1.3" +- uqr "^0.1.2" +- + listr2@^5.0.3, listr2@^5.0.7: + version "5.0.8" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" +@@ -19136,54 +18989,38 @@ listr2@^5.0.3, listr2@^5.0.7: + wrap-ansi "^7.0.0" + + lit-element@^3.3.0: +- version "3.3.3" +- resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" +- integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== ++ version "3.3.2" ++ resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.2.tgz#9913bf220b85065f0e5f1bb8878cc44f36b50cfa" ++ integrity sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.1.0" + "@lit/reactive-element" "^1.3.0" +- lit-html "^2.8.0" +- +-lit-element@^4.0.0: +- version "4.0.3" +- resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-4.0.3.tgz#18239840a7c1a6a6e09c6ed3b5cd3db0512ebf15" +- integrity sha512-2vhidmC7gGLfnVx41P8UZpzyS0Fb8wYhS5RCm16cMW3oERO0Khd3EsKwtRpOnttuByI5rURjT2dfoA7NlInCNw== +- dependencies: +- "@lit-labs/ssr-dom-shim" "^1.1.2" +- "@lit/reactive-element" "^2.0.0" +- lit-html "^3.1.0" +- +-lit-html@^2.8.0: +- version "2.8.0" +- resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" +- integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== +- dependencies: +- "@types/trusted-types" "^2.0.2" ++ lit-html "^2.7.0" + +-lit-html@^3.1.0: +- version "3.1.1" +- resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-3.1.1.tgz#50c2e74a2074f85fc9816676ac11cf0c96f257c3" +- integrity sha512-x/EwfGk2D/f4odSFM40hcGumzqoKv0/SUh6fBO+1Ragez81APrcAMPo1jIrCDd9Sn+Z4CT867HWKViByvkDZUA== ++lit-html@^2.7.0: ++ version "2.7.5" ++ resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.7.5.tgz#0c1b9d381abe20c01475ae53ea4b07bf4c923eb8" ++ integrity sha512-YqUzpisJodwKIlbMFCtyrp58oLloKGnnPLMJ1t23cbfIJjg/H9pvLWK4XS69YeubK5HUs1UE4ys9w5dP1zg6IA== + dependencies: + "@types/trusted-types" "^2.0.2" + +-lit@2.8.0: +- version "2.8.0" +- resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" +- integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== ++lit@2.7.5: ++ version "2.7.5" ++ resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.5.tgz#60bc82990cfad169d42cd786999356dcf79b035f" ++ integrity sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ== + dependencies: + "@lit/reactive-element" "^1.6.0" + lit-element "^3.3.0" +- lit-html "^2.8.0" ++ lit-html "^2.7.0" + +-lit@3.1.0: +- version "3.1.0" +- resolved "https://registry.yarnpkg.com/lit/-/lit-3.1.0.tgz#76429b85dc1f5169fed499a0f7e89e2e619010c9" +- integrity sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w== ++lit@2.7.6: ++ version "2.7.6" ++ resolved "https://registry.yarnpkg.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" ++ integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg== + dependencies: +- "@lit/reactive-element" "^2.0.0" +- lit-element "^4.0.0" +- lit-html "^3.1.0" ++ "@lit/reactive-element" "^1.6.0" ++ lit-element "^3.3.0" ++ lit-html "^2.7.0" + + load-json-file@^1.0.0: + version "1.1.0" +@@ -19401,11 +19238,6 @@ lodash.debounce@^4.0.8: + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +-lodash.defaults@^4.2.0: +- version "4.2.0" +- resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" +- integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== +- + lodash.defaultsdeep@4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" +@@ -19436,7 +19268,7 @@ lodash.includes@^4.3.0: + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +-lodash.isarguments@^3.0.0, lodash.isarguments@^3.1.0: ++lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= +@@ -19677,7 +19509,7 @@ lowercase-keys@^2.0.0: + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +-lru-cache@^10.0.0, lru-cache@^10.0.2: ++lru-cache@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== +@@ -19752,13 +19584,6 @@ magic-string@^0.25.7: + dependencies: + sourcemap-codec "^1.4.8" + +-magic-string@^0.30.5: +- version "0.30.5" +- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" +- integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== +- dependencies: +- "@jridgewell/sourcemap-codec" "^1.4.15" +- + make-dir@^1.0.0, make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" +@@ -20593,11 +20418,6 @@ mime@1.6.0, mime@^1.4.1, mime@^1.6.0: + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +-mime@^3.0.0: +- version "3.0.0" +- resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" +- integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== +- + mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" +@@ -20920,16 +20740,6 @@ mkpath@1.0.0: + resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" + integrity sha1-67Opd+evHGg65v2hK1Raa6bFhT0= + +-mlly@^1.2.0, mlly@^1.4.2: +- version "1.5.0" +- resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a" +- integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ== +- dependencies: +- acorn "^8.11.3" +- pathe "^1.1.2" +- pkg-types "^1.0.3" +- ufo "^1.3.2" +- + mnemonist@^0.38.0: + version "0.38.5" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" +@@ -21093,7 +20903,7 @@ move-concurrently@^1.0.1, move-concurrently@~1.0.1: + rimraf "^2.5.4" + run-queue "^1.0.3" + +-mri@^1.1.0, mri@^1.2.0: ++mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== +@@ -21324,11 +21134,6 @@ nanoid@^3.3.6: + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +-nanoid@^3.3.7: +- version "3.3.7" +- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" +- integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +- + nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" +@@ -21361,11 +21166,6 @@ napi-macros@~2.0.0: + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + +-napi-wasm@^1.1.0: +- version "1.1.0" +- resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" +- integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== +- + native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" +@@ -21507,11 +21307,6 @@ node-addon-api@^6.1.0: + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + +-node-addon-api@^7.0.0: +- version "7.1.0" +- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb" +- integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== +- + node-api-version@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.1.4.tgz#1ed46a485e462d55d66b5aa1fe2821720dedf080" +@@ -21526,11 +21321,6 @@ node-emoji@^1.4.1: + dependencies: + lodash "^4.17.21" + +-node-fetch-native@^1.4.0, node-fetch-native@^1.4.1, node-fetch-native@^1.6.1: +- version "1.6.1" +- resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" +- integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== +- + node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" +@@ -21569,7 +21359,7 @@ node-fetch@^2.6.7: + dependencies: + whatwg-url "^5.0.0" + +-node-forge@^1, node-forge@^1.3.1: ++node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +@@ -22419,15 +22209,6 @@ octokit@^3.1.2: + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + +-ofetch@^1.3.3: +- version "1.3.3" +- resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.3.tgz#588cb806a28e5c66c2c47dd8994f9059a036d8c0" +- integrity sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg== +- dependencies: +- destr "^2.0.1" +- node-fetch-native "^1.4.0" +- ufo "^1.3.0" +- + on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" +@@ -23227,11 +23008,6 @@ path-type@^4.0.0: + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +-pathe@^1.1.0, pathe@^1.1.1, pathe@^1.1.2: +- version "1.1.2" +- resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" +- integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== +- + pathval@1.1.1, pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" +@@ -23377,15 +23153,6 @@ pkg-dir@^3.0.0: + dependencies: + find-up "^3.0.0" + +-pkg-types@^1.0.3: +- version "1.0.3" +- resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" +- integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== +- dependencies: +- jsonc-parser "^3.2.0" +- mlly "^1.2.0" +- pathe "^1.1.0" +- + pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" +@@ -23421,11 +23188,6 @@ pollock@^0.2.0: + resolved "https://registry.yarnpkg.com/pollock/-/pollock-0.2.1.tgz#01273ae3542511492d07f1c10fa53f149b37c6ad" + integrity sha512-2Xy6LImSXm0ANKv9BKSVuCa6Z4ACbK7oUrl9gtUgqLkekL7n9C0mlWsOGYYuGbCG8xT0x3Q4F31C3ZMyVQjwsg== + +-pony-cause@^2.1.10: +- version "2.1.10" +- resolved "https://registry.yarnpkg.com/pony-cause/-/pony-cause-2.1.10.tgz#828457ad6f13be401a075dbf14107a9057945174" +- integrity sha512-3IKLNXclQgkU++2fSi93sQ6BznFuxSLB11HdvZQ6JW/spahf/P1pAHBQEahr20rs0htZW0UDkM1HmA+nZkXKsw== +- + portfinder@^1.0.28: + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" +@@ -23819,24 +23581,15 @@ postcss@^8.3.5, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.7: + picocolors "^1.0.0" + source-map-js "^1.0.2" + +-postcss@^8.4.33: +- version "8.4.33" +- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" +- integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +- dependencies: +- nanoid "^3.3.7" +- picocolors "^1.0.0" +- source-map-js "^1.0.2" +- + postinstall-build@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/postinstall-build/-/postinstall-build-2.1.3.tgz#9d1886ab2949619f4c206afbe1aea95debe45c94" + integrity sha1-nRiGqylJYZ9MIGr74a6pXevkXJQ= + +-preact@^10.16.0: +- version "10.19.3" +- resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.3.tgz#7a7107ed2598a60676c943709ea3efb8aaafa899" +- integrity sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ== ++preact@^10.12.0, preact@^10.5.9: ++ version "10.13.1" ++ resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.1.tgz#d220bd8771b8fa197680d4917f3cefc5eed88720" ++ integrity sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ== + + prebuild-install@^7.1.1: + version "7.1.1" +@@ -24247,6 +24000,16 @@ qrcode@1.5.3: + pngjs "^5.0.0" + yargs "^15.3.1" + ++qrcode@^1.5.1: ++ version "1.5.1" ++ resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" ++ integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== ++ dependencies: ++ dijkstrajs "^1.0.1" ++ encode-utf8 "^1.0.3" ++ pngjs "^5.0.0" ++ yargs "^15.3.1" ++ + qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" +@@ -24261,6 +24024,13 @@ qs@6.11.0, qs@^6.4.0, qs@^6.7.0, qs@^6.9.4: + dependencies: + side-channel "^1.0.4" + ++qs@^6.10.3: ++ version "6.11.1" ++ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" ++ integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== ++ dependencies: ++ side-channel "^1.0.4" ++ + qs@~6.4.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.1.tgz#2bad97710a5b661c366b378b1e3a44a592ff45e6" +@@ -24281,7 +24051,7 @@ query-string@7.1.3: + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +-query-string@^6.13.8: ++query-string@^6.13.5, query-string@^6.13.8: + version "6.14.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== +@@ -24341,11 +24111,6 @@ r1csfile@0.0.45: + fastfile "0.0.20" + ffjavascript "0.2.57" + +-radix3@^1.1.0: +- version "1.1.0" +- resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" +- integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== +- + raf-schd@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" +@@ -24483,7 +24248,7 @@ react-bootstrap@^1.6.4: + uncontrollable "^7.2.1" + warning "^4.0.3" + +-react-dom@>=17, react-dom@^18.2.0: ++react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== +@@ -24681,7 +24446,7 @@ react-zoom-pan-pinch@^3.1.0: + resolved "https://registry.yarnpkg.com/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.3.0.tgz#873648438c5244d89fcc2127614046928429cbe0" + integrity sha512-vy1h8aenDzXye+HRqANZaSA8IPHoqOiuDPFBkswoyPUH8uMfsmbeH6gFI4r4BhEJa0xIlcA+FbvhidRWKGUrOg== + +-react@>=17, react@^18.2.0: ++react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== +@@ -25015,18 +24780,6 @@ redeyed@~2.1.0: + dependencies: + esprima "~4.0.0" + +-redis-errors@^1.0.0, redis-errors@^1.2.0: +- version "1.2.0" +- resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" +- integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== +- +-redis-parser@^3.0.0: +- version "3.0.0" +- resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" +- integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== +- dependencies: +- redis-errors "^1.0.0" +- + redux@^4.0.0, redux@^4.0.4: + version "4.1.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" +@@ -25063,7 +24816,7 @@ regenerator-runtime@^0.11.0: + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +-regenerator-runtime@^0.13.7: ++regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.7: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +@@ -25728,6 +25481,19 @@ rollup@^2.56.2: + optionalDependencies: + fsevents "~2.3.2" + ++rpc-websockets@^7.5.1: ++ version "7.5.1" ++ resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.1.tgz#e0a05d525a97e7efc31a0617f093a13a2e10c401" ++ integrity sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w== ++ dependencies: ++ "@babel/runtime" "^7.17.2" ++ eventemitter3 "^4.0.7" ++ uuid "^8.3.2" ++ ws "^8.5.0" ++ optionalDependencies: ++ bufferutil "^4.0.1" ++ utf-8-validate "^5.0.2" ++ + rss-parser@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/rss-parser/-/rss-parser-3.12.0.tgz#b8888699ea46304a74363fbd8144671b2997984c" +@@ -25774,7 +25540,7 @@ rustbn.js@~0.2.0: + resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" + integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== + +-rxjs@^6.4.0, rxjs@^6.5.4: ++rxjs@^6.4.0, rxjs@^6.5.4, rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +@@ -25825,6 +25591,11 @@ safe-identifier@^0.4.2: + resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + ++safe-json-utils@^1.1.1: ++ version "1.1.1" ++ resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1" ++ integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== ++ + safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" +@@ -25982,6 +25753,11 @@ selfsigned@^2.1.1: + dependencies: + node-forge "^1" + ++semiver@^1.1.0: ++ version "1.1.0" ++ resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f" ++ integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg== ++ + semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" +@@ -26032,14 +25808,14 @@ semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: + dependencies: + lru-cache "^6.0.0" + +-semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.4.0: ++semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.4.0: + version "7.5.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== + dependencies: + lru-cache "^6.0.0" + +-semver@^7.3.8, semver@^7.5.4: ++semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== +@@ -26296,11 +26072,6 @@ signal-exit@^3.0.7: + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +-signal-exit@^4.1.0: +- version "4.1.0" +- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" +- integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +- + signale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" +@@ -26806,9 +26577,9 @@ split2@^3.0.0: + readable-stream "^3.0.0" + + split2@^4.0.0: +- version "4.2.0" +- resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" +- integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== ++ version "4.1.0" ++ resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" ++ integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + + split@1.0.0: + version "1.0.0" +@@ -26898,11 +26669,6 @@ stacktrace-parser@^0.1.10: + dependencies: + type-fest "^0.7.1" + +-standard-as-callback@^2.1.0: +- version "2.1.0" +- resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" +- integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== +- + state-local@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" +@@ -26933,11 +26699,6 @@ statuses@2.0.1: + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +-std-env@^3.7.0: +- version "3.7.0" +- resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" +- integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== +- + stream-browserify@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" +@@ -27449,6 +27210,11 @@ sumchecker@^3.0.1: + dependencies: + debug "^4.1.0" + ++superstruct@^0.14.2: ++ version "0.14.2" ++ resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" ++ integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== ++ + superstruct@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.3.tgz#de626a5b49c6641ff4d37da3c7598e7a87697046" +@@ -27561,11 +27327,6 @@ syntax-error@^1.1.1: + dependencies: + acorn-node "^1.2.0" + +-system-architecture@^0.1.0: +- version "0.1.0" +- resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" +- integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== +- + tap-out@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tap-out/-/tap-out-2.1.0.tgz#c093079a915036de8b835bfa3297f14458b15358" +@@ -27766,6 +27527,11 @@ test-exclude@^6.0.0: + glob "^7.1.4" + minimatch "^3.0.4" + ++text-encoding-utf-8@^1.0.2: ++ version "1.0.2" ++ resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" ++ integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== ++ + text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" +@@ -28191,7 +27957,7 @@ tslib@2.4.0, tslib@^2.4.0: + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +-tslib@^2.0.0: ++tslib@^2.0.0, tslib@^2.3.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +@@ -28211,11 +27977,6 @@ tslib@^2.1.0: + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.2.tgz#1b6f07185c881557b0ffa84b111a0106989e8338" + integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== + +-tslib@^2.3.1: +- version "2.6.2" +- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" +- integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +- + tslint@~6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.0.0.tgz#1c0148beac4779924216302f192cdaa153618310" +@@ -28402,6 +28163,13 @@ typed-assert@^1.0.8: + resolved "https://registry.yarnpkg.com/typed-assert/-/typed-assert-1.0.9.tgz#8af9d4f93432c4970ec717e3006f33f135b06213" + integrity sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== + ++typedarray-to-buffer@3.1.5: ++ version "3.1.5" ++ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" ++ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== ++ dependencies: ++ is-typedarray "^1.0.0" ++ + typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +@@ -28417,11 +28185,6 @@ ua-parser-js@^1.0.35: + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== + +-ufo@^1.3.0, ufo@^1.3.1, ufo@^1.3.2: +- version "1.3.2" +- resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" +- integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== +- + uglify-js@^2.8.16: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" +@@ -28534,11 +28297,6 @@ uncontrollable@^7.2.1: + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + +-uncrypto@^0.1.3: +- version "0.1.3" +- resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" +- integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== +- + undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" +@@ -28593,22 +28351,6 @@ undici@^5.14.0: + dependencies: + "@fastify/busboy" "^2.0.0" + +-unenv@^1.8.0: +- version "1.9.0" +- resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.9.0.tgz#469502ae85be1bd3a6aa60f810972b1a904ca312" +- integrity sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== +- dependencies: +- consola "^3.2.3" +- defu "^6.1.3" +- mime "^3.0.0" +- node-fetch-native "^1.6.1" +- pathe "^1.1.1" +- +-unfetch@^4.2.0: +- version "4.2.0" +- resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" +- integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== +- + unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" +@@ -28798,32 +28540,6 @@ unset-value@^1.0.0: + has-value "^0.3.1" + isobject "^3.0.0" + +-unstorage@^1.9.0: +- version "1.10.1" +- resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.1.tgz#bf8cc00a406e40a6293e893da9807057d95875b0" +- integrity sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw== +- dependencies: +- anymatch "^3.1.3" +- chokidar "^3.5.3" +- destr "^2.0.2" +- h3 "^1.8.2" +- ioredis "^5.3.2" +- listhen "^1.5.5" +- lru-cache "^10.0.2" +- mri "^1.2.0" +- node-fetch-native "^1.4.1" +- ofetch "^1.3.3" +- ufo "^1.3.1" +- +-untun@^0.1.3: +- version "0.1.3" +- resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.3.tgz#5d10dee37a3a5737ff03d158be877dae0a0e58a6" +- integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== +- dependencies: +- citty "^0.1.5" +- consola "^3.2.3" +- pathe "^1.1.1" +- + unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" +@@ -28875,11 +28591,6 @@ upper-case@^2.0.2: + dependencies: + tslib "^2.0.3" + +-uqr@^0.1.2: +- version "0.1.2" +- resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" +- integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== +- + uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" +@@ -28941,7 +28652,7 @@ use-memo-one@^1.1.1: + resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20" + integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ== + +-use-sync-external-store@1.2.0: ++use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== +@@ -28959,7 +28670,7 @@ username@^5.1.0: + execa "^1.0.0" + mem "^4.3.0" + +-utf-8-validate@5.0.7: ++utf-8-validate@5.0.7, utf-8-validate@^5.0.2: + version "5.0.7" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" + integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== +@@ -29021,7 +28732,7 @@ util@^0.12.3: + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +-util@^0.12.5, util@~0.12.0: ++util@^0.12.4, util@^0.12.5, util@~0.12.0: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== +@@ -29122,10 +28833,18 @@ validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: + dependencies: + builtins "^1.0.3" + +-valtio@1.11.2: +- version "1.11.2" +- resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" +- integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== ++valtio@1.10.6: ++ version "1.10.6" ++ resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.10.6.tgz#80ed00198b949939863a0fa56ae687abb417fc4f" ++ integrity sha512-SxN1bHUmdhW6V8qsQTpCgJEwp7uHbntuH0S9cdLQtiohuevwBksbpXjwj5uDMA7bLwg1WKyq9sEpZrx3TIMrkA== ++ dependencies: ++ proxy-compare "2.5.1" ++ use-sync-external-store "1.2.0" ++ ++valtio@1.11.0: ++ version "1.11.0" ++ resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.0.tgz#c029dcd17a0f99d2fbec933721fe64cfd32a31ed" ++ integrity sha512-65Yd0yU5qs86b5lN1eu/nzcTgQ9/6YnD6iO+DDaDbQLn1Zv2w12Gwk43WkPlUBxk5wL/6cD5YMFf7kj6HZ1Kpg== + dependencies: + proxy-compare "2.5.1" + use-sync-external-store "1.2.0" +@@ -29175,6 +28894,37 @@ vfile@^5.0.0: + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + ++viem@^1.0.0: ++ version "1.2.12" ++ resolved "https://registry.yarnpkg.com/viem/-/viem-1.2.12.tgz#0342f52d05968bd1c2af5db0b9bc569926ae9151" ++ integrity sha512-TMhvqT2VaCaJyBfuNDyL1h8xPFyPDHeX6Qab66TjWscnNcTwkW0gojO4Uh+A4RuPzFxIlWSW+b5SjS8SJHlHpg== ++ dependencies: ++ "@adraffy/ens-normalize" "1.9.0" ++ "@noble/curves" "1.0.0" ++ "@noble/hashes" "1.3.0" ++ "@scure/bip32" "1.3.0" ++ "@scure/bip39" "1.2.0" ++ "@wagmi/chains" "1.2.0" ++ abitype "0.8.11" ++ isomorphic-ws "5.0.0" ++ ws "8.12.0" ++ ++viem@^1.6.0: ++ version "1.6.0" ++ resolved "https://registry.yarnpkg.com/viem/-/viem-1.6.0.tgz#8befa678c3ac79b9558dfd1708130b2ecb1994f4" ++ integrity sha512-ae9Twkd0q2Qlj4yYpWjb4DzYAhKY0ibEpRH8FJaTywZXNpTjFidSdBaT0CVn1BaH7O7cnX4/O47zvDUMGJD1AA== ++ dependencies: ++ "@adraffy/ens-normalize" "1.9.0" ++ "@noble/curves" "1.1.0" ++ "@noble/hashes" "1.3.0" ++ "@scure/bip32" "1.3.0" ++ "@scure/bip39" "1.2.0" ++ "@types/ws" "^8.5.4" ++ "@wagmi/chains" "1.6.0" ++ abitype "0.9.3" ++ isomorphic-ws "5.0.0" ++ ws "8.12.0" ++ + vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" +@@ -29233,22 +28983,23 @@ void-elements@^2.0.0: + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + +-vue@>=3: +- version "3.4.15" +- resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" +- integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== +- dependencies: +- "@vue/compiler-dom" "3.4.15" +- "@vue/compiler-sfc" "3.4.15" +- "@vue/runtime-dom" "3.4.15" +- "@vue/server-renderer" "3.4.15" +- "@vue/shared" "3.4.15" +- + w3c-blob@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/w3c-blob/-/w3c-blob-0.0.1.tgz#b0cd352a1a50f515563420ffd5861f950f1d85b8" + integrity sha1-sM01KhpQ9RVWNCD/1YYflQ8dhbg= + ++wagmi@^1.3.10: ++ version "1.3.10" ++ resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-1.3.10.tgz#100aeaecf7a030e9e91118d366a734ec30c56551" ++ integrity sha512-MMGJcnxOmeUZWDmzUxgRGcB1cqxbJoSFSa+pNY4vBCWMz0n4ptpE5F8FKISLCx+BGoDwsaz2ldcMALcdJZ+29w== ++ dependencies: ++ "@tanstack/query-sync-storage-persister" "^4.27.1" ++ "@tanstack/react-query" "^4.28.0" ++ "@tanstack/react-query-persist-client" "^4.28.0" ++ "@wagmi/core" "1.3.9" ++ abitype "0.8.7" ++ use-sync-external-store "^1.2.0" ++ + walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" +@@ -30045,7 +29796,12 @@ ws@7.4.6: + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +-ws@8.13.0, ws@^8.8.1: ++ws@8.12.0: ++ version "8.12.0" ++ resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" ++ integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== ++ ++ws@8.13.0, ws@^8.5.0, ws@^8.8.1: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== +@@ -30073,11 +29829,16 @@ ws@^7.3.0, ws@^7.5.0: + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" + integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== + +-ws@^7.3.1, ws@^7.4.6, ws@^7.5.1: ++ws@^7.3.1, ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + ++ws@^8.13.0: ++ version "8.16.0" ++ resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" ++ integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== ++ + ws@^8.4.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" +@@ -30407,11 +30168,18 @@ yocto-queue@^0.1.0: + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +-zod@3.22.4, zod@^3.21.4: ++zod@^3.21.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== + ++zustand@^4.3.1: ++ version "4.3.6" ++ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.6.tgz#ce7804eb75361af0461a2d0536b65461ec5de86f" ++ integrity sha512-6J5zDxjxLE+yukC2XZWf/IyWVKnXT9b9HUv09VJ/bwGCpKNcaTqp7Ws28Xr8jnbvnZcdRaidztAPsXFBIqufiw== ++ dependencies: ++ use-sync-external-store "1.2.0" ++ + zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" diff --git a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts index 86fef067ec..9944f29ec4 100644 --- a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts +++ b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts @@ -31,7 +31,7 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli }); - if (!word.endsWith('\n') && + if (!word.endsWith(' ') && !word.endsWith(';') && !word.endsWith('.') && !word.endsWith('(')) { @@ -94,8 +94,12 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli } const generatedText = (result as any).output[0].generated_text as string - const clean = generatedText + let clean = generatedText console.log('solcoder inline data:\n', clean) + if (generatedText.indexOf('@custom:dev-run-script./') !== -1) { + clean = generatedText.replace('@custom:dev-run-script', '@custom:dev-run-script ') + } + clean = clean.replace(word, '') const item: monacoTypes.languages.InlineCompletion = { insertText: clean 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 54c0644248..41614f2e38 100644 --- a/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx +++ b/libs/remix-ui/settings/src/lib/remix-ui-settings.tsx @@ -136,15 +136,49 @@ export const RemixUiSettings = (props: RemixUiSettingsProps) => { props.plugin.call('copilot-suggestion', 'uninstall') return } - if (await props.plugin.call('copilot-suggestion', 'status')) { - copilotActivate(props.config, true, dispatch) - } else { - props.plugin.call('copilot-suggestion', 'uninstall') - copilotActivate(props.config, false, dispatch) + + const message =
    Please wait while the copilot is downloaded. 0/100 .
    + props.plugin.on('copilot-suggestion', 'loading', (data) => { + if (!copilotDownload.current) return + const loaded = ((data.loaded / data.total) * 100).toString() + const dot = loaded.match(/(.*)\./g) + copilotDownload.current.innerText = dot ? dot[0].replace('.', '') : loaded + }) + const modalActivate: AppModal = { + id: 'loadcopilotActivate', + title: 'Download Solidity copilot', + modalType: ModalTypes.default, + okLabel: 'Close', + message, + okFn: async() => { + props.plugin.off('copilot-suggestion', 'loading') + if (await props.plugin.call('copilot-suggestion', 'status')) { + copilotActivate(props.config, true, dispatch) + } else { + props.plugin.call('copilot-suggestion', 'uninstall') + copilotActivate(props.config, false, dispatch) + } + }, + hideFn: async () => { + props.plugin.off('copilot-suggestion', 'loading') + if (await props.plugin.call('copilot-suggestion', 'status')) { + copilotActivate(props.config, true, dispatch) + } else { + props.plugin.call('copilot-suggestion', 'uninstall') + copilotActivate(props.config, false, dispatch) + } } + } + + if (await props.plugin.call('copilot-suggestion', 'status')) { + copilotActivate(props.config, true, dispatch) + } else { + props.plugin.call('copilot-suggestion', 'uninstall') + copilotActivate(props.config, false, dispatch) + } - props.plugin.call('copilot-suggestion', 'init') - + props.plugin.call('copilot-suggestion', 'init') + props.plugin.call('notification', 'modal', modalActivate) } const onchangeCopilotMaxNewToken = (event) => {