From a1f44f6123448b9f2b641c574f5f183c2fbef954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:13:08 +0200 Subject: [PATCH 01/28] switched open gpt to solcoder for error explaining --- .../src/app/components/feedbackAlert.tsx | 2 +- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 31 ++++++++++++++++++- apps/vyper/src/app/utils/remix-client.tsx | 5 ++- libs/remix-ui/renderer/src/lib/renderer.tsx | 6 ++-- .../terminal/src/lib/remix-ui-terminal.tsx | 5 +-- .../terminal/src/lib/terminalWelcome.tsx | 3 -- 6 files changed, 41 insertions(+), 11 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx index 3edf89cc20..5bc7114520 100644 --- a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx +++ b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx @@ -24,7 +24,7 @@ export function FeedbackAlert ({ message, askGPT }: FeedbackAlertProps) { { e.stopPropagation() askGPT() - }}>ASK GPT + }}>ASK SOL-GPT diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 94687d3440..44e7a8121e 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -15,7 +15,7 @@ const profile = { name: 'solcoder', displayName: 'solcoder', description: 'solcoder', - methods: ['code_generation', 'code_completion', "solidity_answer", "code_explaining", "code_insertion"], + methods: ['code_generation', 'code_completion', "solidity_answer", "code_explaining", "code_insertion", "error_explaining"], events: [], maintainedBy: 'Remix', } @@ -218,6 +218,35 @@ export class SolCoder extends Plugin { } } + async error_explaining(prompt): Promise { + this.emit("aiInfering") + this.call('layout', 'maximizeTerminal') + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + + let result + try { + result = await( + await fetch(this.api_url, { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ "data":[prompt, "error_explaining", false,2000,0.9,0.8,50]}), + }) + ).json() + if (result) { + this.call('terminal', 'log', { type: 'aitypewriterwarning', 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") + } + } + _build_solgpt_promt(user_promt:string){ if (this.solgpt_chat_history.length === 0){ return user_promt diff --git a/apps/vyper/src/app/utils/remix-client.tsx b/apps/vyper/src/app/utils/remix-client.tsx index 088aa6c36d..3de036f352 100644 --- a/apps/vyper/src/app/utils/remix-client.tsx +++ b/apps/vyper/src/app/utils/remix-client.tsx @@ -5,6 +5,7 @@ import {PluginClient} from '@remixproject/plugin' import {Contract, compileContract} from './compiler' import {ExampleContract} from '../components/VyperResult' import EventEmitter from 'events' +const _paq = (window._paq = window._paq || []) export type VyperComplierAddress = 'https://vyper2.remixproject.org/' | 'http://localhost:8000/' @@ -66,11 +67,13 @@ export class RemixClient extends PluginClient { return } try { + // TODO: remove! no formatting required since already handled on server const formattedMessage = ` ${message} can you explain why this error occurred and how to fix it? ` - await this.client.call('openaigpt' as any, 'message', formattedMessage) + await this.client.call('solcoder' as any, 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining']) } catch (err) { console.error('unable to askGpt') console.error(err) diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 00a7af8ab3..6d830a8230 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -75,8 +75,8 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { try { const content = await plugin.call('fileManager', 'readFile', editorOptions.errFile) const message = intl.formatMessage({ id: 'solidity.openaigptMessage' }, { content, messageText }) - await plugin.call('openaigpt', 'message', message) - _paq.push(['trackEvent', 'ai', 'openai', 'explainSolidityError']) + await plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_SolidityError']) } catch (err) { console.error('unable to askGtp') console.error(err) @@ -111,7 +111,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { onClick={() => { askGtp() }} style={{ borderColor: "var(--ai)" }} > - ASK GPT + ASK SOL-GPT 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 b5edd8a425..7936cda55e 100644 --- a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx +++ b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx @@ -235,10 +235,11 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { try { if (script.trim().startsWith('git')) { // await this.call('git', 'execute', script) code might be used in the future + // TODO: rm gpt or redirect gpt to sol-pgt } else if (script.trim().startsWith('gpt')) { call('terminal', 'log',{ type: 'warn', value: `> ${script}` }) - await call('openaigpt', 'message', script) - _paq.push(['trackEvent', 'ai', 'openai', 'askFromTerminal']) + await call('solcoder', 'solidity_answer', script) + _paq.push(['trackEvent', 'ai', 'solcoder', 'askFromTerminal']) } else if (script.trim().startsWith('sol-gpt')) { call('terminal', 'log',{ type: 'warn', value: `> ${script}` }) await call('solcoder', 'solidity_answer', script) diff --git a/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx b/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx index 7fb7dbea23..1d1dcf77c8 100644 --- a/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx +++ b/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx @@ -54,9 +54,6 @@ const TerminalWelcomeMessage = ({ packageJson, storage }) => { ethers.js {' '} -
  • - gpt <your question here> {' '} -
  • sol-gpt <your Solidity question here> {' '}
  • From 8784cdb4fadc7c9296ab6f834cb1cd8fca16cb48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:28:02 +0200 Subject: [PATCH 02/28] added support for circom errors and modfied also function explain --- apps/circuit-compiler/src/app/components/container.tsx | 10 +++++++--- libs/remix-ui/editor/src/lib/remix-ui-editor.tsx | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/container.tsx b/apps/circuit-compiler/src/app/components/container.tsx index 51cc280594..0b67e6b153 100644 --- a/apps/circuit-compiler/src/app/components/container.tsx +++ b/apps/circuit-compiler/src/app/components/container.tsx @@ -11,6 +11,7 @@ import { WitnessToggler } from './witnessToggler' import { WitnessSection } from './witness' import { CompilerFeedback } from './feedback' import { CompilerReport, PrimeValue } from '../types' +const _paq = (window._paq = window._paq || []) export function Container () { const circuitApp = useContext(CircuitAppContext) @@ -73,7 +74,8 @@ export function Container () { explain why the error occurred and how to fix it. ` // @ts-ignore - await circuitApp.plugin.call('openaigpt', 'message', message) + await circuitApp.plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } else { const message = ` error message: ${error} @@ -81,7 +83,8 @@ export function Container () { explain why the error occurred and how to fix it. ` // @ts-ignore - await circuitApp.plugin.call('openaigpt', 'message', message) + await circuitApp.plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } else { const error = report.message @@ -91,7 +94,8 @@ export function Container () { explain why the error occurred and how to fix it. ` // @ts-ignore - await circuitApp.plugin.call('openaigpt', 'message', message) + await circuitApp.plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } 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 a0ed7626aa..b29586115e 100644 --- a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +++ b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx @@ -739,8 +739,8 @@ export const EditorUI = (props: EditorUIProps) => { const file = await props.plugin.call('fileManager', 'getCurrentFile') const content = await props.plugin.call('fileManager', 'readFile', file) const message = intl.formatMessage({ id: 'editor.explainFunctionByAI' }, { content, currentFunction: currentFunction.current }) - await props.plugin.call('openaigpt', 'message', message) - _paq.push(['trackEvent', 'ai', 'openai', 'explainFunction']) + await props.plugin.call('solcoder', 'code_explaining', message, content) + _paq.push(['trackEvent', 'ai', 'solcoder', 'explainFunction']) }, } From f965b247b94e95299e418230a08a02c5a7e0df95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:38:35 +0200 Subject: [PATCH 03/28] added documentation generation --- libs/remix-ui/editor/src/lib/remix-ui-editor.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 b29586115e..ed28f65618 100644 --- a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +++ b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx @@ -723,8 +723,8 @@ export const EditorUI = (props: EditorUIProps) => { const file = await props.plugin.call('fileManager', 'getCurrentFile') const content = await props.plugin.call('fileManager', 'readFile', file) const message = intl.formatMessage({ id: 'editor.generateDocumentationByAI' }, { content, currentFunction: currentFunction.current }) - await props.plugin.call('openaigpt', 'message', message) - _paq.push(['trackEvent', 'ai', 'openai', 'generateDocumentation']) + await props.plugin.call('solcoder', 'code_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'generateDocumentation']) }, } From 87a6583c318c5d7ca492e042c0b5cc9d1e36083f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:58:02 +0200 Subject: [PATCH 04/28] moved logs to solcoderAI.tsx --- .../src/app/components/container.tsx | 6 +- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 13 +++ apps/remix-ide/src/assets/list.json | 106 +++--------------- apps/vyper/src/app/utils/remix-client.tsx | 3 - .../lib/providers/inlineCompletionProvider.ts | 3 - 5 files changed, 27 insertions(+), 104 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/container.tsx b/apps/circuit-compiler/src/app/components/container.tsx index 0b67e6b153..40cf20f5df 100644 --- a/apps/circuit-compiler/src/app/components/container.tsx +++ b/apps/circuit-compiler/src/app/components/container.tsx @@ -11,7 +11,6 @@ import { WitnessToggler } from './witnessToggler' import { WitnessSection } from './witness' import { CompilerFeedback } from './feedback' import { CompilerReport, PrimeValue } from '../types' -const _paq = (window._paq = window._paq || []) export function Container () { const circuitApp = useContext(CircuitAppContext) @@ -54,7 +53,7 @@ export function Container () { const handleCircuitAutoCompile = (value: boolean) => { circuitApp.dispatch({ type: 'SET_AUTO_COMPILE', payload: value }) } - + const handleCircuitHideWarnings = (value: boolean) => { circuitApp.dispatch({ type: 'SET_HIDE_WARNINGS', payload: value }) } @@ -75,7 +74,6 @@ export function Container () { ` // @ts-ignore await circuitApp.plugin.call('solcoder', 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } else { const message = ` error message: ${error} @@ -84,7 +82,6 @@ export function Container () { ` // @ts-ignore await circuitApp.plugin.call('solcoder', 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } else { const error = report.message @@ -95,7 +92,6 @@ export function Container () { ` // @ts-ignore await circuitApp.plugin.call('solcoder', 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 44e7a8121e..6e5efcf7bd 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -50,6 +50,8 @@ export class SolCoder extends Plugin { async code_generation(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') + _paq.push(['trackEvent', 'ai', 'solcoder', 'code_generation']) + let result try { result = await( @@ -78,6 +80,9 @@ export class SolCoder extends Plugin { async solidity_answer(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + _paq.push(['trackEvent', 'ai', 'solcoder', 'answering']) + let result try { const main_prompt = this._build_solgpt_promt(prompt) @@ -112,6 +117,9 @@ export class SolCoder extends Plugin { async code_explaining(prompt, context:string=""): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) + let result try { result = await( @@ -138,6 +146,8 @@ export class SolCoder extends Plugin { async code_completion(prompt, options:SuggestOptions=null): Promise { this.emit("aiInfering") + _paq.push(['trackEvent', 'ai', 'solcoder', 'code_completion']) + let result try { result = await( @@ -184,6 +194,8 @@ export class SolCoder extends Plugin { async code_insertion(msg_pfx, msg_sfx): Promise { this.emit("aiInfering") + _paq.push(['trackEvent', 'ai', 'solcoder', 'code_insertion']) + let result try { result = await( @@ -222,6 +234,7 @@ export class SolCoder extends Plugin { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result try { diff --git a/apps/remix-ide/src/assets/list.json b/apps/remix-ide/src/assets/list.json index 04a4929e01..6a55fff4f7 100644 --- a/apps/remix-ide/src/assets/list.json +++ b/apps/remix-ide/src/assets/list.json @@ -8,7 +8,6 @@ "keccak256": "0x4a1c2a6a4896edefd3a4178a6c3ed8f1de625bd7c00dd7cc5781a9f36236e7db", "sha256": "0xee7ba01680ed3a1c1cda236189a51c1e6ff99f6dca602a580e5b16441772b50b", "urls": [ - "bzzr://83e99aa35ae67e71bf77040e5b4686aeb3558919f172b6c28213a4dcd8d79e91", "dweb:/ipfs/Qme9brfZS3XhbiRbbNDKhBpgFknyD92omMmYa7XSf56bJP" ] }, @@ -20,7 +19,6 @@ "keccak256": "0x07994ad8c59c498bf44ca8e84914e27b79be964d98a9556226db377819d67387", "sha256": "0xb83d2025e0bbc7f7f0dc9e47f5aa22eacb548b42c55add8f5f6822c105163500", "urls": [ - "bzzr://414fc715062f91971c8e0d9fbdf470dd24a8a35f4f96df0ba79980cdb0ae7eaa", "dweb:/ipfs/QmcBZ6Q2iHmrf9omvD7Jyy8kgrqyPmZFwvKWqvVDaxo1Ta" ] }, @@ -32,7 +30,6 @@ "keccak256": "0x4c358c2e90447ad9e7c1816b5be8edde1172f67dedf16755a6c7373ede46b245", "sha256": "0x9825565e1f199dbed6de01d27e10f83a9180300acab80f8469bf427e3cf92e96", "urls": [ - "bzzr://6ecbe30c4c8530b82d55ed6bec12e63efbab1cb16868b020d65399a8793599a6", "dweb:/ipfs/QmcEK5gvWNeHUtjsF3B6j5AXb9uNoG3aHbPrCMJDx7C8TM" ] }, @@ -44,7 +41,6 @@ "keccak256": "0xb67df5c37e8255e0de7918b6d3261f0f29e277d121bf5f414b66157a5b1070cd", "sha256": "0x67f8a94b60278cfb80d505c47a1a5e67ec2caf20167ef85f2bdf2a80a692bd1b", "urls": [ - "bzzr://7ba69a10a4585d0a36e5843603476061e8b02878331fa580d5c2509ef01ddaa6", "dweb:/ipfs/QmVumPvgQVFLZvDvQddcDGcdxjbVWTTzxoQvJAECBBZ6Ju" ] }, @@ -56,7 +52,6 @@ "keccak256": "0x62a65d0a951617f022524fc844ca11d90266f64e693343a2f41107183bf364c1", "sha256": "0x66da311056ec26c9c3fb501350ee22187c30e79c41bf2713eeff7d84479948c5", "urls": [ - "bzzr://ccf4f1e05d942946bcca929e9263c541b2749bf1faf6dc6c211b4bf700344d71", "dweb:/ipfs/QmXf2cKYJ26tXAU6A6tmUk2dn4tuX3CWNaXJVnGLuoe15y" ] }, @@ -68,7 +63,6 @@ "keccak256": "0x06afcb6dc23efb1482545b63c5e3983dded0c383ecc46c3ae319f7b868201e47", "sha256": "0x9e386edb2ee759ad65792f7d62c10ae7edf65c5b874a5451f1e695e586b69eea", "urls": [ - "bzzr://e93e97b9989cd59673bb1fd64a0f940e8729c3c40b819593b8590480cba24bea", "dweb:/ipfs/QmSJFaZhpXQ2EPF2koyiTNAiiuJRykv1Q8yubhkmBhvYyu" ] }, @@ -80,7 +74,6 @@ "keccak256": "0xcdf7c4d4c6b9331b755170fa927692019c94088f87f100d2c3c920bcc3740d0b", "sha256": "0x7184dae0b761485a5dce66b50075e17857c5b55fe3fa71fe22d4d5acc0839741", "urls": [ - "bzzr://e21d2bd58112fb165fa2c253504bf49ceca661ac1009d270a31cb996560cfa34", "dweb:/ipfs/QmYJuZgMbeMiotHAFNWEXdxjTa5yi7GaV4UkgBYABomFpj" ] }, @@ -92,7 +85,6 @@ "keccak256": "0x52ca702b8ed4b1e6d43d8a006b3d27f6dba611bac118c523711bfd209fb1cc9d", "sha256": "0x8db9466df3b91c52e3412cebd13176ea9fe16d3239d000828a081c34ce899337", "urls": [ - "bzzr://24dc5536a4771b2336fa304f3cd38d5203b6ab49c78a3057ec578991f3fcf265", "dweb:/ipfs/QmZZ9hNntBxJw3G7LGW3e8nXtnGxLnaSMM44K4BbLrkELs" ] }, @@ -104,7 +96,6 @@ "keccak256": "0xcd8a6a8b2626de75ef6ff73fb724f3ad5693a8902f86e88290f048b56182e7cc", "sha256": "0xd28a58fbc3ce56ff650d4daf3a1d8092e25cadf2a5b2769fd333b321dfc6a22d", "urls": [ - "bzzr://6a5d22e366c35f184d5203f3e062131018d8a4d09cf770a0720cfaf4d7b49705", "dweb:/ipfs/QmfHjv4nYKuv3yFpWZqBYyiYEYmkQGydQmFT5b6mJkFpWp" ] }, @@ -116,7 +107,6 @@ "keccak256": "0x43c96fc79cf288cecda12b23a17f30b1cf0427a19dc7c1c094bb461eabefe0df", "sha256": "0x9af176f42b63eaec838999a07e80484f92f41a0fc497adefa65baf88d8fbecaf", "urls": [ - "bzzr://fc0e644a61e43592754b66f8d911c91312538debb89da29ffda3d3fd81ff70d9", "dweb:/ipfs/Qmf7WYJJ8y6oHr4RQ7HC4tXgFPGvsnp3Qf6TrMBdK52Y5Z" ] }, @@ -128,7 +118,6 @@ "keccak256": "0xbe94ff397be2a951cbeb6c9c1a60ddf531d0ce76f45d51755386b6fa42cc2e2c", "sha256": "0x6ff1683eb76dc58c31043fea474be6da8535ec625d1cd8331a3daead84fd5564", "urls": [ - "bzzr://6e134aa89a00a18d930924fc2fad2aa434f80b6a71085ff2ab379e3672c812e7", "dweb:/ipfs/QmeBWFbK1aAxnB6muXWStZJWndrFvMJt4xfAzEJD7AqaY3" ] }, @@ -140,7 +129,6 @@ "keccak256": "0x178e51ad0c6a350ec4ed6fd07675dfd4d2581ee07b14b4954dd0b0f6d8633ca5", "sha256": "0xd70ca2f656a88a9be7a3f7d602f03b30149b3bda0d1057cfa3a3c5e3d6e07453", "urls": [ - "bzzr://6e43013ff973198d7fcc4a43910041f2f07d0099f4252737a2a2545443b11105", "dweb:/ipfs/QmarthW41sfbrdkMmCK6jicXFZDGgvALzdgzygtUqEauae" ] }, @@ -152,7 +140,6 @@ "keccak256": "0xb8c3f5654b323cea016c0cc1a4584069714cdf796489efe2496a13f8f83a0e63", "sha256": "0xdeb3c274f8b840d657e2f9b1dba602e89f58b1bf3fd7178c48c9033310a1f006", "urls": [ - "bzzr://084452a20ae520bba965ba0b863f3d6de0516d1f92ddb512a138fb787d841c55", "dweb:/ipfs/QmNUf8dTW9xANAvJmV1ho279AyWSCCvDp6bXet1QTcS2z5" ] }, @@ -164,7 +151,6 @@ "keccak256": "0x598af6fec02a6783d6a438a6bb0f7d3012716d003f7bf6c9ac5a4d2bc911941b", "sha256": "0xd522b307a014a32ed5815b05045c4396abc047e70c8a53c1e3ef92e14daa61c6", "urls": [ - "bzzr://cef259b97217a7526819155f6dd513768be5f8718324ec3a63c315071e2f7c70", "dweb:/ipfs/QmWGK9FbQiNWNeqysvCNCBw3q7cR1dzpnD1EKtNija2zyK" ] }, @@ -176,7 +162,6 @@ "keccak256": "0x93f7046d6e0ea2492ec5229936821b3b020dbe9eb2e1193953389293d64a190b", "sha256": "0x68ace74ca809ff47b09449d4054c77907d9412f14f6003d5475b60f4fec13709", "urls": [ - "bzzr://8943b9e6d4ec52bda1b8fbd65509168ba3388651a30cb495d5280cfbf35614d7", "dweb:/ipfs/Qmco9fGHM6mdaPVYqeDQ11GB3BrCbwRcEzM5XzHpAdAVWc" ] }, @@ -188,7 +173,6 @@ "keccak256": "0x7def3c264883cbe6ffbfc54894e48f9a0d2984ddbd1145eb898758d2a41d1559", "sha256": "0x54f3dc64f2ff5a5350410f6157a537d96fb4aeec90476e90a951ddfbd1fe4bca", "urls": [ - "bzzr://3428015c422bb223c3fe8c3a85615081981c47ead375564c16701b261948f0f1", "dweb:/ipfs/QmXyyuEWhexuez2rzAeFjunpiAhncD1AfcXitGNHxpRWha" ] }, @@ -200,7 +184,6 @@ "keccak256": "0x9ffa9ee890ec483580c0b4ed72270b16e92eb0b7a8a97fb00c257f8809aa4023", "sha256": "0x3e64525797e0b2d9abaeb022688cc02d63fc5820327e382fc6574a7de650dc97", "urls": [ - "bzzr://395f2d903c162ddc9b6ebd76db450ca6cb9cf8bb276c3d705aa462ae560d23ab", "dweb:/ipfs/QmW2rPbEtiVAbWJxtizzDqTjwpRpXCxkpSR696g9GxAYKT" ] }, @@ -212,7 +195,6 @@ "keccak256": "0xf0a6c32af3eaa2f8c6d9e6c8b90f3bac5e775c7f1c90a61c1e72b593fbb1528d", "sha256": "0x0e6d842e941cd8b76280c59f28f6d020af1afdea8e4be9d9da677ac5dbe860c6", "urls": [ - "bzzr://f44b067fda20d169321fd3616f68633fd7a4277b6340f42f74203f33dad4a472", "dweb:/ipfs/QmSwumWbYwYe4xLcqpi38VNtw7xCgbNaUkRhiZro9EnqLt" ] }, @@ -224,7 +206,6 @@ "keccak256": "0xeb8c3c474b5fa792f9b1b2ac6be945c32f835ccdc059deb562da4e99a031eab9", "sha256": "0x7fe677e8214d0486fa7164f797862fae0a0fefb7b72cf6ad8e728faa54f12b60", "urls": [ - "bzzr://37026d0ee2865c52fff8f6311b67b94f96dbb52ce8af3f84c3a9aeb47b12bf47", "dweb:/ipfs/QmbgEAtdmSoxH4cfRJXj7mVpKv9rT5Cq2YmXmAnjgsyqBC" ] }, @@ -236,7 +217,6 @@ "keccak256": "0xf824e695e8e66079b4b6063622c7dd80ed056d29969c8c3babac4fb572f3dfec", "sha256": "0x5bb50839ba5116bf31669f3de8dad72eaec298ba32a643be7d0dc2d1392c54d6", "urls": [ - "bzzr://d847bc8f5d43cd348346c5bb253269de36f00810c2e189ca64a4becdb9e9312f", "dweb:/ipfs/Qmf5RrLbWeMykvWJbCyyThCLQ9YVmU8uWagMdSp9nNzZMc" ] }, @@ -248,7 +228,6 @@ "keccak256": "0xa60eadfddbfda0daebb8a1b883b89d33b800cff7ce7e12458170ea17cd5ede58", "sha256": "0x8c2a69fbab9bdf503538028c697e09e51a7e699323ae7100c375cb35c415a819", "urls": [ - "bzzr://87e29a7298d49b8b52ed01d6146b05aa41c11a85d1b805dd48181ac2ed5e9b22", "dweb:/ipfs/QmSZEQEGuVJ7hudg8FzfDMXKVtn5AVGKaxbhSSDXwpX73K" ] }, @@ -260,7 +239,6 @@ "keccak256": "0x6c6dfa967526b7060634474ef730761711e5be662abf5ee02dc05985abfadec9", "sha256": "0x9852ad94048600cc5a1458b4a7ab625996844c809b314422693bdc81d953fcc0", "urls": [ - "bzzr://3edc1542fb719d3e08138b492a5db06333fb36055a434c3b071b2dcb69e54fbc", "dweb:/ipfs/QmcsCpg6kfp7Vea4y9qPtfDXcaQJbDidb65n3t9f2MFDpR" ] }, @@ -272,7 +250,6 @@ "keccak256": "0xd0f9a689670184ad874ca6a2cb40dfe57e9cf539d9330ca3f2501951478eace8", "sha256": "0x4197bb1cb0ea7e637ed8a0e7810f1bfe32c90d0151d6f423bb3dfeef9f6777c4", "urls": [ - "bzzr://1abbc4967f3c6c5124f8876abe521d508c71b0d0d64dc066c1e7a1bfe6ba596d", "dweb:/ipfs/QmY7UN95hdfFSD1jwFANegze5eLX8PgP5BfWFH1usTB8Sw" ] }, @@ -284,7 +261,6 @@ "keccak256": "0x50972c5b966188341d133aa58fbf895c54655d7bd733fb5ad58852e85f9f9444", "sha256": "0x73458d16a3e34fc7b489d2399b3680cccfc968d01abc9f1b61e438b6fb0c24a1", "urls": [ - "bzzr://9eab5a9c94bde3d90eb76a1189febd5ae4d6c7bbc63cc1d76e8871e14e6e9b89", "dweb:/ipfs/QmPUJNa1LYaThwLQsw6fF5DMYyDfEg57gmD5wCsazkLS8c" ] }, @@ -296,7 +272,6 @@ "keccak256": "0x74f927b4f520d8d31863996a100ebc7827f919c77f777f6d4d416c6e613a03c7", "sha256": "0x98c350cc41f873af84a78d1e24cbc8449045ee54923af0a39440e4d84600dc50", "urls": [ - "bzzr://a052dbfe589a766af66d85d4d797829241e867e0ead93fbf3d5e492c71b6434f", "dweb:/ipfs/QmZbo5YkSbcenWrUDjiCvUZdQe4UrNBw9vtx9nbgcMdRAs" ] }, @@ -308,7 +283,6 @@ "keccak256": "0x4cc2bb4c8894ad4349a88f330ba74d7ea643030d3f68037d1c94c370b6a25dd7", "sha256": "0xf83e8f7014ad6b8bc801dc3684c644e372673ed678425c35aea5d4b4fe37e922", "urls": [ - "bzzr://2aae73578e361285488b6319e8e7b27e23b2736eeee3953cd65f1207cd849395", "dweb:/ipfs/QmauztXLDUdwJitA4Uc9MQYCTttUcivR5foTZYgwt4aAeC" ] }, @@ -320,7 +294,6 @@ "keccak256": "0x92b9c5de10bd908527e9cfba3f04bbe637163b4a5313c5a69179ccddd5fa6685", "sha256": "0x782a999d3e1227c86854e7e29954ee856c6ae684124b9facf09f4f1724dc4e85", "urls": [ - "bzzr://fb1e9b951ce8abe575f8514bff6baa01417a988a399fab1dd27a252e7812d1bc", "dweb:/ipfs/QmUtwmzqqCftcubfyGwAefLBQ8ffp8EFhW7HCEQfhaviFs" ] }, @@ -332,7 +305,6 @@ "keccak256": "0xc9c60203789ef778b9104ae7a39e9090b3d1256b24983d49e40e7d1e3c3ed65d", "sha256": "0x264d0d25e31cb32f4369f82ba3ad0b6a84a8a1975b10bd738123ddf947618840", "urls": [ - "bzzr://335a6b94d26623dcaa4590ccd6d7529db1e153b65af3bf7def45fffaf9ee256a", "dweb:/ipfs/QmRd1uRbHRvpybQk5TQ11zyqmG4wQqHnefgvYdJ14V5D8x" ] }, @@ -344,7 +316,6 @@ "keccak256": "0x2921f518cf5a0627d96e07e8c3d2b5482dbbf14d7dc6bbb055481c46d98903f3", "sha256": "0xaf811843add541705ff65f0c20fd864bd0387116544524fa1830cf67a14af6c4", "urls": [ - "bzzr://31231abb33dc43d0478f03a4c8b15b161b172097c884307cf6cf64aeb83a6dc9", "dweb:/ipfs/QmYLhaeGbq3tFdCUC2pvtA8QdGnCbA8kn24z3C741k5TUE" ] }, @@ -356,7 +327,6 @@ "keccak256": "0x1980cf8a81c6bd2b371bf7d9145c819a7fb2d72e9aa462aaff0c10b4eccd595c", "sha256": "0x69cb1300b5f72eb128604507991d9ada97180d31afde7c59aa3fa3ae9ad5200d", "urls": [ - "bzzr://7f35988e2c32ed2f3f1885fb81ace357b1555964d23085940980cacd29023da6", "dweb:/ipfs/QmPfxPYsYysRR8HFkWr47FMQ8ardmfmtrmdYc2ogT9Gfp9" ] }, @@ -368,7 +338,6 @@ "keccak256": "0x3efd0585a3c00a1a2c62e590e22a69aa981d1b5148af2ebdbe1610dff93cea78", "sha256": "0xaff4ca62ac0b03cb4b9c50f8250e2e7307b5c75fefc9847f269bd05c20367148", "urls": [ - "bzzr://e30e085b875fc291e5ee46ed7c88c28ec8e8c540ad8c799b106c365a52df9e97", "dweb:/ipfs/QmaZrQSg8njYzFXH2PzwxHDLKxkBhKmYmLm43DJWnurPeJ" ] }, @@ -380,7 +349,6 @@ "keccak256": "0x9b7a39606c3c27a8619b3eb493efca512cbd26c5ab7fc95489564239aab32a50", "sha256": "0x24b4cbc28d68bde8455c14a46b55e4f292c3c295271e09991b2176a487cb4487", "urls": [ - "bzzr://3bccb9b8cee48b99b39f2f1296f7353bcd39c1ae61b1e19e5add7cedd0256cb2", "dweb:/ipfs/QmQmkd5FGiKKg8eRmo3L7Cn62nuV1M6GRDUGiq5bAx4AWx" ] }, @@ -392,7 +360,6 @@ "keccak256": "0x4a6244b03de1968f0a48800e75640921d62b7602d0301093e1c5c318d1effb36", "sha256": "0x91ed0cf4390f33174a4aaf49d1ce7cd9c72e28b95d2f9422314a29b2144b2042", "urls": [ - "bzzr://a5ab50564d82e6d55b462f4f85284d3fac294c78f2699b680544bc7efde2fb16", "dweb:/ipfs/QmRPchg1b5ofkLnLTPuunfSMKnxbXcZyzSR4NkyJAYUTrR" ] }, @@ -404,7 +371,6 @@ "keccak256": "0xf46cb35b3aefb9b3d59a1fb4c151eb23a0f0a05387b379b3e7fbed1c01c861df", "sha256": "0xaf812445476c101ae5ef92941c79eaebf57b39d455bdfb54a6a86b4ab6ca498c", "urls": [ - "bzzr://2e72b599d5a700cbd03d9f7ca082464b4823dbaabfc5e1031075b9631c005d35", "dweb:/ipfs/QmPYEmgLWDjk7kPGovojurz7fzdGv8Ti3H66nEzRzdiGwh" ] }, @@ -416,7 +382,6 @@ "keccak256": "0x66669372d2d958bfeb5129a387dbc3882a96e260fc12e2910a7eb148b8ea5dd6", "sha256": "0x9ffc04d0aee2c817ae6a897b1ba5aaca2bcd860416aaddfaa4de553fc1ad6e8e", "urls": [ - "bzzr://5f5dbf4ebe3be5dbe3e917a2de3908b3a9ed24207a6406a6e434e6f041e993c4", "dweb:/ipfs/QmYWL8Z3yXfCuhrprimdLhYFkjR74TjFHULxcABbUipetv" ] }, @@ -428,7 +393,6 @@ "keccak256": "0x27e324f75dd52eb180569e7a8865048253e5fcdaacc52e7c998ecaeb78dcdabd", "sha256": "0xfd7c4e652d5891c84d93b28c90b8ac58c9253d2a3677935883a337ee96087b8f", "urls": [ - "bzzr://764a91ca290bfa564d890f3c1a5a88067b04e96398f223576cbdd17bbc1faee2", "dweb:/ipfs/QmdEr1zJrD2UYawZzeE6zPuYiYaSHdpLtKeHYixHgRp9ko" ] }, @@ -440,7 +404,6 @@ "keccak256": "0x05c00863784c63220704197d8446ac1e277fe53c42b5264093960b7bb70b9792", "sha256": "0x25cfdd733e9c780ab85373268fde7bfa2e4b22093af57422ca3b586c7af7cd60", "urls": [ - "bzzr://18fc5b15154aef1640559c31bbd91ae267def62a2b86e434564184b6d3d283ce", "dweb:/ipfs/QmSUakgiWEffZ82RrN7hgLaemdqtLSCD7pfGAKxGhDUJxB" ] }, @@ -452,7 +415,6 @@ "keccak256": "0x7c967d9dc0fdca0db88a7cee22cf5886f65e8fa8b4a145eccd910fc81a1c949d", "sha256": "0x7d40c6325c0aa4635babdb8913626b7c4bac6a4f41e1c383de5f398e1fc98e1b", "urls": [ - "bzzr://c1f03890d82592751d779ea2da8a690e15b0ccc5667314bf634c1f16ff4ed322", "dweb:/ipfs/QmZcHLPfa2Dz8M3justKYyDmDnaNo4pseTgAeQbtJNYywe" ] }, @@ -464,7 +426,6 @@ "keccak256": "0x012ae146ebdd510b31c1e44a8d60071a66cdebc77f0e743a6ebc2fe68e67d297", "sha256": "0x566601442deff058d393359df59ed72b41e1f6a65b0aa371fab7f903c189b59d", "urls": [ - "bzzr://47c24a09321abb781b5dbc05fffae84ece6844e41a295847dd68ad69633f60a4", "dweb:/ipfs/Qmej9jEnSsD2LqGnL4jgbUvHTxTwiFiHqeMpqyuPLaX1uw" ] }, @@ -476,7 +437,6 @@ "keccak256": "0x4ba5500559a9ad03e4c1d3866ba9d915cdb5d7f2e326b4cb1fa0fe7bdf90dc27", "sha256": "0x89978dcef86244b8e7af95298abe26aaf4825df819d6c556e4323dc152c988ad", "urls": [ - "bzzr://c609e5725e607a4d853f33c8d46064e0ab11b489f7a585134cfca570e29f447a", "dweb:/ipfs/QmdgDj3bPSKU1xKMY8FRHj8E6z9BQefeuaVuF27RpvZMXJ" ] }, @@ -488,7 +448,6 @@ "keccak256": "0xcda83fe69ce2a319d0caa20c98b53ff36ea1886054ab3dab23fa80ede3dcdea0", "sha256": "0x1784f89fcfffccddaa94273a58e452682f61dea05d142406775f099c6ef5d61f", "urls": [ - "bzzr://5eacd00f2f132ea8fbb308baed9753579ade721a44e94067debb602e193b7ae2", "dweb:/ipfs/QmPA1Uf4iwkr2ouguzxxFepVxaRg36XFXxiwqYUuwafQzQ" ] }, @@ -500,7 +459,6 @@ "keccak256": "0x432dd5d662d88c2316b4df503f693ae9e6e8ed4216726db2fdb3e7f628523fe5", "sha256": "0x6e095eefc48dfc21fec18d0b63f229e929f881b5d6e8a999e1622c6b707a7f54", "urls": [ - "bzzr://1b3ef14eabfe47ff614c088337dfdf163c695612c193aeab9ac5a2af69d30334", "dweb:/ipfs/QmSgJ8Ru6vraz9CyCDPMifVxpckkoooVSBj9vYcQqG4wG4" ] }, @@ -512,7 +470,6 @@ "keccak256": "0x98e1027fbf3acb279f740c3b38df69d79ad3f2e6171414508d50604dc2dfc13e", "sha256": "0x43b85bc9941814b018065da5c6c8d40e2af49264d0d1f06bdefbfbe628e65ff8", "urls": [ - "bzzr://b6283a40a65b321a0e88f61594fc8bed00fb21a53c7ac1bf5ae421706a372d01", "dweb:/ipfs/QmeXatGB9MdWA2NBLSNQbcKvuZpa4Sxem51vCrqyQGfXnU" ] }, @@ -524,7 +481,6 @@ "keccak256": "0x6f9251f86fd798a3ae25688307ffc7a9984dcf0d809a1aef54f5c68b6cf9fb6a", "sha256": "0x0d34e4ed048bbf67daacdf36cd5ce0f553a32962967b52edab6afccaa071878b", "urls": [ - "bzzr://e866e6bdb31fea0646b44a8e57acc9505932ffe813028ce1330ca49fe3edc4d0", "dweb:/ipfs/Qmdx3AHUB8bN6ZZs1XsTV3Gz9FV3gAB7x7JbYeUsn43Azu" ] }, @@ -536,7 +492,6 @@ "keccak256": "0x6abf17bdb1b934d072739e0e083ecfd579c523d200d45184b8d3987924ca0454", "sha256": "0xa09c9cc2672678d461dc71100600bb58802db87be4de9424769241712ccbec03", "urls": [ - "bzzr://9b51780766b138ee36e2796cee7bdd4cb494da5d925c36cc6101202818d37e42", "dweb:/ipfs/QmQjodGav6KhMDjuoyJ1ag8osgKLBsFC1E9LmaGP7qCRZ2" ] }, @@ -548,7 +503,6 @@ "keccak256": "0x936e6bfbf4ea9ac32997adb893b0aeecd050cfef8b475f297dca1add0a1ff934", "sha256": "0x7fd1d3f1fddc615e117f7fb7586acabd60c649c390cf110c8fdc5ce159fa5734", "urls": [ - "bzzr://949bfec63a83091f5d08d6d8df36fa34e674d75206e8a6476cc0ae18f3c57bb4", "dweb:/ipfs/QmNrRJwVHaJSZ3aAQZWZKjV9o8BqWKFP3RPYL6hKU65PAE" ] }, @@ -560,7 +514,6 @@ "keccak256": "0xea559c55bf7046cb48378fe9b43eaab6e345700aa22d701fcf946a42ec6b1008", "sha256": "0xf22c63511a85230f7640ff5a77433db643d8d32be8b7c7f1dc24c1301a5158e9", "urls": [ - "bzzr://471b0435c47963835dd0f70d67ec069fab5daadbe6c8bf760d2e50adfb839461", "dweb:/ipfs/QmTQPQb6br2VEzKTiXBEE6z69xRXEk24xi2R2gn8EsvGD9" ] }, @@ -572,7 +525,6 @@ "keccak256": "0xb2657b5ce7a9b405a65e4a88845a51216cd7371e8f84861eef9cb0cb20d78081", "sha256": "0x3628fdefd6971ea9cc16acbf91e5f6d6cfb2079181784b47e4d24f4c5d92e4e4", "urls": [ - "bzzr://7bc2dc95d81092991a4122b45aad03f9cc62bc98fa455f03fc9286445ef9de8e", "dweb:/ipfs/QmYWAkYAJo59kc5dHWaLuQqEm7xusESdu5meDzjpxnyXKt" ] }, @@ -584,7 +536,6 @@ "keccak256": "0x7dc96455c864b49abc7dd5f38ba6a47904709ad132ea36babbfce98d42e962e6", "sha256": "0x25f564cbecc5bfe95d6d358e0e7543c31ece0ab1332c555ff323ca163711bd2b", "urls": [ - "bzzr://f61230aa01565c8c24aa2ed50eec7dfd26195be35f5bbe4445c6a3efceaa4b7d", "dweb:/ipfs/QmaLUM18c7ecA911ig5u2HY6fAu4AiUbhJpnZwwCMc9cWi" ] }, @@ -596,7 +547,6 @@ "keccak256": "0x39ae8b2f3ba05ed7d4a7c16f0a9f4f5118180a209379cfc9bdd2d4fb5d015dff", "sha256": "0xf89514dedd8cfb3c4d351580ff80b8444acde702f8be0e5fad710fe6e906c687", "urls": [ - "bzzr://1d6deff5623d883b8d0b3a3a5539e4604925ce4c1677defb86e0e37838ea70c5", "dweb:/ipfs/Qmd9JfFpUXsUQrJad1u2QDuMxBMeVrcG8mrpfJVV9jiBXB" ] }, @@ -608,7 +558,6 @@ "keccak256": "0x435820544c2598d4ffbfb6f11003364c883a0766c8ac2a03215dd73022b34679", "sha256": "0xa4fd5bb021259cdde001b03dac0e66353a3b066b47eb2476acb58b2610a224ca", "urls": [ - "bzzr://62ef2a9bf7dbb8fd596b7c6ca6848d9b1a6c8562d10239659f0a56ee27c110ce", "dweb:/ipfs/QmTxzbPN4HwcK5YX7n3PNkb1BzKFiRwStsmBfgC9VwrtFt" ] }, @@ -620,7 +569,6 @@ "keccak256": "0x6262768243c1ceaf91418e52dc6f52d2ce94d19c6e1065d54499b7bc4d6e14dc", "sha256": "0xf8f83757e73f33f44389d1fa72d013fb266454a8dd9bb6897c7776f8fc3b0231", "urls": [ - "bzzr://ed91c1114615572c10a34f0ab28a3a159d2d433fabbcec9eae7253c25ecac8b4", "dweb:/ipfs/QmRUoBQeA5zpun1NK7BvBhQk6pTT4uZw7Jn2wZnWQETH9W" ] }, @@ -632,7 +580,6 @@ "keccak256": "0x3c9cfccc78bf352f4c7901d7af76757bd228f93af2634af4cd16b4916c13e44e", "sha256": "0x09f6098026622c5c334c7798c3ad2b8f7c0ebc62f87846c7d5e7e725c3d1cbc2", "urls": [ - "bzzr://ab23bd0e01952ee485f0426c9c4e47fcf6a508bc4919e83be31c0f9ea6e396ca", "dweb:/ipfs/QmRj2pxXxvmJ96i57maVjLMfs4DUtCuptM8vSVvvDweJ74" ] }, @@ -644,7 +591,6 @@ "keccak256": "0xb463b6a61fc027247655a32cbfd50bf543eafa3a6b42ceacdda7293e3ada8866", "sha256": "0xb795f1b20f065a0aee492c24071fc1efa1633c3caab77cff20278a9ae822f04e", "urls": [ - "bzzr://c82fea785ae31fb4847f5640e6305edc05d1a5b0b47552f60325c25cce280f75", "dweb:/ipfs/QmShUrNZf1dZFjziorJYE8fMGNUSMFsbaR3ipSvsCMvExM" ] }, @@ -656,7 +602,6 @@ "keccak256": "0x537cefc0579dd9631ec952cae951b3df0a50a3e557b5638107a67275f7aacc07", "sha256": "0x3e8b01cbd194e40971b41017ada7c8b2fa941b0458cb701bdfb6a82257ca971b", "urls": [ - "bzzr://130bff47eed9546c6a4d019c6281896186cf2368b766b16bc49b3d489b6cdb92", "dweb:/ipfs/Qmdq9AfwdmKfEGP8u7H9E4VYrKLVinRZPZD1EWRnXSn1oe" ] }, @@ -668,7 +613,6 @@ "keccak256": "0xa2d4d3ebe5d52bfa7ddf1a1fcd9bfed81eaa8678e6a1dd5a1c84954dd064422c", "sha256": "0xf1724fd46b7a353561b3f8d473b0dc8c855b6d84b5af559d7e3326ac79b9d758", "urls": [ - "bzzr://2c5fff6b816edb78adb2220f175591c9f4f6d38cfd27a83afb1849191cf9a524", "dweb:/ipfs/Qmad6iesaR5FQ45RRtMrt2Fa1EYDuq1oGoMJJB6beMHESn" ] }, @@ -680,7 +624,6 @@ "keccak256": "0x620163da7ee7b2622c9ee48b06110a52739f633189555148a3b5ecf767e60cfb", "sha256": "0xfa27ce9d23bddaa76a4aefbafa48e48affde9a1ee7c8a5e8784cf8d4c390f655", "urls": [ - "bzzr://823b4efe3ca2964d660348214fd1a44579e13e1e8ce69a81f447372a11d60316", "dweb:/ipfs/QmUinsRZvs2zFNG6FMWy7ngTYUnZccXq7MRtgpj1dPfxu4" ] }, @@ -692,7 +635,6 @@ "keccak256": "0xf0abd02c495a0b4c5c9a7ff20de8b932e11fc3066d0b754422035ecd96fcdbbc", "sha256": "0x9778e4a7667d5fd7632caf3ef3791d390a7cc217f94f96e919a31e3be332386a", "urls": [ - "bzzr://9f9244a3605543a67f5ff35f21e3d6d3331a6e1361f09b271c37f396b5b89bd5", "dweb:/ipfs/QmXyjgFNMyFD4fdf8wt9uvUU92MGdDVGmcPdMZhNEo1g8N" ] }, @@ -704,7 +646,6 @@ "keccak256": "0xe1412d909a0dae79b13c0066b9bf08831c522daec00b273bbc19a799af213d6a", "sha256": "0x3e1956c550ca48e289044c7c0bd892403081b4b5e17e77ce707c815ce6c4228f", "urls": [ - "bzzr://b69ab6704a1e42fddb326e91f331e35fdf071b158e8754e2c887c0e607aee7b0", "dweb:/ipfs/QmTs8PnAGr1ijXtWvMjoWraefAtVv2Y5ZnwkArz6NqJ93w" ] }, @@ -716,7 +657,6 @@ "keccak256": "0x0c7a4386781683c327fde95363535f377941e14feffad5bb1134c7aa7eba726f", "sha256": "0xe7e1be3d0a67469f6a37cd676a22314c4faa8a22ff9d5ebde11302db754453eb", "urls": [ - "bzzr://65dc33e3d9ef94defff1b24e66f093d9d15a92c59778c8eb26e76fd8b64bd3da", "dweb:/ipfs/QmQFhTptWdDzhemjGpa7Q65HKWGphs4nKKS13nzkcVE8pM" ] }, @@ -728,7 +668,6 @@ "keccak256": "0x3502cf7933fbce9f1fe1d87a83d5b9df12eee36c03997c3b9821493ce03fcf3e", "sha256": "0x7fcc983c5149840a47b946fc51fc14f1c21cda07c01d650e4a1f814319cb1423", "urls": [ - "bzzr://617dff84fd7dc06b476f93a95c015a561662d9ff1d3356ac6a3e5f5b09a636f0", "dweb:/ipfs/Qmdw9c3usmqgdV2w4JoNWJqscHzscKNVWsWtos1engJa1o" ] }, @@ -740,7 +679,6 @@ "keccak256": "0x0c80a0bf9e17700249a04a80d7729ccb012a55a82cb0f9e412fa32cc14b09c2b", "sha256": "0xdfa3f2bb4589bdc9c054292173c82ee70e65af8d1971598f6e13b9b79ba94185", "urls": [ - "bzzr://a45264806fb74fd38c19704070c83053972270b63bf7b09ddff3c3e15cd1baa0", "dweb:/ipfs/QmTNWY4vkVLgtNdfGXyH6CY8URmzr33VzMJNN37z5dsAgu" ] }, @@ -752,7 +690,6 @@ "keccak256": "0xcf099e7057d6c3d5acac1f4e349798ad5a581b6cb7ffcebdf5b37b86eac4872d", "sha256": "0xcaf4b1f3e01fcf946aad2d22bbe046b9dc4fd50049a05c3458ff239e2c93a785", "urls": [ - "bzzr://2f8ec45d2d7298ab1fa49f3568ada6c6e030c7dd7f490a1505ed9d4713d86dc8", "dweb:/ipfs/QmQMH2o7Nz3DaQ31hNYyHVAgejqTyZouvA35Zzzwe2UBPt" ] }, @@ -764,7 +701,6 @@ "keccak256": "0x300330ecd127756b824aa13e843cb1f43c473cb22eaf3750d5fb9c99279af8c3", "sha256": "0x2b55ed5fec4d9625b6c7b3ab1abd2b7fb7dd2a9c68543bf0323db2c7e2d55af2", "urls": [ - "bzzr://16c5f09109c793db99fe35f037c6092b061bd39260ee7a677c8a97f18c955ab1", "dweb:/ipfs/QmTLs5MuLEWXQkths41HiACoXDiH8zxyqBHGFDRSzVE5CS" ] }, @@ -776,7 +712,6 @@ "keccak256": "0xfe223dd264421f9b96c3dd3c835a3d0d4d9cfa4c61f75ca0761860c9ae8906ca", "sha256": "0x2ee1c6434a32a40b137ac28be12ceeba64701bfad5e80239690803d9c139908e", "urls": [ - "bzzr://d67cf500345ceca523e9bbe55dab9399e27321fd9005704a5b16bab82185260c", "dweb:/ipfs/Qmf5fpJmeHdwgmSjQPqdu25XtA9akTotakkNmrh4axgo8N" ] }, @@ -788,7 +723,6 @@ "keccak256": "0xc68517effed7163db0c7f4559931a4c5530fe6f2a8a20596361640d9d7eff655", "sha256": "0xb94e69dfb056b3e26080f805ab43b668afbc0ac70bf124bfb7391ecfc0172ad2", "urls": [ - "bzzr://523852f3e01b02ce947771e0279ffb6154d12700f809ba3606d908ba6271431c", "dweb:/ipfs/QmWjG6PLzF5M6kxkHujhEMg5znQCgf2m1cM1UptKA719Hy" ] }, @@ -800,7 +734,6 @@ "keccak256": "0x08dd57a5cf5fd59accbd5b601909ffa22d28da756b5367c29b523ff17bbc2f99", "sha256": "0xc596765f9b3dce486cf596ea35676f37124d54f3ada0fcbc02f094c392066a59", "urls": [ - "bzzr://7047ade6879aab4c825594dab0914b8ec673bb907eecc6dfbd68f63086e5a36e", "dweb:/ipfs/QmYh5C2rgDAx452f7HyHA8soLhnoL1GeeNNEWEuw9jKY8w" ] }, @@ -812,7 +745,6 @@ "keccak256": "0x84a0e9282047512eeec499d55c83dbb6981430b08692d81d6c09730bb18e6cd8", "sha256": "0xf77f141e5fed9594b28342e2c630ac6d48f2a724e4383a457881acd7fa62b1cf", "urls": [ - "bzzr://da8c5ea3f2ecd33d3f83ac2c276871f4ee41370fb55ae62c6c29835c9376bdec", "dweb:/ipfs/QmQ6W5VedQpZAwuGTtp1BhmNkvVheLnJq4xwN9Qmt9bAbH" ] }, @@ -824,7 +756,6 @@ "keccak256": "0xd0c15275c5b0d03871332719def9b0f17e8860c7db60e0e71f18b971458a7391", "sha256": "0x015e83fb0b72ccdafb0c217961b21a0321adb2d3f2ad992f5e79635c2086e6dd", "urls": [ - "bzzr://629ae5ad84c45c248144b5eec7827a9cd5b2f2779ef84ab251c8cd876347a098", "dweb:/ipfs/QmdfVfa2mhyosaJVeV7rbfnvQ95GTHPeRPzmvxcds7RYej" ] }, @@ -836,7 +767,6 @@ "keccak256": "0x51777116af58223a41aa3016d0bf733bbb0f78ad9ba4bcc36487eba175f65015", "sha256": "0xb5cedfa8de5f9421fbdaccf9fd5038652c2632344b3b68e5278de81e9aeac210", "urls": [ - "bzzr://c7d43da1bc5529d2cc311e00579c36dcff258c42b8ed240b6c4e97bd85492a64", "dweb:/ipfs/QmWbNMzJryhiZmyifLDQteGPwN4aTgXQB6barBvXYVw975" ] }, @@ -848,7 +778,6 @@ "keccak256": "0x7e0bca960d11fb095798ff65d029436f23358ac060b25a0938acfcb4652da2ec", "sha256": "0x4a14c7bcaf0d988a829db2174b8f7731898aa8633216490603ad74bff64eca3c", "urls": [ - "bzzr://7f33fe204160253c7ec23cb0ac83224bde3aca9f91a7a686cb67d99248c5fbb6", "dweb:/ipfs/QmPYDf4qYtZLNEAicW7hcvpUJ69FoHiXmUypipDpTKo9hU" ] }, @@ -860,7 +789,6 @@ "keccak256": "0x6d6d75b033717aae0a728e527005d8d2cc7dbd0a835c8873c630a2a9689a2976", "sha256": "0x4af595f976235d33a22ffe223e9e3210b4ca510f6a93f153b3daed60f2b11fbc", "urls": [ - "bzzr://d501ee8c460db75379b5716bcb5ae10e3e32625d6c9b08e319822a110f178906", "dweb:/ipfs/QmNWkyirqXy3gDHNXpPuVUbExMGWjMqPR82Xzs64RzgQzy" ] }, @@ -872,7 +800,6 @@ "keccak256": "0x070e41c7f761ff1a8383a2c0d54c22aab0f115ca8c3790ecea27d6dde11611ca", "sha256": "0x06a671efd8865a6ecc0ad648076177b35abcd06a7059888ea65111272e33a57f", "urls": [ - "bzzr://e4f8176cdb3a0f3ba0b7061079dd9d3495f6a2288bd724780337cacd96515148", "dweb:/ipfs/QmQre11ZPgWSx79Jzca1tkTYFyMbXz8H4kcrhfpWSj4qs8" ] }, @@ -884,7 +811,6 @@ "keccak256": "0x8d6be9e58c33d265b5a8b1132a27fce126067419f3f4f15d3ef6b7147593b61d", "sha256": "0x663ba99f7c7ee907f0f03227502d48a78256c3c292ace3b79a5d3eb510665306", "urls": [ - "bzzr://0bdbad1bdcc3a9775f16f20a35556be4baa0e6c9a9b9d820e8e2cdea80667c6a", "dweb:/ipfs/QmYv3Rsi9pL6PZAtc4XLHezPqti8yCRGEdDBqzEsQv57GV" ] }, @@ -896,7 +822,6 @@ "keccak256": "0x56cb2f6978bf1213982ef217ee76b39dc97b6e66c92a7be7a1b44079c0236e5c", "sha256": "0x534b7d4079d13bb4cd10b7559dc105c2adec625df4105f20ebce47e6da60bfda", "urls": [ - "bzzr://7543aa16521848b06a1359afcb9dbd7be1dd09a36f4ca53edd3ed3a512a475e9", "dweb:/ipfs/QmZaSrn3TPvPVoShtjSonQLFd3BV6RdgRMqw8GTzhnKYpm" ] }, @@ -908,7 +833,6 @@ "keccak256": "0xbc470ab3442e78bb4d3f16c01c39b2f160f4f34eb4373efed11c234e1c7f6ca0", "sha256": "0x5b25f987aae32a0275fdc6c1be36cc47cf126024a04dafd8e4be39a1d1d1422c", "urls": [ - "bzzr://83bf64f11a09845a6eb732da08283a58f877e9227190f489c9852f790c81d0c4", "dweb:/ipfs/QmfFq3MvisCSUJy8N8EVsBribgPbdpTZb7tQ2eHYw7dwag" ] }, @@ -920,7 +844,6 @@ "keccak256": "0x3820aae0de50f10f62819d65f0b5a236ccffed11ab465a3295a5408fa47e24f5", "sha256": "0x5eaee3240a06891abf5ac70c75caf9a0c33ebe9a2736abdaa22a337f86c22933", "urls": [ - "bzzr://5124a21890d6b0ae70bfd031f741d7edc74cff70a26ca74750d446b15a8efb06", "dweb:/ipfs/QmcsfYpEWbPXfVptzi1YvGokxi2FYCUzUr8rQYJCc5fEiB" ] }, @@ -932,7 +855,6 @@ "keccak256": "0x798b23086ce1339e3d47b3648a1f3ae40561e2c9f66ffcc98e71fc14a7f77584", "sha256": "0x64117d4b13bfc5bc6e5f80823519b140e753a0c09e99edd756772dc3029bc1f8", "urls": [ - "bzzr://0fd1c8db6338b2143ab0e49a33edaa133108ba77f1238408018b5b2a0ecdeb62", "dweb:/ipfs/QmNQTFQmfnjxnDmbguVSnZ5DiHGFQHCsffccW5c2DMcSsT" ] }, @@ -944,7 +866,6 @@ "keccak256": "0xdd4ae95607655404b769fab5f949ac95c6a1a506330f512aef0d92974c390431", "sha256": "0xc2c4738c96ad329cbb9baea615ed50ffb5a53d93fed8e00785e47242581d3c60", "urls": [ - "bzzr://38f396377d5a5a60d0b9d8c4dc1343485517ff31bcd281d531f98534dc79d811", "dweb:/ipfs/QmVdW2ygaT2vecoSUog3HUn8hZqXU4XXQZvuRSdpV6DJPL" ] }, @@ -956,7 +877,6 @@ "keccak256": "0x9afa714859d1c8f8ed2fded497b83a7a420474282494d25d4c9f592667729f21", "sha256": "0x387343bcf8f2b77fe4cdcddcaa84361fabf8e1c3508f874fbbcbb9c313542f56", "urls": [ - "bzzr://ade0fd040981c4e8c7adfe366296e452687c7bb6421de8546a0678be4add016a", "dweb:/ipfs/Qma9V9dJwmkim98H6DQX4f7RH395vsUuqHCDxbKetcbj18" ] }, @@ -968,7 +888,6 @@ "keccak256": "0xb0f7f19a8590e5c0aaf779019c1deaafed170d8c26bec9bfd782d212e097619e", "sha256": "0x7c3b3d0066fd381283b1d8d9a86153b2ddb5c01da14a1ae015c05cfa484e81b6", "urls": [ - "bzzr://fa438d41ed52c9e0cca556efee61486fc77e60df06081921abb0a0f19b602d35", "dweb:/ipfs/QmcM1TcDB4ta8ttNLWZ4d24M4Qs35rc91sQkdNmJMNbuvV" ] }, @@ -980,7 +899,6 @@ "keccak256": "0x4f6cdc0f25e734bcb977bb6a3e22fa41d8a82cbd5f220a2e4238c2d233526d1a", "sha256": "0x71135e459d691767ce3453bab4564ef4a640dd50182da36517cbc1f96c1d4c7c", "urls": [ - "bzzr://ac5baefba32f4779a03d1207d9f1ed69365280c702fd73002a729b7a3d52c425", "dweb:/ipfs/QmPiBrYZxxpNZPQ98GNyL7Xa1F9Dq7uHtdt9ESwhPNkHhc" ] }, @@ -992,7 +910,6 @@ "keccak256": "0x331f4bc6de3d44d87b68629e83f711105325b482da7e9ca9bdbdd01371fee438", "sha256": "0x27b2820ef93805a65c76b7945a49432582d306fd17a28985709a51e6403677c2", "urls": [ - "bzzr://af0d70945c85865298732ac2bfdacdf2774fb4daf793c94fafe135b839a60a5c", "dweb:/ipfs/QmWzBJ8gdccvRSSB5YsMKiF2qt3RFmAP2X25QEWqqQnR4y" ] }, @@ -1004,7 +921,6 @@ "keccak256": "0x3f2be218cf4545b4d2e380417c6da1e008fdc4255ab38c9ee12f64c0e3f55ea9", "sha256": "0x617828e63be485c7cc2dbcbdd5a22b582b40fafaa41016ad595637b83c90656c", "urls": [ - "bzzr://fe8da5b2531d31e4b67acdce09c81eccba1100550a7222722152ffdb16ea85ef", "dweb:/ipfs/QmTedx1wBKSUaLatuqXYngjfKQLD2cGqPKjdLYCnbMYwiz" ] }, @@ -1016,7 +932,6 @@ "keccak256": "0x9a8fa4183ef95496045189b80dfb39f745db89a903b398e40131f500953e5d57", "sha256": "0xd82bdcba2c386d60b33aca148a9cfdf097551f68c5e45d8ec01aebbafacf5075", "urls": [ - "bzzr://338117c2130fcb6bce3006330712b6e7ee99875b56ce4bb6182312f76e4a6bac", "dweb:/ipfs/QmcKzrqRBy7PeFQxzJDs1AZZzNHKaKbJces6zUDysXZofJ" ] }, @@ -1028,7 +943,6 @@ "keccak256": "0x6be35b86f5656c06ae897ef311c28da375bdcbded68c4a81e124f2cb36adf830", "sha256": "0xe0b74e0a16e783a35169f74d1a615ecb48d07c30f97346b83cd587949268681e", "urls": [ - "bzzr://434c17a0cc3bf371e5b9baa7f804b37ffd2dc141a98c59b2ba6021fc419a39c0", "dweb:/ipfs/QmPnhNtzrEBeWWQMXdAByQTDPoKXXV9NFXLk3YL4QbghMP" ] }, @@ -1040,7 +954,6 @@ "keccak256": "0x3a420fa9963772eee5b9221ebb8cf9548eea8f88b09537390960ea9b440f333c", "sha256": "0x5c509f760dc110a695c8b39bbc21e08c17dee431aa14d606f59e623d7c3cc657", "urls": [ - "bzzr://fdc05062e4c7ec85ed18ab17b6f04f3274a4b7caf0be483eb86007d708825fb0", "dweb:/ipfs/QmciAxUX2kfuoxitmMdkKSfWn2SfxQdieLRa3S5S2munot" ] }, @@ -1052,7 +965,6 @@ "keccak256": "0x370efd28e2d28b6d0ba55e20d8994f3d286c3772552ed63586b5fe157c0d3c57", "sha256": "0x45bea352b41d04039e19439962ddef1d3e10cf2bc9526feba39f2cc79e3c5a17", "urls": [ - "bzzr://5e66947c220c91a6cd39bc22965dcf861015b8613a6e09aa7fb7dc10f367b5d7", "dweb:/ipfs/QmXLgy6oexvCBWYS5pTpJWohsDNGqgdNFLRKX7JrE3NxYt" ] }, @@ -1064,7 +976,6 @@ "keccak256": "0x907eeba6e6e0d6977ac5a8f50e4dd2762539ca827ceab1afb1f5a4f0f3ce3e0c", "sha256": "0x92d283c545395b91a656fa1ec94d567a464bca55aebcdbb99debf42b43026845", "urls": [ - "bzzr://63ec828814e2b57db2a7a146061a96cc39797ba39a0063a7b664421a48f21c00", "dweb:/ipfs/Qma6o4e57YtWj8cQLQs12r2Enx9qmRA7VHtupCauXjYTAk" ] }, @@ -1076,7 +987,6 @@ "keccak256": "0x743aaafac24d9740a0b71215f55a132f89336a662487944767ca4bfd66400769", "sha256": "0x9c681b165c8647867589c0a5ecdc8692637a935928a2b1bbea2ff4a1f4976985", "urls": [ - "bzzr://6e70fe6bfe8c3fc63f8a3eba733731aab129e6e58828b78058e53bb50440709b", "dweb:/ipfs/QmZy5ho8W943FMGwppXZFS1WFrVwV3UXhUUwcD7oH5vrYe" ] }, @@ -1088,7 +998,6 @@ "keccak256": "0x1b6ceeabad21bbb2011ba13373160f7c4d46c11371a354243ee1be07159345f3", "sha256": "0x11b054b55273ec55f6ab3f445eb0eb2c83a23fed43d10079d34ac3eabe6ed8b1", "urls": [ - "bzzr://c604bdd6384bf73594cd0e5cfbe979048191549ebc88e70996346f3b744c0680", "dweb:/ipfs/QmW2SQbEhiz3n2qV5iL8WBgzapv6cXjkLStvTMpCZhvr2x" ] }, @@ -1100,12 +1009,23 @@ "keccak256": "0x4639103a26b2f669bd3ecc22b1a1665819f2a2956f917ab91380bd9565dbcd01", "sha256": "0xf8c9554471ff2db3843167dffb7a503293b5dc728c8305b044ef9fd37d626ca7", "urls": [ - "bzzr://d201e60bd46193b11382988a854132b9e7fb0e1574cc766cb7f9efe8e44a680c", "dweb:/ipfs/QmdduJxmPXungjJk2FBDw1bdDQ6ucHxYGLXRMBJqMFW7h9" ] + }, + { + "path": "soljson-v0.8.26+commit.8a97fa7a.js", + "version": "0.8.26", + "build": "commit.8a97fa7a", + "longVersion": "0.8.26+commit.8a97fa7a", + "keccak256": "0x34ffb570dd3b2041e3df86cb1f9190256cd28ee5a6f3d4200fe4b9747d33f901", + "sha256": "0xdb85e5396f523cc1a53c4c4d742e204f6dcba1a05842623d73be946809e11cd6", + "urls": [ + "dweb:/ipfs/QmS5JdeXtYhGBvdgNTLWuBNHupyP623X4sf43fRbrgiTaA" + ] } ], "releases": { + "0.8.26": "soljson-v0.8.26+commit.8a97fa7a.js", "0.8.25": "soljson-v0.8.25+commit.b61c2a91.js", "0.8.24": "soljson-v0.8.24+commit.e11b9ed9.js", "0.8.23": "soljson-v0.8.23+commit.f704f362.js", @@ -1199,5 +1119,5 @@ "0.4.0": "soljson-v0.4.0+commit.acd334c9.js", "0.3.6": "soljson-v0.3.6+commit.3fc68da5.js" }, - "latestRelease": "0.8.25" + "latestRelease": "0.8.26" } \ No newline at end of file diff --git a/apps/vyper/src/app/utils/remix-client.tsx b/apps/vyper/src/app/utils/remix-client.tsx index 3de036f352..cbfa5eb87e 100644 --- a/apps/vyper/src/app/utils/remix-client.tsx +++ b/apps/vyper/src/app/utils/remix-client.tsx @@ -5,8 +5,6 @@ import {PluginClient} from '@remixproject/plugin' import {Contract, compileContract} from './compiler' import {ExampleContract} from '../components/VyperResult' import EventEmitter from 'events' -const _paq = (window._paq = window._paq || []) - export type VyperComplierAddress = 'https://vyper2.remixproject.org/' | 'http://localhost:8000/' export class RemixClient extends PluginClient { @@ -73,7 +71,6 @@ export class RemixClient extends PluginClient { can you explain why this error occurred and how to fix it? ` await this.client.call('solcoder' as any, 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining']) } catch (err) { console.error('unable to askGpt') console.error(err) diff --git a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts index 92c79914b5..ce274d57b5 100644 --- a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts +++ b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts @@ -66,7 +66,6 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli this.props.plugin.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'Solcoder - generating code for following comment: ' + ask.replace('///', '') }) const data = await this.props.plugin.call('solcoder', 'code_generation', word) - _paq.push(['trackEvent', 'ai', 'solcoder', 'code_generation']) const parsedData = data[0].trimStart() //JSON.parse(data).trimStart() const item: monacoTypes.languages.InlineCompletion = { @@ -105,7 +104,6 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli // Code insertion try { const output = await this.props.plugin.call('solcoder', 'code_insertion', word, word_after) - _paq.push(['trackEvent', 'ai', 'solcoder', 'code_insertion']) const generatedText = output[0] // no need to clean it. should already be const item: monacoTypes.languages.InlineCompletion = { @@ -130,7 +128,6 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli try { // Code completion const output = await this.props.plugin.call('solcoder', 'code_completion', word) - _paq.push(['trackEvent', 'ai', 'solcoder', 'code_completion']) const generatedText = output[0] let clean = generatedText From fa42b5ea119ef89bef13b414a7acef303c0d084d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Fri, 24 May 2024 10:54:27 +0200 Subject: [PATCH 05/28] renamed sol-gpt to remix ai --- apps/circuit-compiler/src/app/components/feedbackAlert.tsx | 2 +- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 6 +++--- libs/remix-ui/renderer/src/lib/renderer.tsx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx index 5bc7114520..0ce8066bad 100644 --- a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx +++ b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx @@ -24,7 +24,7 @@ export function FeedbackAlert ({ message, askGPT }: FeedbackAlertProps) { { e.stopPropagation() askGPT() - }}>ASK SOL-GPT + }}>ASK Remix AI diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 6e5efcf7bd..85ea43bef7 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -80,7 +80,7 @@ export class SolCoder extends Plugin { async solidity_answer(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'answering']) let result @@ -117,7 +117,7 @@ export class SolCoder extends Plugin { async code_explaining(prompt, context:string=""): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result @@ -233,7 +233,7 @@ export class SolCoder extends Plugin { async error_explaining(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 6d830a8230..c6041801ed 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -111,7 +111,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { onClick={() => { askGtp() }} style={{ borderColor: "var(--ai)" }} > - ASK SOL-GPT + ASK Remix AI From d3ef2dd4598adede3936f169b5c5ed29a4044c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Mon, 27 May 2024 12:13:30 +0200 Subject: [PATCH 06/28] rm openai bindings --- apps/remix-ide/src/app.js | 6 +-- apps/remix-ide/src/app/plugins/openaigpt.tsx | 49 -------------------- apps/remix-ide/src/remixAppManager.js | 1 - apps/remix-ide/src/remixEngine.js | 1 - 4 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 apps/remix-ide/src/app/plugins/openaigpt.tsx diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index ccbe5ff471..03dd0f5082 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -52,8 +52,6 @@ import { electronTemplates } from './app/plugins/electron/templatesPlugin' import { xtermPlugin } from './app/plugins/electron/xtermPlugin' 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') @@ -231,7 +229,6 @@ class AppComponent { const contractFlattener = new ContractFlattener() // ----------------- AI -------------------------------------- - const openaigpt = new OpenAIGpt() const solcoder = new SolCoder() // ----------------- import content service ------------------------ @@ -349,7 +346,6 @@ class AppComponent { contractFlattener, solidityScript, templates, - openaigpt, solcoder, ]) @@ -505,7 +501,7 @@ class AppComponent { await this.appManager.registerContextMenuItems() } ) - await this.appManager.activatePlugin(['solidity-script', 'openaigpt']) + await this.appManager.activatePlugin(['solidity-script']) await this.appManager.activatePlugin(['solcoder']) diff --git a/apps/remix-ide/src/app/plugins/openaigpt.tsx b/apps/remix-ide/src/app/plugins/openaigpt.tsx deleted file mode 100644 index e436d7c9d7..0000000000 --- a/apps/remix-ide/src/app/plugins/openaigpt.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { Plugin } from '@remixproject/engine' -import { CreateChatCompletionResponse } from 'openai' - -const _paq = (window._paq = window._paq || []) - -const profile = { - name: 'openaigpt', - displayName: 'openaigpt', - description: 'openaigpt', - methods: ['message'], - events: [], - maintainedBy: 'Remix', -} - -export class OpenAIGpt extends Plugin { - constructor() { - super(profile) - } - - async message(prompt): Promise { - this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'Waiting for GPT answer...' }) - let result - try { - result = await ( - await fetch('https://openai-gpt.remixproject.org', { - method: 'POST', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ prompt }), - }) - ).json() - } catch (e) { - this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) - return - } - - if (result && result.choices && result.choices.length) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.choices[0].message.content }) - } else if (result.error) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.error }) - } else { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'No response...' }) - } - return result.data - } -} diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index e462a94074..6d9f2ac36f 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -71,7 +71,6 @@ let requiredModules = [ // services + layout views + system views 'vyperCompilationDetails', 'contractflattener', 'solidity-script', - 'openaigpt', 'solcoder', 'home', 'doc-viewer', diff --git a/apps/remix-ide/src/remixEngine.js b/apps/remix-ide/src/remixEngine.js index 948eca47bc..baaf75deda 100644 --- a/apps/remix-ide/src/remixEngine.js +++ b/apps/remix-ide/src/remixEngine.js @@ -26,7 +26,6 @@ export class RemixEngine extends Engine { 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 * 3 } return { queueTimeout: 10000 } From b6dd9261bc433aead86a4ceff5c7a7fd6b41ca93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:13:08 +0200 Subject: [PATCH 07/28] switched open gpt to solcoder for error explaining --- .../src/app/components/feedbackAlert.tsx | 2 +- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 31 ++++++++++++++++++- apps/vyper/src/app/utils/remix-client.tsx | 5 ++- libs/remix-ui/renderer/src/lib/renderer.tsx | 6 ++-- .../terminal/src/lib/remix-ui-terminal.tsx | 5 +-- .../terminal/src/lib/terminalWelcome.tsx | 3 -- 6 files changed, 41 insertions(+), 11 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx index 3edf89cc20..5bc7114520 100644 --- a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx +++ b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx @@ -24,7 +24,7 @@ export function FeedbackAlert ({ message, askGPT }: FeedbackAlertProps) { { e.stopPropagation() askGPT() - }}>ASK GPT + }}>ASK SOL-GPT diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 94687d3440..44e7a8121e 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -15,7 +15,7 @@ const profile = { name: 'solcoder', displayName: 'solcoder', description: 'solcoder', - methods: ['code_generation', 'code_completion', "solidity_answer", "code_explaining", "code_insertion"], + methods: ['code_generation', 'code_completion', "solidity_answer", "code_explaining", "code_insertion", "error_explaining"], events: [], maintainedBy: 'Remix', } @@ -218,6 +218,35 @@ export class SolCoder extends Plugin { } } + async error_explaining(prompt): Promise { + this.emit("aiInfering") + this.call('layout', 'maximizeTerminal') + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + + let result + try { + result = await( + await fetch(this.api_url, { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ "data":[prompt, "error_explaining", false,2000,0.9,0.8,50]}), + }) + ).json() + if (result) { + this.call('terminal', 'log', { type: 'aitypewriterwarning', 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") + } + } + _build_solgpt_promt(user_promt:string){ if (this.solgpt_chat_history.length === 0){ return user_promt diff --git a/apps/vyper/src/app/utils/remix-client.tsx b/apps/vyper/src/app/utils/remix-client.tsx index 088aa6c36d..3de036f352 100644 --- a/apps/vyper/src/app/utils/remix-client.tsx +++ b/apps/vyper/src/app/utils/remix-client.tsx @@ -5,6 +5,7 @@ import {PluginClient} from '@remixproject/plugin' import {Contract, compileContract} from './compiler' import {ExampleContract} from '../components/VyperResult' import EventEmitter from 'events' +const _paq = (window._paq = window._paq || []) export type VyperComplierAddress = 'https://vyper2.remixproject.org/' | 'http://localhost:8000/' @@ -66,11 +67,13 @@ export class RemixClient extends PluginClient { return } try { + // TODO: remove! no formatting required since already handled on server const formattedMessage = ` ${message} can you explain why this error occurred and how to fix it? ` - await this.client.call('openaigpt' as any, 'message', formattedMessage) + await this.client.call('solcoder' as any, 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining']) } catch (err) { console.error('unable to askGpt') console.error(err) diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 00a7af8ab3..6d830a8230 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -75,8 +75,8 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { try { const content = await plugin.call('fileManager', 'readFile', editorOptions.errFile) const message = intl.formatMessage({ id: 'solidity.openaigptMessage' }, { content, messageText }) - await plugin.call('openaigpt', 'message', message) - _paq.push(['trackEvent', 'ai', 'openai', 'explainSolidityError']) + await plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_SolidityError']) } catch (err) { console.error('unable to askGtp') console.error(err) @@ -111,7 +111,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { onClick={() => { askGtp() }} style={{ borderColor: "var(--ai)" }} > - ASK GPT + ASK SOL-GPT 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 b5edd8a425..7936cda55e 100644 --- a/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx +++ b/libs/remix-ui/terminal/src/lib/remix-ui-terminal.tsx @@ -235,10 +235,11 @@ export const RemixUiTerminal = (props: RemixUiTerminalProps) => { try { if (script.trim().startsWith('git')) { // await this.call('git', 'execute', script) code might be used in the future + // TODO: rm gpt or redirect gpt to sol-pgt } else if (script.trim().startsWith('gpt')) { call('terminal', 'log',{ type: 'warn', value: `> ${script}` }) - await call('openaigpt', 'message', script) - _paq.push(['trackEvent', 'ai', 'openai', 'askFromTerminal']) + await call('solcoder', 'solidity_answer', script) + _paq.push(['trackEvent', 'ai', 'solcoder', 'askFromTerminal']) } else if (script.trim().startsWith('sol-gpt')) { call('terminal', 'log',{ type: 'warn', value: `> ${script}` }) await call('solcoder', 'solidity_answer', script) diff --git a/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx b/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx index 7fb7dbea23..1d1dcf77c8 100644 --- a/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx +++ b/libs/remix-ui/terminal/src/lib/terminalWelcome.tsx @@ -54,9 +54,6 @@ const TerminalWelcomeMessage = ({ packageJson, storage }) => { ethers.js {' '} -
  • - gpt <your question here> {' '} -
  • sol-gpt <your Solidity question here> {' '}
  • From b8eae1d74f273a8345685aa4abf77a0f544447b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:28:02 +0200 Subject: [PATCH 08/28] added support for circom errors and modfied also function explain --- apps/circuit-compiler/src/app/components/container.tsx | 10 +++++++--- libs/remix-ui/editor/src/lib/remix-ui-editor.tsx | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/container.tsx b/apps/circuit-compiler/src/app/components/container.tsx index 51cc280594..0b67e6b153 100644 --- a/apps/circuit-compiler/src/app/components/container.tsx +++ b/apps/circuit-compiler/src/app/components/container.tsx @@ -11,6 +11,7 @@ import { WitnessToggler } from './witnessToggler' import { WitnessSection } from './witness' import { CompilerFeedback } from './feedback' import { CompilerReport, PrimeValue } from '../types' +const _paq = (window._paq = window._paq || []) export function Container () { const circuitApp = useContext(CircuitAppContext) @@ -73,7 +74,8 @@ export function Container () { explain why the error occurred and how to fix it. ` // @ts-ignore - await circuitApp.plugin.call('openaigpt', 'message', message) + await circuitApp.plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } else { const message = ` error message: ${error} @@ -81,7 +83,8 @@ export function Container () { explain why the error occurred and how to fix it. ` // @ts-ignore - await circuitApp.plugin.call('openaigpt', 'message', message) + await circuitApp.plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } else { const error = report.message @@ -91,7 +94,8 @@ export function Container () { explain why the error occurred and how to fix it. ` // @ts-ignore - await circuitApp.plugin.call('openaigpt', 'message', message) + await circuitApp.plugin.call('solcoder', 'error_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } 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 a0ed7626aa..b29586115e 100644 --- a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +++ b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx @@ -739,8 +739,8 @@ export const EditorUI = (props: EditorUIProps) => { const file = await props.plugin.call('fileManager', 'getCurrentFile') const content = await props.plugin.call('fileManager', 'readFile', file) const message = intl.formatMessage({ id: 'editor.explainFunctionByAI' }, { content, currentFunction: currentFunction.current }) - await props.plugin.call('openaigpt', 'message', message) - _paq.push(['trackEvent', 'ai', 'openai', 'explainFunction']) + await props.plugin.call('solcoder', 'code_explaining', message, content) + _paq.push(['trackEvent', 'ai', 'solcoder', 'explainFunction']) }, } From a0713d6d8d86922fc46cb6cf4a4b33d430f027a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:38:35 +0200 Subject: [PATCH 09/28] added documentation generation --- libs/remix-ui/editor/src/lib/remix-ui-editor.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 b29586115e..ed28f65618 100644 --- a/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx +++ b/libs/remix-ui/editor/src/lib/remix-ui-editor.tsx @@ -723,8 +723,8 @@ export const EditorUI = (props: EditorUIProps) => { const file = await props.plugin.call('fileManager', 'getCurrentFile') const content = await props.plugin.call('fileManager', 'readFile', file) const message = intl.formatMessage({ id: 'editor.generateDocumentationByAI' }, { content, currentFunction: currentFunction.current }) - await props.plugin.call('openaigpt', 'message', message) - _paq.push(['trackEvent', 'ai', 'openai', 'generateDocumentation']) + await props.plugin.call('solcoder', 'code_explaining', message) + _paq.push(['trackEvent', 'ai', 'solcoder', 'generateDocumentation']) }, } From bd67db5e1f519219727290a96a296fc03dfb711d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Wed, 22 May 2024 14:58:02 +0200 Subject: [PATCH 10/28] moved logs to solcoderAI.tsx --- .../src/app/components/container.tsx | 6 +----- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 13 +++++++++++++ apps/vyper/src/app/utils/remix-client.tsx | 3 --- .../src/lib/providers/inlineCompletionProvider.ts | 3 --- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/container.tsx b/apps/circuit-compiler/src/app/components/container.tsx index 0b67e6b153..40cf20f5df 100644 --- a/apps/circuit-compiler/src/app/components/container.tsx +++ b/apps/circuit-compiler/src/app/components/container.tsx @@ -11,7 +11,6 @@ import { WitnessToggler } from './witnessToggler' import { WitnessSection } from './witness' import { CompilerFeedback } from './feedback' import { CompilerReport, PrimeValue } from '../types' -const _paq = (window._paq = window._paq || []) export function Container () { const circuitApp = useContext(CircuitAppContext) @@ -54,7 +53,7 @@ export function Container () { const handleCircuitAutoCompile = (value: boolean) => { circuitApp.dispatch({ type: 'SET_AUTO_COMPILE', payload: value }) } - + const handleCircuitHideWarnings = (value: boolean) => { circuitApp.dispatch({ type: 'SET_HIDE_WARNINGS', payload: value }) } @@ -75,7 +74,6 @@ export function Container () { ` // @ts-ignore await circuitApp.plugin.call('solcoder', 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } else { const message = ` error message: ${error} @@ -84,7 +82,6 @@ export function Container () { ` // @ts-ignore await circuitApp.plugin.call('solcoder', 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } else { const error = report.message @@ -95,7 +92,6 @@ export function Container () { ` // @ts-ignore await circuitApp.plugin.call('solcoder', 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining_circom']) } } diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 44e7a8121e..6e5efcf7bd 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -50,6 +50,8 @@ export class SolCoder extends Plugin { async code_generation(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') + _paq.push(['trackEvent', 'ai', 'solcoder', 'code_generation']) + let result try { result = await( @@ -78,6 +80,9 @@ export class SolCoder extends Plugin { async solidity_answer(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + _paq.push(['trackEvent', 'ai', 'solcoder', 'answering']) + let result try { const main_prompt = this._build_solgpt_promt(prompt) @@ -112,6 +117,9 @@ export class SolCoder extends Plugin { async code_explaining(prompt, context:string=""): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) + let result try { result = await( @@ -138,6 +146,8 @@ export class SolCoder extends Plugin { async code_completion(prompt, options:SuggestOptions=null): Promise { this.emit("aiInfering") + _paq.push(['trackEvent', 'ai', 'solcoder', 'code_completion']) + let result try { result = await( @@ -184,6 +194,8 @@ export class SolCoder extends Plugin { async code_insertion(msg_pfx, msg_sfx): Promise { this.emit("aiInfering") + _paq.push(['trackEvent', 'ai', 'solcoder', 'code_insertion']) + let result try { result = await( @@ -222,6 +234,7 @@ export class SolCoder extends Plugin { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result try { diff --git a/apps/vyper/src/app/utils/remix-client.tsx b/apps/vyper/src/app/utils/remix-client.tsx index 3de036f352..cbfa5eb87e 100644 --- a/apps/vyper/src/app/utils/remix-client.tsx +++ b/apps/vyper/src/app/utils/remix-client.tsx @@ -5,8 +5,6 @@ import {PluginClient} from '@remixproject/plugin' import {Contract, compileContract} from './compiler' import {ExampleContract} from '../components/VyperResult' import EventEmitter from 'events' -const _paq = (window._paq = window._paq || []) - export type VyperComplierAddress = 'https://vyper2.remixproject.org/' | 'http://localhost:8000/' export class RemixClient extends PluginClient { @@ -73,7 +71,6 @@ export class RemixClient extends PluginClient { can you explain why this error occurred and how to fix it? ` await this.client.call('solcoder' as any, 'error_explaining', message) - _paq.push(['trackEvent', 'ai', 'solcoder', 'error_explaining']) } catch (err) { console.error('unable to askGpt') console.error(err) diff --git a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts index 92c79914b5..ce274d57b5 100644 --- a/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts +++ b/libs/remix-ui/editor/src/lib/providers/inlineCompletionProvider.ts @@ -66,7 +66,6 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli this.props.plugin.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'Solcoder - generating code for following comment: ' + ask.replace('///', '') }) const data = await this.props.plugin.call('solcoder', 'code_generation', word) - _paq.push(['trackEvent', 'ai', 'solcoder', 'code_generation']) const parsedData = data[0].trimStart() //JSON.parse(data).trimStart() const item: monacoTypes.languages.InlineCompletion = { @@ -105,7 +104,6 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli // Code insertion try { const output = await this.props.plugin.call('solcoder', 'code_insertion', word, word_after) - _paq.push(['trackEvent', 'ai', 'solcoder', 'code_insertion']) const generatedText = output[0] // no need to clean it. should already be const item: monacoTypes.languages.InlineCompletion = { @@ -130,7 +128,6 @@ export class RemixInLineCompletionProvider implements monacoTypes.languages.Inli try { // Code completion const output = await this.props.plugin.call('solcoder', 'code_completion', word) - _paq.push(['trackEvent', 'ai', 'solcoder', 'code_completion']) const generatedText = output[0] let clean = generatedText From 6b345a1259934e1f222365a44d34cb90880a4253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Fri, 24 May 2024 10:54:27 +0200 Subject: [PATCH 11/28] renamed sol-gpt to remix ai --- apps/circuit-compiler/src/app/components/feedbackAlert.tsx | 2 +- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 6 +++--- libs/remix-ui/renderer/src/lib/renderer.tsx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx index 5bc7114520..0ce8066bad 100644 --- a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx +++ b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx @@ -24,7 +24,7 @@ export function FeedbackAlert ({ message, askGPT }: FeedbackAlertProps) { { e.stopPropagation() askGPT() - }}>ASK SOL-GPT + }}>ASK Remix AI diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 6e5efcf7bd..85ea43bef7 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -80,7 +80,7 @@ export class SolCoder extends Plugin { async solidity_answer(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'answering']) let result @@ -117,7 +117,7 @@ export class SolCoder extends Plugin { async code_explaining(prompt, context:string=""): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result @@ -233,7 +233,7 @@ export class SolCoder extends Plugin { async error_explaining(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for SOL-GPT answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index 6d830a8230..c6041801ed 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -111,7 +111,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { onClick={() => { askGtp() }} style={{ borderColor: "var(--ai)" }} > - ASK SOL-GPT + ASK Remix AI From e4dd8dfc77778b7b83c8e4052de9795c60a135ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Mon, 27 May 2024 12:13:30 +0200 Subject: [PATCH 12/28] rm openai bindings --- apps/remix-ide/src/app.js | 6 +-- apps/remix-ide/src/app/plugins/openaigpt.tsx | 49 -------------------- apps/remix-ide/src/remixAppManager.js | 1 - apps/remix-ide/src/remixEngine.js | 1 - 4 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 apps/remix-ide/src/app/plugins/openaigpt.tsx diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index 1fa9e2f8f7..5a2ddf2a47 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -54,8 +54,6 @@ import { electronTemplates } from './app/plugins/electron/templatesPlugin' import { xtermPlugin } from './app/plugins/electron/xtermPlugin' 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,7 +231,6 @@ class AppComponent { const contractFlattener = new ContractFlattener() // ----------------- AI -------------------------------------- - const openaigpt = new OpenAIGpt() const solcoder = new SolCoder() // ----------------- import content service ------------------------ @@ -352,7 +349,6 @@ class AppComponent { contractFlattener, solidityScript, templates, - openaigpt, solcoder, pluginStateLogger ]) @@ -512,7 +508,7 @@ class AppComponent { await this.appManager.registerContextMenuItems() } ) - await this.appManager.activatePlugin(['solidity-script', 'openaigpt']) + await this.appManager.activatePlugin(['solidity-script']) await this.appManager.activatePlugin(['solcoder']) diff --git a/apps/remix-ide/src/app/plugins/openaigpt.tsx b/apps/remix-ide/src/app/plugins/openaigpt.tsx deleted file mode 100644 index e436d7c9d7..0000000000 --- a/apps/remix-ide/src/app/plugins/openaigpt.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { Plugin } from '@remixproject/engine' -import { CreateChatCompletionResponse } from 'openai' - -const _paq = (window._paq = window._paq || []) - -const profile = { - name: 'openaigpt', - displayName: 'openaigpt', - description: 'openaigpt', - methods: ['message'], - events: [], - maintainedBy: 'Remix', -} - -export class OpenAIGpt extends Plugin { - constructor() { - super(profile) - } - - async message(prompt): Promise { - this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'Waiting for GPT answer...' }) - let result - try { - result = await ( - await fetch('https://openai-gpt.remixproject.org', { - method: 'POST', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ prompt }), - }) - ).json() - } catch (e) { - this.call('terminal', 'log', { type: 'typewritererror', value: `Unable to get a response ${e.message}` }) - return - } - - if (result && result.choices && result.choices.length) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.choices[0].message.content }) - } else if (result.error) { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: result.error }) - } else { - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: 'No response...' }) - } - return result.data - } -} diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index df13ce19c0..c52b50c081 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -71,7 +71,6 @@ let requiredModules = [ // services + layout views + system views 'vyperCompilationDetails', 'contractflattener', 'solidity-script', - 'openaigpt', 'solcoder', 'home', 'doc-viewer', diff --git a/apps/remix-ide/src/remixEngine.js b/apps/remix-ide/src/remixEngine.js index 948eca47bc..baaf75deda 100644 --- a/apps/remix-ide/src/remixEngine.js +++ b/apps/remix-ide/src/remixEngine.js @@ -26,7 +26,6 @@ export class RemixEngine extends Engine { 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 * 3 } return { queueTimeout: 10000 } From 9e50d3c1b8b490ce30068cf7e4f8062cab9c20d7 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Thu, 30 May 2024 14:16:09 +0100 Subject: [PATCH 13/28] Move icons to old position and pass initial state to parent. --- .../panel/src/lib/plugins/panel-header.tsx | 36 +++++++++---------- .../panel/src/lib/plugins/panel-plugin.tsx | 7 ++-- 2 files changed, 21 insertions(+), 22 deletions(-) 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 b2d87297e2..696e33c2f9 100644 --- a/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx +++ b/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx @@ -44,19 +44,6 @@ const RemixUIPanelHeader = (props: RemixPanelProps) => { {plugin?.profile?.name && }
    - { - plugin && plugin.profile.name !== 'filePanel' && ( - - -
    - }> - - -
    -
    -
    - ) - }
    {plugin?.profile?.maintainedBy?.toLowerCase() === 'remix' ? ( }> @@ -75,13 +62,22 @@ const RemixUIPanelHeader = (props: RemixPanelProps) => { { plugin && plugin.profile.name !== 'filePanel' && ( - -
    - }> - - -
    -
    + <> + +
    + }> + + +
    +
    + +
    + }> + + +
    +
    +
    ) } diff --git a/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx b/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx index fa6760dc08..7996bb6b46 100644 --- a/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx +++ b/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx @@ -19,9 +19,12 @@ const RemixUIPanelPlugin = (props: panelPLuginProps, panelRef: any) => { let view = props.pluginRecord.view if (props.initialState) { + let hasInitialProps = false + view = React.Children.map((props.pluginRecord.view.props as any).children, child => { - if (React.isValidElement(child) && typeof child.type === 'function') { - // Safe to clone and pass `initialState` + if (React.isValidElement(child) && typeof child.type === 'function' && !hasInitialProps) { + hasInitialProps = true + // Safe to clone and pass `initialState` return React.cloneElement(child, { ...props, initialState: props.initialState } as any) } return child From bab1294699ae7b082ea3949906e5d4e11f88bc11 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Fri, 31 May 2024 10:26:17 +0100 Subject: [PATCH 14/28] Restore old changes --- apps/remix-ide/src/app/tabs/locales/es/panel.json | 10 ++++++++++ apps/remix-ide/src/app/tabs/locales/fr/panel.json | 10 ++++++++++ apps/remix-ide/src/app/tabs/locales/it/panel.json | 10 ++++++++++ apps/remix-ide/src/app/tabs/locales/ru/panel.json | 10 ++++++++++ apps/remix-ide/src/app/tabs/locales/zh/panel.json | 10 ++++++++++ 5 files changed, 50 insertions(+) create mode 100644 apps/remix-ide/src/app/tabs/locales/es/panel.json create mode 100644 apps/remix-ide/src/app/tabs/locales/fr/panel.json create mode 100644 apps/remix-ide/src/app/tabs/locales/it/panel.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ru/panel.json create mode 100644 apps/remix-ide/src/app/tabs/locales/zh/panel.json diff --git a/apps/remix-ide/src/app/tabs/locales/es/panel.json b/apps/remix-ide/src/app/tabs/locales/es/panel.json new file mode 100644 index 0000000000..44aab809a3 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/es/panel.json @@ -0,0 +1,10 @@ +{ + "panel.author": "Autor", + "panel.maintainedBy": "Mantenido por", + "panel.documentation": "Documentaciรณn", + "panel.description": "Descripciรณn", + "panel.maintainedByRemix": "Mantenido por Remix", + "panel.pluginInfo": "Informaciรณn del Complemento", + "panel.linkToDoc": "Enlace a la documentaciรณn", + "panel.makeAnissue": "Crear un asunto" +} diff --git a/apps/remix-ide/src/app/tabs/locales/fr/panel.json b/apps/remix-ide/src/app/tabs/locales/fr/panel.json new file mode 100644 index 0000000000..8deab3169a --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/fr/panel.json @@ -0,0 +1,10 @@ +{ + "panel.author": "Auteur", + "panel.maintainedBy": "Maintenu par :", + "panel.documentation": "Documentation", + "panel.description": "Description", + "panel.maintainedByRemix": "Maintenu par Remix", + "panel.pluginInfo": "Informations sur l'extension", + "panel.linkToDoc": "Lien vers la documentation", + "panel.makeAnissue": "Faire un ticket" +} diff --git a/apps/remix-ide/src/app/tabs/locales/it/panel.json b/apps/remix-ide/src/app/tabs/locales/it/panel.json new file mode 100644 index 0000000000..400b39508e --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/it/panel.json @@ -0,0 +1,10 @@ +{ + "panel.author": "Autore", + "panel.maintainedBy": "Mantenuto Da", + "panel.documentation": "Documentazione", + "panel.description": "Descrizione", + "panel.maintainedByRemix": "Mantenuto da Remix", + "panel.pluginInfo": "Informazioni sul plugin", + "panel.linkToDoc": "Link alla documentazione", + "panel.makeAnissue": "Crea una Issue" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ru/panel.json b/apps/remix-ide/src/app/tabs/locales/ru/panel.json new file mode 100644 index 0000000000..066069d5bd --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ru/panel.json @@ -0,0 +1,10 @@ +{ + "panel.author": "ะะฒั‚ะพั€", + "panel.maintainedBy": "ะŸะพะดะดะตั€ะถะธะฒะฐะตั‚ัั", + "panel.documentation": "ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั", + "panel.description": "ะžะฟะธัะฐะฝะธะต", + "panel.maintainedByRemix": "ะŸะพะดะดะตั€ะถะธะฒะฐะตั‚ัั Remix", + "panel.pluginInfo": "ะ˜ะฝั„ะพั€ะผะฐั†ะธั ะพ ะฟะปะฐะณะธะฝะต", + "panel.linkToDoc": "ะกัั‹ะปะบะฐ ะฝะฐ ะดะพะบัƒะผะตะฝั‚ะฐั†ะธัŽ", + "panel.makeAnissue": "ะกะพะทะดะฐั‚ัŒ ะทะฐะดะฐั‡ัƒ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/zh/panel.json b/apps/remix-ide/src/app/tabs/locales/zh/panel.json new file mode 100644 index 0000000000..e1a63ff928 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/zh/panel.json @@ -0,0 +1,10 @@ +{ + "panel.author": "ไฝœ่€…", + "panel.maintainedBy": "็ปดๆŠค่€…", + "panel.documentation": "ๆ–‡ๆกฃ", + "panel.description": "ๆ่ฟฐ", + "panel.maintainedByRemix": "็”ฑ Remix ็ปดๆŠค", + "panel.pluginInfo": "ๆ’ไปถไฟกๆฏ", + "panel.linkToDoc": "ๆ–‡ๆกฃ้“พๆŽฅ", + "panel.makeAnissue": "ๆไบค issue" +} From 416441b8f065350ba40902fa838b426616de9c1b Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Fri, 31 May 2024 14:12:37 +0100 Subject: [PATCH 15/28] Keep pinned icon active --- apps/remix-ide/src/app/components/side-panel.tsx | 2 -- .../src/app/components/vertical-icons.tsx | 11 +++++++++++ .../src/lib/components/Icon.tsx | 16 ++++++++++++---- .../vertical-icons-panel/src/lib/types/index.ts | 1 + 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/apps/remix-ide/src/app/components/side-panel.tsx b/apps/remix-ide/src/app/components/side-panel.tsx index 3e62f8bea1..1a3ebc0f30 100644 --- a/apps/remix-ide/src/app/components/side-panel.tsx +++ b/apps/remix-ide/src/app/components/side-panel.tsx @@ -73,7 +73,6 @@ export class SidePanel extends AbstractPanel { await this.call('pinnedPanel', 'pinView', profile, this.plugins[profile.name].view) if (this.plugins[profile.name].active) this.call('menuicons', 'select', 'filePanel') super.remove(profile.name) - this.call('menuicons', 'unlinkContent', profile) this.renderComponent() } @@ -85,7 +84,6 @@ export class SidePanel extends AbstractPanel { super.addView(profile, view) this.plugins[activePlugin].active = false this.plugins[profile.name].active = true - await this.call('menuicons', 'linkContent', profile) this.showContent(profile.name) } diff --git a/apps/remix-ide/src/app/components/vertical-icons.tsx b/apps/remix-ide/src/app/components/vertical-icons.tsx index 4d54c5a855..c46df20fda 100644 --- a/apps/remix-ide/src/app/components/vertical-icons.tsx +++ b/apps/remix-ide/src/app/components/vertical-icons.tsx @@ -79,6 +79,16 @@ export class VerticalIcons extends Plugin { } this.renderComponent() }) + + this.on('pinnedPanel', 'pinnedPlugin', (profile) => { + this.icons[profile.name].pinned = true + this.renderComponent() + }) + + this.on('pinnedPanel', 'unPinnedPlugin', (profile) => { + this.icons[profile.name].pinned = false + this.renderComponent() + }) } async linkContent(profile: Profile) { @@ -87,6 +97,7 @@ export class VerticalIcons extends Plugin { this.icons[profile.name] = { profile: profile, active: false, + pinned: false, canbeDeactivated: await this.call('manager', 'canDeactivate', this.profile, profile), timestamp: Date.now() } diff --git a/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx b/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx index 00fb539fa6..e50746d3f4 100644 --- a/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx +++ b/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx @@ -88,10 +88,10 @@ const Icon = ({ iconRecord, verticalIconPlugin, contextMenuAction, theme }: Icon return ( <>
    - {iconRecord.active &&
    } + >
    { - ;(verticalIconPlugin as any).toggle(name) + if (iconRecord.pinned) { + console.log('called an already pinned plugin') + } else { + (verticalIconPlugin as any).toggle(name) + } }} {...{ plugin: name }} onContextMenu={(e: any) => { @@ -133,6 +137,10 @@ const Icon = ({ iconRecord, verticalIconPlugin, contextMenuAction, theme }: Icon contextMenuAction={contextMenuAction} /> ) : null} +
    ) diff --git a/libs/remix-ui/vertical-icons-panel/src/lib/types/index.ts b/libs/remix-ui/vertical-icons-panel/src/lib/types/index.ts index 754c897b8b..c95930ad4f 100644 --- a/libs/remix-ui/vertical-icons-panel/src/lib/types/index.ts +++ b/libs/remix-ui/vertical-icons-panel/src/lib/types/index.ts @@ -3,6 +3,7 @@ import { Profile } from '@remixproject/plugin-utils' export type IconRecord = { profile: Profile active: boolean + pinned: boolean class?: string canbeDeactivated?: boolean isRequired?: boolean From 33d0715f86ab84ad41f5f1ce4ef384fd00506aad Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Fri, 31 May 2024 14:27:07 +0100 Subject: [PATCH 16/28] Fix double pinned icon --- apps/remix-ide/src/app/components/vertical-icons.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app/components/vertical-icons.tsx b/apps/remix-ide/src/app/components/vertical-icons.tsx index c46df20fda..c7b071b614 100644 --- a/apps/remix-ide/src/app/components/vertical-icons.tsx +++ b/apps/remix-ide/src/app/components/vertical-icons.tsx @@ -81,7 +81,13 @@ export class VerticalIcons extends Plugin { }) this.on('pinnedPanel', 'pinnedPlugin', (profile) => { - this.icons[profile.name].pinned = true + Object.keys(this.icons).map((icon) => { + if (this.icons[icon].profile.name === profile.name) { + this.icons[icon].pinned = true + } else { + this.icons[icon].pinned = false + } + }) this.renderComponent() }) From 63b553ff114a226ea2a055df3730ddb7123ec16f Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Fri, 31 May 2024 18:27:00 +0100 Subject: [PATCH 17/28] Unpin existing icon --- apps/remix-ide/src/app/components/vertical-icons.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app/components/vertical-icons.tsx b/apps/remix-ide/src/app/components/vertical-icons.tsx index c7b071b614..eb5ea60863 100644 --- a/apps/remix-ide/src/app/components/vertical-icons.tsx +++ b/apps/remix-ide/src/app/components/vertical-icons.tsx @@ -92,7 +92,7 @@ export class VerticalIcons extends Plugin { }) this.on('pinnedPanel', 'unPinnedPlugin', (profile) => { - this.icons[profile.name].pinned = false + if (this.icons[profile.name]) this.icons[profile.name].pinned = false this.renderComponent() }) } From d9c90fff6a51ed5c77f1f3f492e992ae8851c06d Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Fri, 31 May 2024 19:08:09 +0100 Subject: [PATCH 18/28] Update new dock icons --- libs/remix-ui/panel/src/lib/plugins/panel-header.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 696e33c2f9..0b30fbfd44 100644 --- a/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx +++ b/libs/remix-ui/panel/src/lib/plugins/panel-header.tsx @@ -66,14 +66,14 @@ const RemixUIPanelHeader = (props: RemixPanelProps) => {
    }> - +
    }> - +
    From 2a49f55f97f40860be490f00977e29a49769e5c1 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Mon, 3 Jun 2024 12:55:42 +0100 Subject: [PATCH 19/28] Show highlight in pinned-panel --- .../src/app/components/pinned-panel.tsx | 17 ++++++++++++----- .../panel/src/lib/plugins/panel-plugin.tsx | 17 ++++++++++++++++- libs/remix-ui/panel/src/lib/plugins/panel.css | 4 ++++ .../panel/src/lib/plugins/remix-ui-panel.tsx | 3 ++- .../src/lib/components/Icon.tsx | 2 +- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/apps/remix-ide/src/app/components/pinned-panel.tsx b/apps/remix-ide/src/app/components/pinned-panel.tsx index 03fc6e1050..f66c9fc3d2 100644 --- a/apps/remix-ide/src/app/components/pinned-panel.tsx +++ b/apps/remix-ide/src/app/components/pinned-panel.tsx @@ -11,12 +11,13 @@ const pinnedPanel = { displayName: 'Pinned Panel', description: 'Remix IDE pinned panel', version: packageJson.version, - methods: ['addView', 'removeView', 'currentFocus', 'pinView', 'unPinView'] + methods: ['addView', 'removeView', 'currentFocus', 'pinView', 'unPinView', 'highlight'] } export class PinnedPanel extends AbstractPanel { dispatch: React.Dispatch = () => {} - loggedState: any + loggedState: Record + highlightStamp: number constructor() { super(pinnedPanel) @@ -61,24 +62,30 @@ export class PinnedPanel extends AbstractPanel { this.emit('unPinnedPlugin', profile) } + highlight () { + this.highlightStamp = Date.now() + this.renderComponent() + } + setDispatch (dispatch: React.Dispatch) { this.dispatch = dispatch } render() { return ( -
    +
    ) } updateComponent(state: any) { - return } plugins={state.plugins} pluginState={state.pluginState} /> + return } { ...state } /> } renderComponent() { this.dispatch({ plugins: this.plugins, - pluginState: this.loggedState + pluginState: this.loggedState, + highlightStamp: this.highlightStamp }) } } diff --git a/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx b/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx index 7996bb6b46..3ef6066ab9 100644 --- a/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx +++ b/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx @@ -5,12 +5,15 @@ import './panel.css' interface panelPLuginProps { pluginRecord: PluginRecord, initialState?: any, + highlightStamp?: number, children?: any } const RemixUIPanelPlugin = (props: panelPLuginProps, panelRef: any) => { const localRef = useRef(null) const [view, setView] = useState() + const [showHighlight, setShowHighlight] = useState(false) + useEffect(() => { const ref: any = panelRef || localRef if (ref.current) { @@ -39,8 +42,20 @@ const RemixUIPanelPlugin = (props: panelPLuginProps, panelRef: any) => { } }, []) + useEffect(() => { + setShowHighlight(true) + }, [props.highlightStamp]) + + useEffect(() => { + if (showHighlight) { + setTimeout(() => { + setShowHighlight(false) + }, 500) + } + }, [showHighlight]) + return ( -
    +
    <>{view}
    ) diff --git a/libs/remix-ui/panel/src/lib/plugins/panel.css b/libs/remix-ui/panel/src/lib/plugins/panel.css index 437471fabb..b872ff1ada 100644 --- a/libs/remix-ui/panel/src/lib/plugins/panel.css +++ b/libs/remix-ui/panel/src/lib/plugins/panel.css @@ -106,3 +106,7 @@ iframe { .terminal-wrap.minimized.desktop { } + +.highlight { + animation: highlight 2s forwards; +} diff --git a/libs/remix-ui/panel/src/lib/plugins/remix-ui-panel.tsx b/libs/remix-ui/panel/src/lib/plugins/remix-ui-panel.tsx index 7ff51827bd..4e1fa59a2e 100644 --- a/libs/remix-ui/panel/src/lib/plugins/remix-ui-panel.tsx +++ b/libs/remix-ui/panel/src/lib/plugins/remix-ui-panel.tsx @@ -9,6 +9,7 @@ export interface RemixPanelProps { plugins: Record, header: JSX.Element, pluginState?: any, + highlightStamp?: number } export function RemixPluginPanel(props: RemixPanelProps) { @@ -18,7 +19,7 @@ export function RemixPluginPanel(props: RemixPanelProps) {
    {Object.values(props.plugins).map((pluginRecord) => { - return + return })}
    diff --git a/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx b/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx index e50746d3f4..a7de212b38 100644 --- a/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx +++ b/libs/remix-ui/vertical-icons-panel/src/lib/components/Icon.tsx @@ -101,7 +101,7 @@ const Icon = ({ iconRecord, verticalIconPlugin, contextMenuAction, theme }: Icon className={`remixui_icon m-0 pt-1`} onClick={() => { if (iconRecord.pinned) { - console.log('called an already pinned plugin') + verticalIconPlugin.call('pinnedPanel', 'highlight') } else { (verticalIconPlugin as any).toggle(name) } From bde6219099810133614fcb29d01b89130523e4c5 Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Mon, 3 Jun 2024 13:11:50 +0100 Subject: [PATCH 20/28] Only show highlight for pinned-panel --- apps/remix-ide/src/app/components/pinned-panel.tsx | 2 +- libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/remix-ide/src/app/components/pinned-panel.tsx b/apps/remix-ide/src/app/components/pinned-panel.tsx index f66c9fc3d2..ea29093f6a 100644 --- a/apps/remix-ide/src/app/components/pinned-panel.tsx +++ b/apps/remix-ide/src/app/components/pinned-panel.tsx @@ -73,7 +73,7 @@ export class PinnedPanel extends AbstractPanel { render() { return ( -
    +
    ) } diff --git a/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx b/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx index 3ef6066ab9..4a371ce915 100644 --- a/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx +++ b/libs/remix-ui/panel/src/lib/plugins/panel-plugin.tsx @@ -43,7 +43,7 @@ const RemixUIPanelPlugin = (props: panelPLuginProps, panelRef: any) => { }, []) useEffect(() => { - setShowHighlight(true) + if (props.highlightStamp) setShowHighlight(true) }, [props.highlightStamp]) useEffect(() => { From cfe312cfb16701fbb0efa1fc0b4ed979b6d5b146 Mon Sep 17 00:00:00 2001 From: ryestew Date: Sun, 2 Jun 2024 22:20:14 -0400 Subject: [PATCH 21/28] add Korean --- apps/remix-ide/src/app/tabs/locale-module.js | 2 + .../src/app/tabs/locales/ko/circuit.json | 15 ++ .../src/app/tabs/locales/ko/debugger.json | 26 ++++ .../src/app/tabs/locales/ko/filePanel.json | 134 +++++++++++++++++ .../src/app/tabs/locales/ko/home.json | 69 +++++++++ .../src/app/tabs/locales/ko/index.js | 17 +++ .../src/app/tabs/locales/ko/panel.json | 10 ++ .../tabs/locales/ko/permissionHandler.json | 13 ++ .../app/tabs/locales/ko/pluginManager.json | 43 ++++++ .../src/app/tabs/locales/ko/remixApp.json | 3 + .../src/app/tabs/locales/ko/remixUiTabs.json | 7 + .../src/app/tabs/locales/ko/search.json | 24 +++ .../src/app/tabs/locales/ko/settings.json | 44 ++++++ .../src/app/tabs/locales/ko/solidity.json | 81 ++++++++++ .../tabs/locales/ko/solidityUnitTesting.json | 41 ++++++ .../src/app/tabs/locales/ko/terminal.json | 43 ++++++ .../src/app/tabs/locales/ko/udapp.json | 139 ++++++++++++++++++ .../src/lib/components/homeTablangOptions.tsx | 2 +- 18 files changed, 712 insertions(+), 1 deletion(-) create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/circuit.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/debugger.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/filePanel.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/home.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/index.js create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/panel.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/permissionHandler.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/pluginManager.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/remixApp.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/remixUiTabs.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/search.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/settings.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/solidity.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/solidityUnitTesting.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/terminal.json create mode 100644 apps/remix-ide/src/app/tabs/locales/ko/udapp.json diff --git a/apps/remix-ide/src/app/tabs/locale-module.js b/apps/remix-ide/src/app/tabs/locale-module.js index 465a34fbed..413fe9df35 100644 --- a/apps/remix-ide/src/app/tabs/locale-module.js +++ b/apps/remix-ide/src/app/tabs/locale-module.js @@ -8,6 +8,7 @@ import zhJson from './locales/zh' import esJson from './locales/es' import frJson from './locales/fr' import itJson from './locales/it' +import koJson from './locales/ko' import ruJson from './locales/ru' const _paq = window._paq = window._paq || [] @@ -16,6 +17,7 @@ const locales = [ { code: 'en', name: 'English', localeName: 'English', messages: enJson }, { code: 'fr', name: 'French', localeName: 'Franรงais', messages: frJson }, { code: 'it', name: 'Italian', localeName: 'Italiano', messages: itJson }, + { code: 'ko', name: 'Korean', localeName: 'ํ•œ๊ตญ์ธ', messages: koJson }, { code: 'ru', name: 'Russian', localeName: 'ะ ัƒััะบะธะน', messages: ruJson }, { code: 'es', name: 'Spanish', localeName: 'Espaรฑol', messages: esJson } ] diff --git a/apps/remix-ide/src/app/tabs/locales/ko/circuit.json b/apps/remix-ide/src/app/tabs/locales/ko/circuit.json new file mode 100644 index 0000000000..1fd41a0b3b --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/circuit.json @@ -0,0 +1,15 @@ +{ + "circuit.compiler": "์ปดํŒŒ์ผ๋Ÿฌ", + "circuit.autoCompile": "์ž๋™ ์ปดํŒŒ์ผ", + "circuit.hideWarnings": "๊ฒฝ๊ณ  ์ˆจ๊ธฐ๊ธฐ", + "circuit.advancedConfigurations": "๊ณ ๊ธ‰ ์„ค์ •", + "circuit.compilerConfiguration": "์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ •", + "circuit.prime": "ํ”„๋ผ์ž„", + "circuit.useConfigurationFile": "์„ค์ • ํŒŒ์ผ ์‚ฌ์šฉ", + "circuit.compile": "์ปดํŒŒ์ผ", + "circuit.noFileSelected": "์„ ํƒ๋œ ํŒŒ์ผ ์—†์Œ", + "circuit.generateR1cs": "R1CS ์ƒ์„ฑ", + "circuit.computeWitness": "\b์ฆ๋ช… ๊ณ„์‚ฐ", + "circuit.signalInput": "์‹œ๊ทธ๋„ ์ž…๋ ฅ", + "circuit.compute": "๊ณ„์‚ฐ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/debugger.json b/apps/remix-ide/src/app/tabs/locales/ko/debugger.json new file mode 100644 index 0000000000..5b56bbdfe4 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/debugger.json @@ -0,0 +1,26 @@ +{ + "debugger.displayName": "๋””๋ฒ„๊ฑฐ", + "debugger.debuggerConfiguration": "๋””๋ฒ„๊ฑฐ ์„ค์ •", + "debugger.stopDebugging": "๋””๋ฒ„๊น… ์ค‘์ง€", + "debugger.provideTxNumber": "์œ ํšจํ•œ ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”.", + "debugger.startDebugging": "๋””๋ฒ„๊น… ์‹œ์ž‘", + "debugger.placeholder": "ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋Š” 0x ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค", + "debugger.debugLocaNodeLabel": "๋กœ์ปฌ ๋…ธ๋“œ ๊ฐ•์ œ ์‚ฌ์šฉ", + "debugger.useGeneratedSources": "์ƒ์„ฑ๋œ ์†Œ์Šค ์‚ฌ์šฉ", + "debugger.debugWithGeneratedSources": "์„ ํƒ ์‹œ, ์ปดํŒŒ์ผ๋œ .yul ํŒŒ์ผ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋””๋ฒ„๊ฑฐ๋Š” ๊ทธ ํŒŒ์ผ์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.", + "debugger.introduction": "ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ฒ„๊น…ํ•  ๋•Œ, ์ปจํŠธ๋ž™ํŠธ๊ฐ€ ๊ฒ€์ฆ๋œ ๊ฒฝ์šฐ Remix๋Š” Sourcify ๋˜๋Š” Etherscan์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. Remix ์„ค์ •์— ๋‹น์‹ ์˜ Etherscan API ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. ์ง€์›๋˜๋Š” ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•ด ์ฃผ์„ธ์š”", + "debugger.forceToUseCurrentLocalNode": "๋””๋ฒ„๊ฑฐ๊ฐ€ ํ˜„์žฌ ๋กœ์ปฌ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œํ•˜๊ธฐ", + "debugger.sourceLocationStatus1": "์ค‘๋‹จ์ ์„ ์ฐพ๋Š” ์ค‘์ž…๋‹ˆ๋‹ค, ์ด ๊ณผ์ •์€ ๋‹ค์†Œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...", + "debugger.sourceLocationStatus2": "Sourcify๋‚˜ Etherscan์—์„œ ์†Œ์Šค ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์„ค์ •์—์„œ Etherscan Api ํ‚ค๊ฐ€ ์ œ๊ณต๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.", + "debugger.sourcifyDocs": "Sourcify ๋ฌธ์„œ", + "debugger.noDataAvailable": "๋ฐ์ดํ„ฐ ์—†์Œ", + "debugger.loadMore": "๋” ๋ณด๊ธฐ", + "debugger.copy": "๋ณต์‚ฌ", + "debugger.stepOverBack": "์ด์ „ ๋‹จ๊ณ„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ", + "debugger.stepBack": "ํ•œ ๋‹จ๊ณ„ ๋’ค๋กœ", + "debugger.stepInto": "๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€๊ธฐ", + "debugger.stepOverForward": "๋‹ค์Œ ๋‹จ๊ณ„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ", + "debugger.jumpPreviousBreakpoint": "์ด์ „ ์ค‘๋‹จ์ ์œผ๋กœ ์ด๋™", + "debugger.jumpOut": "๋ฐ–์œผ๋กœ ๋น ์ ธ๋‚˜์˜ค๊ธฐ", + "debugger.jumpNextBreakpoint": "๋‹ค์Œ ์ค‘๋‹จ์ ์œผ๋กœ ์ด๋™" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/filePanel.json b/apps/remix-ide/src/app/tabs/locales/ko/filePanel.json new file mode 100644 index 0000000000..42e6991b4b --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/filePanel.json @@ -0,0 +1,134 @@ +{ + "filePanel.displayName": "ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ", + "filePanel.workspace": "์ž‘์—… ๊ณต๊ฐ„", + "filePanel.create": "๋งŒ๋“ค๊ธฐ", + "filePanel.clone": "๋ณต์ œ", + "filePanel.download": "๋‹ค์šด๋กœ๋“œ", + "filePanel.backup": "๋ฐฑ์—…", + "filePanel.restore": "๋ณต์›", + "filePanel.workspace.create": "์ž‘์—…๊ณต๊ฐ„ ์ƒ์„ฑ", + "filePanel.workspace.rename": "์ž‘์—…๊ณต๊ฐ„ ์ด๋ฆ„ ๋ณ€๊ฒฝ", + "filePanel.workspace.save_workspace": "์ž‘์—…๊ณต๊ฐ„ ์ €์žฅ", + "filePanel.workspace.delete": "์ž‘์—…๊ณต๊ฐ„ ์‚ญ์ œ", + "filePanel.workspace.deleteConfirm": "ํ˜„์žฌ ์ž‘์—…๊ณต๊ฐ„์„ ์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.workspace.download": "์ž‘์—…๊ณต๊ฐ„ ๋‹ค์šด๋กœ๋“œ", + "filePanel.workspace.downloadConfirm": "ํ˜„์žฌ ์ž‘์—… ๊ณต๊ฐ„์„ zip ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.workspace.deleteAll": "์ „์ฒด ์ž‘์—…๊ณต๊ฐ„ ์‚ญ์ œ", + "filePanel.workspace.deleteAllConfirm1": "๋ชจ๋“  ์ž‘์—… ๊ณต๊ฐ„์„ ์ •๋ง ์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.workspace.deleteAllConfirm2": "์‚ญ์ œ๋œ ์ž‘์—…๊ณต๊ฐ„์€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋„ ๋ณต๊ตฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", + "filePanel.workspace.name": "์ž‘์—…๊ณต๊ฐ„ ์ด๋ฆ„", + "filePanel.workspace.chooseTemplate": "ํ…œํ”Œ๋ฆฟ ์„ ํƒ", + "filePanel.workspace.backup": "์ „์ฒด ์ž‘์—…๊ณต๊ฐ„ ๋ฐฑ์—…", + "filePanel.workspace.restore": "๋ฐฑ์—…์—์„œ ์ž‘์—…๊ณต๊ฐ„ ๋ณต๊ตฌํ•˜๊ธฐ", + "filePanel.workspace.clone": "Git ์ €์žฅ์†Œ ๋ณต์ œ", + "filePanel.workspace.cloneMessage": "์œ ํšจํ•œ git ์ €์žฅ์†Œ url์„ ์ œ๊ณตํ•˜์„ธ์š”", + "filePanel.workspace.enterGitUrl": "Git ์ €์žฅ์†Œ url์„ ์ž…๋ ฅํ•˜์„ธ์š”", + "filePanel.workspace.switch": "์ž‘์—…๊ณต๊ฐ„์œผ๋กœ ์ „ํ™˜", + "filePanel.workspace.solghaction": "Github action CI์—์„œ Solidity ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ „ ์„ค์ •๋œ yml ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.", + "filePanel.solghaction": "Solidity ํ…Œ์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ", + "filePanel.workspace.tssoltestghaction": "Solidity์šฉ mocha ๋ฐ chai ํ…Œ์ŠคํŠธ๋ฅผ GitHub Actions CI์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์ „ ์„ค์ •๋œ yml ํŒŒ์ผ ์ถ”๊ฐ€", + "filePanel.tssoltestghaction": "Mocha Chai ํ…Œ์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ", + "filePanel.workspace.addscriptetherscan": "Etherscan API์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€", + "filePanel.addscriptetherscan": "Etherscan ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€", + "filePanel.workspace.addscriptdeployer": "์ปจํŠธ๋ž™ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€", + "filePanel.addscriptdeployer": "์ปจํŠธ๋ž™ํŠธ ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€", + "filePanel.workspace.slitherghaction": "GitHub Actions CI์—์„œ slither ๋ถ„์„์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์ „ ์„ค์ •๋œ yml ํŒŒ์ผ ์ถ”๊ฐ€", + "filePanel.slitherghaction": "Slither ์›Œํฌํ”Œ๋กœ์šฐ", + "filePanel.workspace.helperscripts": "'scripts' ๋””๋ ‰ํ† ๋ฆฌ์— ํŽธ๋ฆฌํ•œ ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€", + "filePanel.helperscripts": "Web3 ์Šคํฌ๋ฆฝํŠธ", + "filePanel.newFile": "์ƒˆ ํŒŒ์ผ", + "filePanel.newFolder": "์ƒˆ ํด๋”", + "filePanel.rename": "์ด๋ฆ„ ๋ณ€๊ฒฝ", + "filePanel.delete": "์‚ญ์ œ", + "filePanel.deleteAll": "์ „์ฒด ์‚ญ์ œ", + "filePanel.run": "์‹คํ–‰", + "filePanel.pushChangesToGist": "Gist์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ ํ‘ธ์‹œ", + "filePanel.publishFolderToGist": "ํด๋”๋ฅผ gist์— ๊ฒŒ์‹œ", + "filePanel.publishFileToGist": "ํŒŒ์ผ์„ gist์— ๊ฒŒ์‹œ", + "filePanel.copy": "๋ณต์‚ฌ", + "filePanel.copyFileName": "์ด๋ฆ„ ๋ณต์‚ฌ", + "filePanel.copyFilePath": "๊ฒฝ๋กœ ๋ณต์‚ฌ", + "filePanel.contractflattener": "ํ‰ํƒ„ํ™”", + "filePanel.nahmii-compiler": "Nahmii์šฉ ์ปดํŒŒ์ผ", + "filePanel.solidityumlgen": "UML ์ƒ์„ฑ", + "filePanel.doc-gen": "Docs ์ƒ์„ฑ", + "filePanel.solidity": "์ปดํŒŒ์ผ", + "filePanel.paste": "๋ถ™์—ฌ๋„ฃ๊ธฐ", + "filePanel.compile": "์ปดํŒŒ์ผ", + "filePanel.compileForNahmii": "Nahmii์šฉ ์ปดํŒŒ์ผ", + "filePanel.createNewFile": "์ƒˆ ํŒŒ์ผ ์ƒ์„ฑ", + "filePanel.createNewFolder": "์ƒˆ ํด๋” ์ƒ์„ฑ", + "filePanel.publishToGist": "๋ชจ๋“  ํŒŒ์ผ์„ GitHub gist์— ๊ฒŒ์‹œ", + "filePanel.uploadFile": "ํŒŒ์ผ ์—…๋กœ๋“œ", + "filePanel.uploadFolder": "ํด๋” ์—…๋กœ๋“œ", + "filePanel.updateGist": "ํ˜„์žฌ [gist] ํƒ์ƒ‰๊ธฐ ์—…๋ฐ์ดํŠธ", + "filePanel.viewAllBranches": "๋ชจ๋“  ๋ธŒ๋žœ์น˜ ๋ณด๊ธฐ", + "filePanel.createBranch": "๋ธŒ๋žœ์น˜ ์ƒ์„ฑ", + "filePanel.switchBranches": "๋ธŒ๋žœ์น˜ ์ „ํ™˜", + "filePanel.checkoutGitBranch": "Git ๋ธŒ๋žœ์น˜ ์ฒดํฌ์•„์›ƒ", + "filePanel.findOrCreateABranch": "๋ธŒ๋žœ์น˜ ์ฐพ๊ธฐ ๋˜๋Š” ์ƒ์„ฑํ•˜๊ธฐ", + "filePanel.initGitRepositoryLabel": "์ž‘์—…๊ณต๊ฐ„์„ ์ƒˆ git ์ €์žฅ์†Œ๋กœ ์ดˆ๊ธฐํ™”", + "filePanel.initGitRepositoryWarning": "Git ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ์„ค์ • ํŒจ๋„์˜ Github ์„น์…˜์— ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ด๋ฉ”์ผ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.", + "filePanel.workspaceName": "์›Œํฌ์ŠคํŽ˜์ด์Šค ์ด๋ฆ„", + "filePanel.customizeTemplate": "์‚ฌ์šฉ์ž ์ง€์ • ํ…œํ”Œ๋ฆฟ", + "filePanel.features": "๊ธฐ๋Šฅ", + "filePanel.upgradeability": "์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅ์„ฑ", + "filePanel.ok": "ํ™•์ธ", + "filePanel.yes": "์˜ˆ", + "filePanel.cancel": "์ทจ์†Œ", + "filePanel.createNewWorkspace": "์ƒˆ ์ž‘์—…๊ณต๊ฐ„ ์ƒ์„ฑ", + "filePanel.connectToLocalhost": "๋กœ์ปฌํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐ", + "filePanel.copiedToClipboard": "ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋จ {path}", + "filePanel.downloadFailed": "๋‹ค์šด๋กœ๋“œ ์‹คํŒจ", + "filePanel.downloadFailedMsg": "๋‹ค์šด๋กœ๋“œ ์ค‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {error}", + "filePanel.close": "๋‹ซ๊ธฐ", + "filePanel.copyFileFailed": "ํŒŒ์ผ ๋ณต์‚ฌ ์‹คํŒจ", + "filePanel.copyFileFailedMsg": "ํŒŒ์ผ ๋ณต์‚ฌ ์ค‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {src}", + "filePanel.copyFolderFailed": "ํด๋” ๋ณต์‚ฌ ์‹คํŒจ", + "filePanel.copyFolderFailedMsg": "ํด๋” ๋ณต์‚ฌ ์ค‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {src}", + "filePanel.runScriptFailed": "์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹คํŒจ", + "filePanel.createPublicGist": "๊ณต๊ฐœ gist ์ƒ์„ฑ", + "filePanel.createPublicGistMsg1": "github.com์— ์›๊ฒฉ gist ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ‘ธ์‹œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.createPublicGistMsg2": "{path} ํด๋”์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๊ณต๊ฐœ gist๋กœ github.com์— ์ต๋ช…์œผ๋กœ ๊ฒŒ์‹œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.createPublicGistMsg3": "{path} ํŒŒ์ผ์„ ๊ณต๊ฐœ gist๋กœ github.com์— ์ต๋ช…์œผ๋กœ ๊ฒŒ์‹œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.createPublicGistMsg4": "{name} ์ž‘์—… ๊ณต๊ฐ„์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๊ณต๊ฐœ gist๋กœ github.com์— ์ต๋ช…์œผ๋กœ ๊ฒŒ์‹œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.deleteMsg": "์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ", + "filePanel.theseItems": "์ด ํ•ญ๋ชฉ๋“ค", + "filePanel.thisItem": "์ด ํ•ญ๋ชฉ", + "filePanel.deleteItems": "์•„์ดํ…œ ์‚ญ์ œ", + "filePanel.deleteItem": "์•„์ดํ…œ ์‚ญ์ œ", + "filePanel.globalToast": "์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ์—์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์“ฐ๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", + "filePanel.basic": "๊ธฐ๋ณธ", + "filePanel.blank": "๋น„์–ด ์žˆ์Œ", + "filePanel.multiSigWallet": "๋ฉ€ํ‹ฐ์‹œ๊ทธ ์ง€๊ฐ‘", + "filePanel.mintable": "๋ฐœํ–‰ ๊ฐ€๋Šฅ", + "filePanel.burnable": "์†Œ๊ฐ ๊ฐ€๋Šฅ", + "filePanel.pausable": "์ผ์‹œ ์ •์ง€ ๊ฐ€๋Šฅ", + "filePanel.semaphore": "์„ธ๋งˆํฌ์–ด", + "filePanel.hashchecker": "ํ•ด์‹œ ์ฒด์ปค", + "filePanel.rln": "์†๋„ ์ œํ•œ ๋„๋ฆฌํŒŒ์ด์–ด", + "filePanel.breakthroughLabsUniswapv4Hooks": "Breakthrough-Labs ํ›…", + "filePanel.uniswapV4Periphery": "v4 ์ฃผ๋ณ€๊ธฐ๊ธฐ", + "filePanel.uniswapV4HookBookMultiSigSwapHook": "HookBook MultiSigSwapHook", + "filePanel.transparent": "ํˆฌ๋ช…", + "filePanel.initGitRepoTitle": "์ƒˆ git ์ €์žฅ์†Œ๋กœ ์ž‘์—… ๊ณต๊ฐ„ ์ดˆ๊ธฐํ™” ์˜ต์…˜ ํ™•์ธ", + "filePanel.switchToBranchTitle1": "์›๊ฒฉ ๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ ๋ธŒ๋žœ์น˜ ์ฒดํฌ์•„์›ƒ", + "filePanel.switchToBranchTitle2": "๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒ", + "filePanel.readOnly": "์ฝ๊ธฐ ์ „์šฉ", + "filePanel.renameFileFailed": "ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ ์‹คํŒจ", + "filePanel.renameFileFailedMsg": "์ด๋ฆ„ ๋ณ€๊ฒฝ ์ค‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {error}", + "filePanel.fileCreationFailed": "ํŒŒ์ผ ์ƒ์„ฑ ์‹คํŒจ", + "filePanel.folderCreationFailed": "ํด๋” ์ƒ์„ฑ ์‹คํŒจ", + "filePanel.validationError": "์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์˜ค๋ฅ˜", + "filePanel.validationErrorMsg": "ํŠน์ˆ˜ ๋ฌธ์ž ์‚ฌ์šฉ ๋ถˆ๊ฐ€", + "filePanel.reservedKeyword": "์˜ˆ์•ฝ๋œ ํ‚ค์›Œ๋“œ", + "filePanel.reservedKeywordMsg": "ํŒŒ์ผ ์ด๋ฆ„์— Remix ์˜ˆ์•ฝ ํ‚ค์›Œ๋“œ ํฌํ•จ. \"{content}\"", + "filePanel.moveFile": "ํŒŒ์ผ ์ด๋™", + "filePanel.moveFileMsg1": "{src}์„ {dest}๋กœ ์ด๋™ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "filePanel.movingFileFailed": "ํŒŒ์ผ ์ด๋™ ์‹คํŒจ", + "filePanel.movingFileFailedMsg": "ํŒŒ์ผ ์ด๋™ ์ค‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {src}", + "filePanel.movingFolderFailed": "ํด๋” ์ด๋™ ์‹คํŒจ", + "filePanel.movingFolderFailedMsg": "ํด๋” ์ด๋™ ์ค‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {src}", + "filePanel.workspaceActions": "์ž‘์—…๊ณต๊ฐ„ ์•ก์…˜", + "filePanel.saveCodeSample": "์ด ์ฝ”๋“œ ์ƒ˜ํ”Œ ์ž‘์—… ๊ณต๊ฐ„์€ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ €์žฅํ•˜์„ธ์š”." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/home.json b/apps/remix-ide/src/app/tabs/locales/ko/home.json new file mode 100644 index 0000000000..2b09e21aa1 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/home.json @@ -0,0 +1,69 @@ +{ + "home.scamAlert": "์Šค์บ  ๊ฒฝ๊ณ ", + "home.scamAlertText": "๋ฆฌ๋ฏน์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” URL์€ remix.ethereum.org์ด ์œ ์ผํ•ฉ๋‹ˆ๋‹ค", + "home.scamAlertText2": "\"liquidity front runner bots\"์„ ํ™๋ณดํ•˜๋Š” ์˜จ๋ผ์ธ ๋™์˜์ƒ์„ ์ฃผ์˜ํ•˜์„ธ์š”", + "home.scamAlertText3": "์ถ”๊ฐ€ ์•ˆ์ „ ํŒ", + "home.learnMore": "๋” ์•Œ์•„๋ณด๊ธฐ", + "home.here": "์—ฌ๊ธฐ", + "home.featured": "์ถ”์ฒœ", + "home.jumpIntoWeb3": "JUMP INTO WEB3", + "home.jumpIntoWeb3More": "๋” ๋ณด๊ธฐ", + "home.jumpIntoWeb3Text": "๋ฆฌ๋ฏน์Šค IDE๋Š” ์‚ฌ์šฉ์ž์˜ ์ง€์‹ ์ˆ˜์ค€์— ๊ด€๊ณ„์—†์ด \b์ปจํŠธ๋ž™ํŠธ ๊ฐœ๋ฐœ์˜ ์ „์ฒด ๊ณผ์ •์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ๋ฏน์Šค ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋ฏน์Šค ํ”„๋กœ์ ํŠธ ์›น์‚ฌ์ดํŠธ์—์„œ ๋” ์•Œ์•„๋ณด์„ธ์š”.", + "home.remixYouTube": "๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ์‹œ์ฒญ", + "home.remixYouTubeText1": "๋ฆฌ๋ฏน์Šค ํŒ€์˜ ๋™์˜์ƒ ํŒ", + "home.remixYouTubeMore": "์‹œ์ฒญ", + "home.remixYouTubeText2": "๋ฆฌ๋ฏน์Šค๋Š” ๋„๊ตฌ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋งŽ์€ ํŒ์„ ๋‹ด์€ ๋™์˜์ƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™•์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•˜๊ณ  ์ตœ์‹  ์—…๋กœ๋“œ๋œ ๋‚ด์šฉ์„ ๊ตฌ๋…ํ•˜์„ธ์š”.", + "home.betaTesting": "BETA ํ…Œ์ŠคํŒ…", + "home.betaTestingText1": "์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.", + "home.betaTestingText2": "๋ฐฉ๊ธˆ ๋ฆด๋ฆฌ์ฆˆ๋œ ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋จผ์ € ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”!", + "home.betaTestingMore": "๊ฐ€์ž…ํ•˜๊ธฐ", + "home.featuredPlugins": "์ถ”์ฒœ ํ”Œ๋Ÿฌ๊ทธ์ธ", + "home.solidityPluginDesc": "์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์ปดํŒŒ์ผ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ถ„์„ ํ•ฉ๋‹ˆ๋‹ค.", + "home.cookbookDesc": "์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ์™€ ์†”๋ฆฌ๋””ํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ๊ณ , ํ”„๋กœํ† ์ฝœ์„ ๋ฐœ๊ฒฌํ•˜์„ธ์š”.", + "home.codeAnalyizerPluginDesc": "๋ฆฌ๋ฏน์Šค, Solhint ๋ฐ Slither๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์„ธ์š”.", + "home.starkNetPluginDesc": "Cairo๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ StarkNet์— ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ๋ฐฐํฌํ•˜์„ธ์š”. Cairo๋Š” StarkNet์˜ ๋„ค์ดํ‹ฐ๋ธŒ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.", + "home.solhintPluginDesc": "Solhint๋Š” ์†”๋ฆฌ๋””ํ‹ฐ ์ฝ”๋“œ๋ฅผ ๋ฆฐํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.", + "home.sourcifyPluginDesc": "์†”๋ฆฌ๋””ํ‹ฐ ์ปจํŠธ๋ž™ํŠธ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ์„œ๋น„์Šค.", + "home.unitTestPluginDesc": "์†”๋ฆฌ๋””ํ‹ฐ๋กœ ์ปจํŠธ๋ž™ํŠธ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜์„ธ์š”.", + "home.dgitPluginDesc": "ํ”„๋กœ์ ํŠธ์— ์†Œ์Šค ์ปจํŠธ๋กค์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.", + "home.oneClickDappDesc": "์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜์„ธ์š”.", + "home.getStarted": "์‹œ์ž‘ํ•˜๊ธฐ", + "home.projectTemplates": "ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ", + "home.blankTemplateDesc": "๋นˆ ์ž‘์—… ๊ณต๊ฐ„ ์ƒ์„ฑ", + "home.remixDefaultTemplateDesc": "์ƒ˜ํ”Œ์ด ํฌํ•จ๋œ ์ž‘์—… ๊ณต๊ฐ„ ์ƒ์„ฑ", + "home.ozerc20TemplateDesc": "OpenZeppelin ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€ ERC20 ํ† ํฐ์„ ๋งŒ๋“œ์„ธ์š”.", + "home.ozerc721TemplateDesc": "OpenZeppelin ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€ NFT ํ† ํฐ์„ ๋งŒ๋“œ์„ธ์š”.", + "home.ozerc1155TemplateDesc": "OpenZeppelin ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€ ERC1155 ํ† ํฐ์„ ๋งŒ๋“œ์„ธ์š”.", + "home.gnosisSafeMultisigTemplateDesc": "์ด ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์ค‘ ์„œ๋ช… ์ง€๊ฐ‘์„ ๋งŒ๋“œ์„ธ์š”.", + "home.zeroxErc20TemplateDesc": "0xProject ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๊ฐ€์ ธ์™€ ERC20 ํ† ํฐ์„ ๋งŒ๋“œ์„ธ์š”.", + "home.learn": "๋ฐฐ์šฐ๊ธฐ", + "home.learnEth1": "๋ฆฌ๋ฏน์Šค ๊ธฐ์ดˆ", + "home.learnEth1Desc": "๋ฆฌ๋ฏน์Šค์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ธฐ๋ณธ ์ž‘์—…์— ๋Œ€ํ•œ ์†Œ๊ฐœ", + "home.learnEth2": "์†”๋ฆฌ๋””ํ‹ฐ ์ž…๋ฌธ", + "home.learnEth2Desc": "์†”๋ฆฌ๋””ํ‹ฐ ๊ธฐ์ดˆ ๊ฐœ๋…์„ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋ฐฐ์šฐ์„ธ์š”.", + "home.remixAdvanced": "๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ ๋ฐฐํฌํ•˜๊ธฐ", + "home.remixAdvancedDesc": "๋ฆฌ๋ฏน์Šค์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์„ธ์š”", + "home.remixYoutubePlaylist": "๋ฆฌ๋ฏน์Šค ์œ ํŠœ๋ธŒ ์žฌ์ƒ๋ชฉ๋ก", + "home.remixTwitterProfile": "๋ฆฌ๋ฏน์Šค ํŠธ์œ„ํ„ฐ ํ”„๋กœํ•„", + "home.remixLinkedinProfile": "๋ฆฌ๋ฏน์Šค ๋งํฌ๋“œ์ธ ํ”„๋กœํ•„", + "home.remixMediumPosts": "๋ฆฌ๋ฏน์Šค ๋ฏธ๋””์—„ ํฌ์ŠคํŠธ", + "home.joinUsOnDiscord": "๋””์Šค์ฝ”๋“œ์—์„œ ์šฐ๋ฆฌ์™€ ํ•จ๊ป˜ ํ•˜์„ธ์š”", + "home.nativeIDE": "์›น3 ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ IDE.", + "home.website": "์›น์‚ฌ์ดํŠธ", + "home.documentation": "๋ฌธ์„œ", + "home.remixPlugin": "๋ฆฌ๋ฏน์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ", + "home.remixDesktop": "๋ฆฌ๋ฏน์Šค ๋ฐ์Šคํฌํƒ‘", + "home.searchDocumentation": "๋ฌธ์„œ ๊ฒ€์ƒ‰", + "home.files": "ํŒŒ์ผ", + "home.newFile": "์ƒˆ ํŒŒ์ผ", + "home.startCoding": "์ฝ”๋”ฉ ์‹œ์ž‘", + "home.startCodingPlayground": "ํ”„๋กœํ† ํƒ€์ดํ•‘ ๋ฐ ๊ฐ„๋‹จํ•œ ํ•™์Šต์„ ์œ„ํ•œ ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ ์—ด๊ธฐ", + "home.openFile": "ํŒŒ์ผ ์—ด๊ธฐ", + "home.openFileTooltip": "ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ์—ด๊ธฐ", + "home.accessFileSystem": "ํŒŒ์ผ ์‹œ์Šคํ…œ ์ ‘๊ทผ", + "home.loadFrom": "๋กœ๋“œ ์›๋ณธ ์œ„์น˜", + "home.resources": "๋ฆฌ์†Œ์Šค", + "home.connectToLocalhost": "๋กœ์ปฌํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐ", + "home.seeAllTutorials": "๋ชจ๋“  ํŠœํ† ๋ฆฌ์–ผ ๋ณด๊ธฐ", + "home.maintainedByRemix": "๋ฆฌ๋ฏน์Šค์— ์˜ํ•œ ์œ ์ง€ ๊ด€๋ฆฌ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/index.js b/apps/remix-ide/src/app/tabs/locales/ko/index.js new file mode 100644 index 0000000000..d1dbf937cd --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/index.js @@ -0,0 +1,17 @@ +import enJson from '../en' + +function readAndCombineJsonFiles() { + const dataContext = require.context('./', true, /\.json$/) + + let combinedData = {} + dataContext.keys().forEach((key) => { + const jsonData = dataContext(key) + combinedData = {...combinedData, ...jsonData} + }) + + return combinedData +} + +// There may have some un-translated content. Always fill in the gaps with EN JSON. +// No need for a defaultMessage prop when render a FormattedMessage component. +export default Object.assign({}, enJson, readAndCombineJsonFiles()) diff --git a/apps/remix-ide/src/app/tabs/locales/ko/panel.json b/apps/remix-ide/src/app/tabs/locales/ko/panel.json new file mode 100644 index 0000000000..b6e86b5699 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/panel.json @@ -0,0 +1,10 @@ +{ + "panel.author": "์ž‘์„ฑ์ž", + "panel.maintainedBy": "์œ ์ง€ ๊ด€๋ฆฌ:", + "panel.documentation": "๋ฌธ์„œ", + "panel.description": "์ƒ์„ธ์ •๋ณด", + "panel.maintainedByRemix": "๋ฆฌ๋ฏน์Šค์— ์˜ํ•œ ์œ ์ง€ ๊ด€๋ฆฌ", + "panel.pluginInfo": "ํ”Œ๋Ÿฌ๊ทธ์ธ ์ •๋ณด", + "panel.linkToDoc": "๋ฌธ์„œ ๋งํฌ", + "panel.makeAnissue": "์ด์Šˆ ์ƒ์„ฑ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/permissionHandler.json b/apps/remix-ide/src/app/tabs/locales/ko/permissionHandler.json new file mode 100644 index 0000000000..56ebab464a --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/permissionHandler.json @@ -0,0 +1,13 @@ +{ + "permissionHandler.allPermissionsReset": "๋ชจ๋“  ๊ถŒํ•œ์ด ๋ฆฌ์…‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", + "permissionHandler.rememberText": "๋Š” ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉฐ", + "permissionHandler.permissionHandlerMessage": "\"{from}\" {rememberText} \"{method}\" ์˜ \"{to}\" ์— ์ ‘๊ทผํ•˜๊ธธ ์›ํ•ฉ๋‹ˆ๋‹ค", + "permissionHandler.description": "์ƒ์„ธ์ •๋ณด", + "permissionHandler.noDescriptionProvided": "์ œ๊ณต๋œ ์„ค๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค", + "permissionHandler.makeSureYouTrustThisPlugin": "์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‹ ๋ขฐํ•˜๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ์ด ํ˜ธ์ถœ์„ ์ง„ํ–‰ํ•˜์„ธ์š”. ์ด ํŠน์ • ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์„ ํƒ์„ ์ €์žฅํ•˜๊ธฐ๋กœ ์„ ํƒํ•œ ๊ฒฝ์šฐ, ๊ฐ’์€ ํ˜„์žฌ ์„ธ์…˜์—๋งŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.", + "permissionHandler.rememberThisChoice": "์ด ์„ ํƒ์‚ฌํ•ญ ์ €์žฅ", + "permissionHandler.resetAllPermissions": "๋ชจ๋“  ๊ถŒํ•œ ์ดˆ๊ธฐํ™”", + "permissionHandler.permissionNeededFor": "{to} ์— ํ•„์š”ํ•œ ๊ถŒํ•œ", + "permissionHandler.accept": "์Šน์ธ", + "permissionHandler.decline": "๊ฑฐ์ ˆ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/pluginManager.json b/apps/remix-ide/src/app/tabs/locales/ko/pluginManager.json new file mode 100644 index 0000000000..0cfe81112c --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/pluginManager.json @@ -0,0 +1,43 @@ +{ + "pluginManager.displayName": "ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ฆฌ์ž", + "pluginManager.activate": "ํ™œ์„ฑํ™”", + "pluginManager.deactivate": "๋น„ํ™œ์„ฑํ™”", + "pluginManager.activeModules": "ํ™œ์„ฑ ๋ชจ๋“ˆ", + "pluginManager.inactiveModules": "๋น„ํ™œ์„ฑ ๋ชจ๋“ˆ", + "pluginManager.connectLocal": "๋กœ์ปฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์—ฐ๊ฒฐ", + "pluginManager.localForm.title": "๋กœ์ปฌ ํ”Œ๋Ÿฌ๊ทธ์ธ", + "pluginManager.localForm.pluginName": "ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„", + "pluginManager.localForm.shouldBeCamelCase": "camelCase์—ฌ์•ผ ํ•จ", + "pluginManager.localForm.displayName": "ํ‘œ์‹œ ์ด๋ฆ„", + "pluginManager.localForm.nameInTheHeader": "ํ—ค๋” ์ด๋ฆ„", + "pluginManager.localForm.required": "ํ•„์ˆ˜", + "pluginManager.localForm.commaSeparatedMethod": "์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ", + "pluginManager.localForm.commaSeparatedPlugin": "์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ", + "pluginManager.localForm.pluginsItCanActivate": "ํ™œ์„ฑ ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ", + "pluginManager.localForm.typeOfConnection": "์—ฐ๊ฒฐ ์œ ํ˜•", + "pluginManager.localForm.locationInRemix": "Remix ๋‚ด ์œ„์น˜", + "pluginManager.localForm.sidePanel": "์‚ฌ์ด๋“œ ํŒจ๋„", + "pluginManager.localForm.mainPanel": "๋ฉ”์ธ ํŒจ๋„", + "pluginManager.localForm.none": "์—†์Œ", + "pluginManager.localForm.methods": "๋ฉ”์†Œ๋“œ", + "pluginManager.localForm.pluginNames": "ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„", + "pluginManager.localForm.ok": "ํ™•์ธ", + "pluginManager.localForm.cancel": "์ทจ์†Œ", + "pluginManager.Permissions": "๊ถŒํ•œ", + "pluginManager.permissions": "๊ถŒํ•œ", + "pluginManager.pluginManagerPermissions": "ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ", + "pluginManager.currentPermissionSettings": "ํ˜„์žฌ ๊ถŒํ•œ ์„ค์ •", + "pluginManager.noPermissionRequestedYet": "์š”์ฒญ๋œ ๊ถŒํ•œ ์—†์Œ", + "pluginManager.allow": "ํ—ˆ์šฉํ•˜๊ธฐ", + "pluginManager.toCall": "ํ˜ธ์ถœ", + "pluginManager.ok": "ํ™•์ธ", + "pluginManager.cancel": "์ทจ์†Œ", + "pluginManager.maintainedByRemix": "Remix์— ์˜ํ•ด ์œ ์ง€ ๊ด€๋ฆฌ๋จ", + "pluginManager.linkToDoc": "๋ฌธ์„œ ๋งํฌ", + "pluginManager.versionAlpha": "์•ŒํŒŒ ๋ฒ„์ „", + "pluginManager.versionBeta": "๋ฒ ํƒ€ ๋ฒ„์ „", + "pluginManager.deactivatePlugin": "{pluginName} ๋น„ํ™œ์„ฑํ™”", + "pluginManager.activatePlugin": "{pluginName} ํ™œ์„ฑํ™”", + "pluginManager.search": "๊ฒ€์ƒ‰", + "pluginManager.managePluginsPermissions": "ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ถŒํ•œ ๊ด€๋ฆฌ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/remixApp.json b/apps/remix-ide/src/app/tabs/locales/ko/remixApp.json new file mode 100644 index 0000000000..a44c19798e --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/remixApp.json @@ -0,0 +1,3 @@ +{ + "remixApp.scrollToSeeAllTabs": "๋ชจ๋“  ํƒญ์„ ๋ณด๋ ค๋ฉด ์Šคํฌ๋กคํ•˜์„ธ์š”" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/remixUiTabs.json b/apps/remix-ide/src/app/tabs/locales/ko/remixUiTabs.json new file mode 100644 index 0000000000..f65bae4fc1 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/remixUiTabs.json @@ -0,0 +1,7 @@ +{ + "remixUiTabs.tooltipText1": "์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ (CTRL + SHIFT + S)", + "remixUiTabs.tooltipText2": "์ปดํŒŒ์ผ CTRL + S", + "remixUiTabs.tooltipText3": "์ปดํŒŒ์ผํ•  .sol ๋˜๋Š” .yul ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ .ts ๋˜๋Š” .js ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  ์‹คํ–‰ํ•˜์„ธ์š”", + "remixUiTabs.zoomOut": "์ถ•์†Œ", + "remixUiTabs.zoomIn": "ํ™•๋Œ€" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/search.json b/apps/remix-ide/src/app/tabs/locales/ko/search.json new file mode 100644 index 0000000000..8bc2f5a429 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/search.json @@ -0,0 +1,24 @@ +{ + "search.displayName": "ํŒŒ์ผ์—์„œ ๊ฒ€์ƒ‰", + "search.replace": "๋ฐ”๊พธ๊ธฐ", + "search.replaceAll": "๋ชจ๋‘ ๋ฐ”๊พธ๊ธฐ", + "search.placeholder1": "๊ฒ€์ƒ‰ (๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด Enter)", + "search.placeholder2": "ํฌํ•จ ์˜ˆ *.sol (ํฌํ•จํ•˜๋ ค๋ฉด Enter)", + "search.placeholder3": "์ œ์™ธ ์˜ˆ .git/**/* (์ œ์™ธํ•˜๋ ค๋ฉด Enter)", + "search.matchCase": "๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„", + "search.matchWholeWord": "์ „์ฒด ๋‹จ์–ด ์ผ์น˜", + "search.useRegularExpression": "์ •๊ทœ ํ‘œํ˜„์‹ ์‚ฌ์šฉ", + "search.replaceWithoutConfirmation": "ํ™•์ธ ์—†์ด ๋ฐ”๊พธ๊ธฐ", + "search.filesToInclude": "ํฌํ•จํ•  ํŒŒ์ผ", + "search.filesToExclude": "์ œ์™ธํ•  ํŒŒ์ผ", + "search.toggleReplace": "๋ฐ”๊พธ๊ธฐ ์ „ํ™˜", + "search.replaceInFiles": "ํŒŒ์ผ ๋‚ด์—์„œ ๋ฐ”๊พธ๊ธฐ", + "search.stop": "์ค‘์ง€", + "search.undoChanges": "{path} ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ทจ์†Œ", + "search.confirmreplaceMsg": "{filename} ์—์„œ {find} ๋ฅผ {replace} ๋กœ ๋ฐ”๊พธ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "search.yes": "์˜ˆ", + "search.no": "์•„๋‹ˆ์˜ค", + "search.loading": "๋กœ๋”ฉ ์ค‘", + "search.text1": "{fileCount} ๊ฐœ์˜ ํŒŒ์ผ์—์„œ {count} ๊ฐœ์˜ ๊ฒฐ๊ณผ ํ‘œ์‹œ", + "search.text2": "ํ‘œ์‹œํ•  ๊ฒฐ๊ณผ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค. {br} ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ขํ˜€์ฃผ์„ธ์š”." +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/settings.json b/apps/remix-ide/src/app/tabs/locales/ko/settings.json new file mode 100644 index 0000000000..bf4dafe53d --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/settings.json @@ -0,0 +1,44 @@ +{ + "settings.displayName": "์„ค์ •", + "settings.reset": "๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์žฌ์„ค์ •", + "settings.general": "์ผ๋ฐ˜ ์„ค์ •", + "settings.generateContractMetadataText": "์ปจํŠธ๋ž™ํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ƒ์„ฑ. ์ปจํŠธ๋ž™ํŠธ ํด๋”์— JSON ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋ž™ํŠธ๊ฐ€ ์˜์กดํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Remix๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.", + "settings.ethereunVMText": "๋กœ๋“œ ์‹œ ํ•ญ์ƒ Remix VM ์‚ฌ์šฉ", + "settings.wordWrapText": "ํŽธ์ง‘๊ธฐ์—์„œ ๋‹จ์–ด ์ค„๋ฐ”๊ฟˆ", + "settings.useAutoCompleteText": "ํŽธ์ง‘๊ธฐ์—์„œ ์ฝ”๋“œ ์™„์„ฑ ํ™œ์„ฑํ™”", + "settings.useShowGasInEditorText": "ํŽธ์ง‘๊ธฐ์—์„œ ๊ฐ€์Šค ์ถ”์ •์น˜ ํ‘œ์‹œ", + "settings.displayErrorsText": "ํƒ€์ดํ•‘ํ•˜๋Š” ๋™์•ˆ ํŽธ์ง‘๊ธฐ์—์„œ ์˜ค๋ฅ˜ ํ‘œ์‹œ", + "settings.matomoAnalytics": "Matomo Analytics ํ™œ์„ฑํ™”. ๊ฐœ์ธ ์‹๋ณ„ ์ •๋ณด(PII) ๋Š” ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •๋ณด๋Š” ์‚ฌ์ดํŠธ์˜ UX & UI๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋” ๋ณด๊ธฐ ", + "settings.enablePersonalModeText": " Web3 provider์— ๋Œ€ํ•ด ๊ฐœ์ธ ๋ชจ๋“œ ํ™œ์„ฑํ™”. Web3๋ฅผ ํ†ตํ•ด ์ „์†ก๋œ ํŠธ๋žœ์žญ์…˜์€ web3.personal API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.\n", + "settings.warnText": "ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ „์— ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์—ด๋ ค ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ์ด ๋ชจ๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ„์ •์„ ์ž ๊ธˆ ํ•ด์ œํ•˜์ง€ ์•Š๊ณ ๋„ Remix ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์•”ํ˜ธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ํŽธ๋ฆฌํ•˜์ง€๋งŒ, ์—ฐ๊ฒฐ๋œ ๋ฐฑ์—”๋“œ(Geth, Parity, ...) ๋ฅผ ์™„์ „ํžˆ ์‹ ๋ขฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Remix๋Š” ์–ด๋– ํ•œ ์•”ํ˜ธ๋„ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค", + "settings.gitAccessTokenTitle": "Github ์ž๊ฒฉ ์ฆ๋ช…", + "settings.gitAccessTokenText": "Gist๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  GitHub ์ฝ˜ํ…์ธ ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์•ก์„ธ์Šค ํ† ํฐ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ด๋ฆ„/์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.", + "settings.gitAccessTokenText2": "์•„๋ž˜ ๋งํฌ์˜ github ํ† ํฐ ํŽ˜์ด์ง€๋กœ ๊ฐ€์„œ ์ƒˆ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๊ณ  Remix์— ์ €์žฅํ•˜์„ธ์š”. ์ด ํ† ํฐ์ด 'gist ์ƒ์„ฑ' ๊ถŒํ•œ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”", + "settings.etherscanTokenTitle": "EtherScan ์•ก์„ธ์Šค ํ† ํฐ", + "settings.etherscanAccessTokenText": "Etherscan๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” api ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.", + "settings.etherscanAccessTokenText2": "์•„๋ž˜ ๋งํฌ์˜ Etherscan api ํ‚ค ํŽ˜์ด์ง€๋กœ ๊ฐ€์„œ ์ƒˆ api ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Remix์— ์ €์žฅํ•˜์„ธ์š”.", + "settings.save": "์ €์žฅ", + "settings.remove": "์‚ญ์ œ", + "settings.themes": "ํ…Œ๋งˆ", + "settings.locales": "์–ธ์–ด", + "settings.swarm": "Swarm ์„ค์ •", + "settings.ipfs": "IPFS ์„ค์ •", + "settings.token": "ํ† ํฐ", + "settings.copy": "๋ณต์‚ฌ", + "settings.deleteEtherscanToken": "Etherscan ํ† ํฐ ์‚ญ์ œ", + "settings.username": "์‚ฌ์šฉ์ž ์ด๋ฆ„", + "settings.email": "์ด๋ฉ”์ผ", + "settings.deleteGithubCredentials": "Github ์ž๊ฒฉ ์ฆ๋ช… ์‚ญ์ œ", + "settings.privateBeeAddress": "๊ฐœ์ธ BEE ์ฃผ์†Œ", + "settings.postageStampID": "POSTAGE ์Šคํƒฌํ”„ ID", + "settings.host": "ํ˜ธ์ŠคํŠธ", + "settings.protocol": "ํ”„๋กœํ† ์ฝœ", + "settings.port": "ํฌํŠธ", + "settings.projectID": "ํ”„๋กœ์ ํŠธ ID", + "settings.projectSecret": "ํ”„๋กœ์ ํŠธ SECRET", + "settings.analyticsInRemix": "Remix IDE์—์„œ์˜ ๋ถ„์„", + "settings.copilot": "Solidity copilot - ์•ŒํŒŒ", + "settings.copilot.activate": "Copilot ๋กœ๋“œ ๋ฐ ํ™œ์„ฑํ™”", + "settings.copilot.max_new_tokens": "์ƒ์„ฑํ•  ์ตœ๋Œ€ ๋‹จ์–ด ์ˆ˜", + "settings.copilot.temperature": "์˜จ๋„" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/solidity.json b/apps/remix-ide/src/app/tabs/locales/ko/solidity.json new file mode 100644 index 0000000000..f965d7de40 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/solidity.json @@ -0,0 +1,81 @@ +{ + "solidity.displayName": "์†”๋ฆฌ๋””ํ‹ฐ ์ปดํŒŒ์ผ๋Ÿฌ", + "solidity._comment_compiler-container.tsx": "libs/remix-ui/solidity-compiler/src/lib/compiler-container.tsx", + "solidity.compiler": "์ปดํŒŒ์ผ๋Ÿฌ", + "solidity.addACustomCompiler": "์‚ฌ์šฉ์ž ์ •์˜ ์ปดํŒŒ์ผ๋Ÿฌ ์ถ”๊ฐ€", + "solidity.addACustomCompilerWithURL": "URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํŒŒ์ผ๋Ÿฌ ์ถ”๊ฐ€", + "solidity.includeNightlyBuilds": "Nightly ๋นŒ๋“œ ํฌํ•จ", + "solidity.autoCompile": "์ž๋™ ์ปดํŒŒ์ผ", + "solidity.hideWarnings": "๊ฒฝ๊ณ  ์ˆจ๊ธฐ๊ธฐ", + "solidity.enableHardhat": "ํ•˜๋“œํ–‡ ์ปดํŒŒ์ผ ํ™œ์„ฑํ™”", + "solidity.learnHardhat": "ํ•˜๋“œํ–‡ ์ปดํŒŒ์ผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ", + "solidity.enableTruffle": "ํŠธ๋Ÿฌํ”Œ ์ปดํŒŒ์ผ ํ™œ์„ฑํ™”", + "solidity.learnTruffle": "ํŠธ๋Ÿฌํ”Œ ์ปดํŒŒ์ผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ", + "solidity.advancedConfigurations": "๊ณ ๊ธ‰ ์„ค์ •", + "solidity.compilerConfiguration": "์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ •", + "solidity.compilationDetails": "์ปดํŒŒ์ผ ์ƒ์„ธ ์ •๋ณด", + "solidity.language": "์–ธ์–ด", + "solidity.evmVersion": "EVM ๋ฒ„์ „", + "solidity.enableOptimization": "์ตœ์ ํ™” ํ™œ์„ฑํ™”", + "solidity.useConfigurationFile": "์„ค์ • ํŒŒ์ผ ์‚ฌ์šฉ", + "solidity.change": "๋ณ€๊ฒฝ", + "solidity.compile": "์ปดํŒŒ์ผ", + "solidity.noFileSelected": "์„ ํƒ๋œ ํŒŒ์ผ ์—†์Œ", + "solidity.compileAndRunScript": "์ปดํŒŒ์ผ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰", + "solidity.newConfigFileTitle": "์ƒˆ ์„ค์ • ํŒŒ์ผ", + "solidity.newConfigFileMessage": "์ž…๋ ฅํ•˜์‹  ํŒŒ์ผ \"{configFilePathInput}\"์ด(๊ฐ€) ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋งŒ๋“œ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "solidity.create": "์ƒ์„ฑ", + "solidity.ok": "ํ™•์ธ", + "solidity.cancel": "์ทจ์†Œ", + "solidity.noFileSelected1": "์„ ํƒ๋œ ํŒŒ์ผ ์—†์Œ.", + "solidity.toCompile": "์ปดํŒŒ์ผ ๋Œ€์ƒ", + "solidity.noConfigFileSelected": "์„ค์ • ํŒŒ์ผ์ด ์„ ํƒ๋˜์ง€ ์•Š์Œ", + "solidity.copyNatSpecTag": "์‚ฌ์šฉ์ž ์ •์˜ NatSpec ํƒœ๊ทธ๋ฅผ ๋ณต์‚ฌํ•˜๋ ค๋ฉด ํด๋ฆญํ•˜์„ธ์š”", + "solidity.inputTitle1": "์ž…๋ ฅํ•œ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ํ•˜๋‚˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", + "solidity.inputTitle2": "์ปจํŠธ๋ž™ํŠธ์˜ ์ˆ˜๋ช… ๋™์•ˆ ๋ฐฐํฌ๋œ ์ฝ”๋“œ์˜ ๊ฐ opcode๊ฐ€ ์‹คํ–‰๋  ์˜ˆ์ƒ ํšŸ์ˆ˜.", + "solidity.tooltipText1": "`dev-run-script` natspec ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ปดํŒŒ์ผ ์งํ›„ ์‹คํ–‰ํ•  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”, ์˜ˆ:", + "solidity.tooltipText2": "\"i\" ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”", + "solidity.tooltipText3": "์ปดํŒŒ์ผ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ์œ„ํ•ด", + "solidity.tooltipText4": "์„ค์ • ํŒŒ์ผ์„ ์—ด๋ ค๋ฉด ํด๋ฆญํ•˜์„ธ์š”", + "solidity.tooltipText5": "์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „ ๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ด‘๊ณ  ์ฐจ๋‹จ๊ธฐ์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—์„œ ๋ชจ๋“  ๊ด‘๊ณ  ์ฐจ๋‹จ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ํ›„ ์ƒˆ๋กœ๊ณ ์นจํ•ด ๋ณด์„ธ์š”. ์—๋Ÿฌ: ", + "solidity.tooltipText6": "์ปดํŒŒ์ผ๋Ÿฌ >= v0.5.7 ๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด ์‚ฌ์–‘", + "solidity.toastMessage": "ํ˜„์žฌ ์ปจํŠธ๋ž™ํŠธ ํŒŒ์ผ์˜ ํ”„๋ผ๊ทธ๋งˆ์™€ ์ผ์น˜ํ•˜๋„๋ก ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. ์˜ˆ: {version}", + "solidity.compileIconAttribute": "์ปดํŒŒ์ผ๋Ÿฌ ๋กœ๋”ฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์ž ์‹œ๋งŒ ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š”.", + "solidity.compilerLicense": "์ปดํŒŒ์ผ๋Ÿฌ ๋ผ์ด์„ผ์Šค", + "solidity.compilerLicenseMsg1": "์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋กœ๋”ฉ ์ค‘์ž…๋‹ˆ๋‹ค. ๋กœ๋”ฉ์ด ์™„๋ฃŒ๋˜๋ฉด ๋ผ์ด์„ผ์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.", + "solidity.compilerLicenseMsg2": "์„ ํƒํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ผ์ด์„ผ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค", + "solidity.compilerLicenseMsg3": "๋ผ์ด์„ผ์Šค ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค", + "solidity.seeCompilerLicense": "์ปดํŒŒ์ผ๋Ÿฌ ๋ผ์ด์„ผ์Šค ๋ณด๊ธฐ", + "solidity._comment_contract-selection.tsx": "libs/remix-ui/solidity-compiler/src/lib/contract-selection.tsx", + "solidity.publishOn": "๊ฒŒ์‹œ ์œ„์น˜", + "solidity.flatten": "UML ์ƒ์„ฑ ์ „ ์ปจํŠธ๋ž™ํŠธ ํ”Œ๋ž˜ํŠผ", + "solidity.generateUML": "์ปจํŠธ๋ž™ํŠธ์˜ UML ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒ์„ฑ", + "solidity.flattenLabel": "ํ‰ํƒ„ํ™”", + "solidity.generateUMLLabel": "UML ๋‹ค์ด์–ด๊ทธ๋žจ ์ƒ์„ฑ", + "solidity.copy": "๋ณต์‚ฌ", + "solidity.copyABI": "ABI๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ", + "solidity.copyBytecode": "๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ", + "solidity.unableToDisplay": "ํ‘œ์‹œํ•  ์ˆ˜ ์—†์Œ", + "solidity.download": "๋‹ค์šด๋กœ๋“œ", + "solidity.compileDetails": "์ปดํŒŒ์ผ ์„ธ๋ถ€ ์ •๋ณด ๋‹ค์šด๋กœ๋“œ (JSON format)", + "solidity.close": "๋‹ซ๊ธฐ", + "solidity.contract": "์ปจํŠธ๋ž™ํŠธ", + "solidity.displayContractDetails": "์ปจํŠธ๋ž™ํŠธ ์„ธ๋ถ€ ์ •๋ณด ํ‘œ์‹œ", + "solidity.noContractCompiled": "์•„์ง ์ปดํŒŒ์ผ๋œ ์ปจํŠธ๋ž™ํŠธ ์—†์Œ", + "solidity.Assembly": "์ปจํŠธ๋ž™ํŠธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ์˜ต์ฝ”๋“œ ๋ฐ ํ•ด๋‹น ์†”๋ฆฌ๋””ํ‹ฐ ์†Œ์Šค ์ฝ”๋“œ ํฌํ•จ", + "solidity.Opcodes": "์ปจํŠธ๋ž™ํŠธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ์˜ต์ฝ”๋“œ", + "solidity.name": "์ปดํŒŒ์ผ๋œ ์ปจํŠธ๋ž™ํŠธ ์ด๋ฆ„", + "solidity.metadata": "์ปดํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ •๋ณด ํฌํ•จ", + "solidity.bytecode": "์ปจํŠธ๋ž™ํŠธ ์ƒ์„ฑ ์ค‘ ์‹คํ–‰๋˜๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ", + "solidity.abi": "ABI: ๋ชจ๋“  ํ•จ์ˆ˜(์ž…๋ ฅ/์ถœ๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ, ๋ฒ”์œ„...)๋ฅผ ์„ค๋ช…ํ•จ", + "solidity.web3Deploy": "์ด ์ฝ”๋“œ๋ฅผ ์•„๋ฌด JavaScript/Web3 ์ฝ˜์†”์— ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜์—ฌ ์ด ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๋ฐฐํฌํ•˜์„ธ์š”", + "solidity.metadataHash": "๋ชจ๋“  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•ด์‹œ", + "solidity.functionHashes": "์„ ์–ธ๋œ ํ•จ์ˆ˜์™€ ํ•ด๋‹น ํ•ด์‹œ ๋ชฉ๋ก", + "solidity.gasEstimates": "๊ฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๊ฐ€์Šค ์ถ”์ •", + "solidity.Runtime Bytecode": "์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ผ๋ฐ˜ ์ปจํŠธ๋ž™ํŠธ ํ˜ธ์ถœ ์ค‘ ์‹คํ–‰๋˜๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ", + "solidity.storageLayout": "์Šคํ† ๋ฆฌ์ง€ ๋ ˆ์ด์•„์›ƒ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.", + "solidity.devdoc": "๊ฐœ๋ฐœ์ž ๋ฌธ์„œ(natspec)", + "solidity.userdoc": "์‚ฌ์šฉ์ž ๋ฌธ์„œ(natspec)", + "solidity.compilerInput": "์†”๋ฆฌ๋””ํ‹ฐ ์ปดํŒŒ์ผ๋Ÿฌ ์ž…๋ ฅ", + "solidity.swarmLocation": "๋ชจ๋“  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” Swarm Url (์ปจํŠธ๋ž™ํŠธ๊ฐ€ ๋จผ์ € ๊ฒŒ์‹œ๋˜์–ด์•ผ ํ•จ)" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/solidityUnitTesting.json b/apps/remix-ide/src/app/tabs/locales/ko/solidityUnitTesting.json new file mode 100644 index 0000000000..c8503d24f6 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/solidityUnitTesting.json @@ -0,0 +1,41 @@ +{ + "solidityUnitTesting.displayName": "์†”๋ฆฌ๋””ํ‹ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ", + "solidityUnitTesting.testDirectory": "ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ", + "solidityUnitTesting.testYourSmartContract": "์†”๋ฆฌ๋””ํ‹ฐ๋กœ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ํ…Œ์ŠคํŠธ ํ•˜์„ธ์š”.", + "solidityUnitTesting.selectDirectory": "ํ…Œ์ŠคํŠธ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ณ  ์ƒ์„ฑํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.", + "solidityUnitTesting.uiPathInputTooltip": "'Enter'๋ฅผ ๋ˆŒ๋Ÿฌ ํ…Œ์ŠคํŠธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜์„ธ์š”.", + "solidityUnitTesting.uiPathInputButtonTooltip": "ํ…Œ์ŠคํŠธ ํด๋” ์ƒ์„ฑ", + "solidityUnitTesting.create": "์ƒ์„ฑ", + "solidityUnitTesting.generateTestsButtonTooltip": "์ƒ˜ํ”Œ ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์ƒ์„ฑ", + "solidityUnitTesting.generate": "์ƒ์„ฑ", + "solidityUnitTesting.generateTestsLinkTooltip": "๋ฌธ์„œ ํ™•์ธ", + "solidityUnitTesting.howToUse": "์‚ฌ์šฉ ๋ฐฉ๋ฒ•...", + "solidityUnitTesting.runButtonTitle1": "ํ…Œ์ŠคํŠธ ์‹คํ–‰", + "solidityUnitTesting.runButtonTitle2": "0.4.12 ๋ณด๋‹ค ๋†’์€ ์†”๋ฆฌ๋””ํ‹ฐ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์„ ์„ ํƒํ•˜์„ธ์š”.", + "solidityUnitTesting.runButtonTitle3": "์„ ํƒ๋œ ์†”๋ฆฌ๋””ํ‹ฐ ํŒŒ์ผ ์—†์Œ", + "solidityUnitTesting.runButtonTitle4": "\"์†”๋ฆฌ๋””ํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ\"์ด ํ™œ์„ฑํ™” ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค", + "solidityUnitTesting.runButtonTitle5": "์„ ํƒ๋œ ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์—†์Œ", + "solidityUnitTesting.stopButtonLabel1": "์ค‘์ง€", + "solidityUnitTesting.stopButtonLabel2": "์ค‘๋‹จ ์ค‘", + "solidityUnitTesting.run": "์‹คํ–‰", + "solidityUnitTesting.runTestsTabStopActionTooltip": "ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ค‘์ง€", + "solidityUnitTesting.selectAll": "์ „์ฒด ์„ ํƒ", + "solidityUnitTesting.testTabTestsExecutionStopped": "ํ…Œ์ŠคํŠธ ์‹คํ–‰์ด ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค", + "solidityUnitTesting.testTabTestsExecutionStoppedError": "ํ…Œ์ŠคํŠธ ํŒŒ์ผ์˜ ์—๋Ÿฌ๋กœ ์ธํ•ด ํ…Œ์ŠคํŠธ ์‹คํ–‰์ด ์ค‘์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค", + "solidityUnitTesting.progress": "์ง„ํ–‰ ์ƒํ™ฉ: {readyTestsNumber} ์™„๋ฃŒ ({runningTestsNumber} ์ค‘)", + "solidityUnitTesting.resultFor": "๊ฒฐ๊ณผ", + "solidityUnitTesting.passed": "ํ†ต๊ณผ", + "solidityUnitTesting.failed": "์‹คํŒจ", + "solidityUnitTesting.timeTaken": "์†Œ์š” ์‹œ๊ฐ„", + "solidityUnitTesting.errorMessage": "์—๋Ÿฌ ๋ฉ”์‹œ์ง€", + "solidityUnitTesting.assertion": "๋‹จ์–ธ", + "solidityUnitTesting.expectedValueShouldBe": "์˜ˆ์ƒ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค: ", + "solidityUnitTesting.receivedValue": "๋ฐ›์€ ๊ฐ’", + "solidityUnitTesting.skippingTheRemainingTests": "ํ•จ์ˆ˜์˜ ๋‚˜๋จธ์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.", + "solidityUnitTesting.toasterMsg": "ํด๋”๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค", + "solidityUnitTesting.tooltipText1": "์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ปจํŠธ๋ž™ํŠธ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค", + "solidityUnitTesting.tooltipText2": "๋ชจ๋“  ์ปจํŠธ๋ž™ํŠธ ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค", + "solidityUnitTesting.tooltipText3": "๋””๋ฒ„๊น… ์‹œ์ž‘", + "solidityUnitTesting.fail": "์‹คํŒจ", + "solidityUnitTesting.pass": "ํ†ต๊ณผ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/terminal.json b/apps/remix-ide/src/app/tabs/locales/ko/terminal.json new file mode 100644 index 0000000000..171a981094 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/terminal.json @@ -0,0 +1,43 @@ +{ + "terminal.listen": "๋ชจ๋“  ํŠธ๋žœ์žญ์…˜ ์ˆ˜์‹ ", + "terminal.listenTitle": "์ฒดํฌํ•˜๋ฉด Remix๊ฐ€ ๋‹น์‹ ์ด ์ƒ์„ฑํ•œ ํŠธ๋žœ์žญ์…˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜„์žฌ ํ™˜๊ฒฝ์—์„œ ์ฑ„๊ตด๋œ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜์‹ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค", + "terminal.search": "ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ๋‚˜ ์ฃผ์†Œ๋กœ ๊ฒ€์ƒ‰", + "terminal.used": "์‚ฌ์šฉ๋จ", + "terminal.debug": "๋””๋ฒ„๊ทธ", + "terminal.welcomeText1": "ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค", + "terminal.welcomeText2": "ํŒŒ์ผ์ด ์ €์žฅ๋œ ์œ„์น˜๋Š” ", + "terminal.welcomeText3": "์ด ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ", + "terminal.welcomeText4": "ํŠธ๋žœ์žญ์…˜ ์„ธ๋ถ€ ์ •๋ณด ํ™•์ธ ๋ฐ ๋””๋ฒ„๊น… ์‹œ์ž‘", + "terminal.welcomeText5": "JavaScript ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰", + "terminal.welcomeText6": "๋ช…๋ น ์ค„ ์ธํ„ฐํŽ˜์ด์Šค์— ์ŠคํŠธ๋ฆฝํŠธ๋ฅผ ์ง์ ‘ ์ž…๋ ฅ", + "terminal.welcomeText7": "ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์„ ํƒํ•œ ๋‹ค์Œ ๋ช…๋ น ์ค„ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ `remix.execute()` ๋˜๋Š” `remix.exeCurrent()` ์‹คํ–‰", + "terminal.welcomeText8": "ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•œ ๋‹ค์Œ `์‹คํ–‰` ํด๋ฆญ", + "terminal.welcomeText9": "๋‹ค์Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ", + "terminal.welcomeText10": "์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์„ ๋ณด๋ ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”", + "terminal.text1": "์ด ํƒ€์ž…์˜ ๋ช…๋ น์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ๋Šฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด remix.help()๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.", + "terminal.hideTerminal": "ํ„ฐ๋ฏธ๋„ ์ˆจ๊ธฐ๊ธฐ", + "terminal.showTerminal": "ํ„ฐ๋ฏธ๋„ ๋ณด์ด๊ธฐ", + "terminal.clearConsole": "์ฝ˜์†” ์ดˆ๊ธฐํ™”", + "terminal.pendingTransactions": "๋Œ€๊ธฐ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜", + "terminal.toasterMsg1": "์‹คํ–‰ํ•  ๋‚ด์šฉ ์—†์Œ", + "terminal.toasterMsg2": "{fileName} ๊ฒฝ๋กœ์˜ ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ", + "terminal.vmMode": "VM ๋ชจ๋“œ", + "terminal.vmModeMsg": "์ด ํ˜ธ์ถœ์„ ๋””๋ฒ„๊ทธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๋””๋ฒ„๊น…์€ Remix VM ๋ชจ๋“œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.", + "terminal.ok": "ํ™•์ธ", + "terminal.cancel": "์ทจ์†Œ", + "terminal.callWarning": "(์ปจํŠธ๋ž™ํŠธ์— ์˜ํ•ด ํ˜ธ์ถœ๋  ๋•Œ๋งŒ ๋น„์šฉ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค)", + "terminal.msg1": "ํŠธ๋žœ์žญ์…˜์ด ์ฑ„๊ตด๋˜์—ˆ์ง€๋งŒ ์‹คํ–‰ ์‹คํŒจ", + "terminal.msg2": "ํŠธ๋žœ์žญ์…˜์ด ์ฑ„๊ตด๋˜์—ˆ๊ณ  ์‹คํ–‰ ์„ฑ๊ณต", + "terminal.msg3": "ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ", + "terminal.status": "์ƒํƒœ", + "terminal.transactionHash": "ํŠธ๋žœ์žญ์…˜ ํ•ด์‹œ", + "terminal.blockHash": "๋ธ”๋ก ํ•ด์‹œ", + "terminal.blockNumber": "๋ธ”๋ก ๋„˜๋ฒ„", + "terminal.contractAddress": "์ปจํŠธ๋ž™ํŠธ ์ฃผ์†Œ", + "terminal.transactionCost": "ํŠธ๋žœ์žญ์…˜ ๋น„์šฉ", + "terminal.executionCost": "์‹คํ–‰ ๋น„์šฉ", + "terminal.input": "์ž…๋ ฅ", + "terminal.decodedInput": "๋””์ฝ”๋“œ๋œ ์ž…๋ ฅ", + "terminal.decodedOutput": "๋””์ฝ”๋“œ๋œ ์ถœ๋ ฅ", + "terminal.logs": "๋กœ๊ทธ" +} diff --git a/apps/remix-ide/src/app/tabs/locales/ko/udapp.json b/apps/remix-ide/src/app/tabs/locales/ko/udapp.json new file mode 100644 index 0000000000..87e3209257 --- /dev/null +++ b/apps/remix-ide/src/app/tabs/locales/ko/udapp.json @@ -0,0 +1,139 @@ +{ + "udapp.displayName": "ํŠธ๋žœ์žญ์…˜ ๋ฐฐํฌ & ์‹คํ–‰", + "udapp._comment_gasPrice.tsx": "libs/remix-ui/run-tab/src/lib/components/gasPrice.tsx", + "udapp.gasLimit": "๊ฐ€์Šค ํ•œ๋„", + "udapp.tooltipText4": "๊ธฐ๋ณธ ๊ฐ€์Šค ํ•œ๋„๋Š” 3M์ž…๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์กฐ์ •ํ•˜์„ธ์š”.", + "udapp._comment_value.tsx": "libs/remix-ui/run-tab/src/lib/components/value.tsx", + "udapp.value": "๊ฐ’", + "udapp.tooltipText5": "๊ธˆ์•ก์„ ์ž…๋ ฅํ•˜๊ณ  ๋‹จ์œ„๋ฅผ ์„ ํƒํ•˜์„ธ์š”", + "udapp._comment_contractDropdownUI.tsx": "libs/remix-ui/run-tab/src/lib/components/contractDropdownUI.tsx", + "udapp.contract": "์ปจํŠธ๋ž™ํŠธ", + "udapp.compiledBy": "{compilerName} ์— ์˜ํ•ด ์ปดํŒŒ์ผ๋จ", + "udapp.warningEvmVersion": "ํ˜„์žฌ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ด evm ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”: {evmVersion}. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.", + "udapp.infoSyncCompiledContractTooltip": "์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ปดํŒŒ์ผ๋œ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”. ์ด ์ž‘์—…์€ Remix๊ฐ€ remixd๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ(hardhat, truffle, foundry)์— ์—ฐ๊ฒฐ๋  ๋•Œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.", + "udapp.remixIpfsUdappTooltip": "์†Œ์Šค ์ฝ”๋“œ์™€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ IPFS์— ๊ฒŒ์‹œํ•˜๋ฉด Sourcify๋ฅผ ์‚ฌ์šฉํ•œ ์†Œ์Šค ์ฝ”๋“œ ๊ฒ€์ฆ์ด ์šฉ์ดํ•ด์ง€๋ฉฐ ์ปจํŠธ๋ž™ํŠธ ์ฑ„ํƒ(๊ฐ์‚ฌ, ๋””๋ฒ„๊น…, ํ˜ธ์ถœ ๋“ฑ) ์ด ํฌ๊ฒŒ ์ฆ์ง„๋ฉ๋‹ˆ๋‹ค.", + "udapp.deploy": "๋ฐฐํฌ", + "udapp.publishTo": "๊ฒŒ์‹œ ์œ„์น˜", + "udapp.atAddress": "์ฃผ์†Œ ์‚ฌ์šฉ", + "udapp.atAddressOptionsTitle1": "์ปจํŠธ๋ž™ํŠธ ์ฃผ์†Œ", + "udapp.atAddressOptionsTitle2": "๋ฐฐํฌ๋œ ์ปจํŠธ๋ž™ํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉ - .abi ํŒŒ์ผ์ด๋‚˜ ์ปดํŒŒ์ผ๋œ .sol ํŒŒ์ผ์„ ํŽธ์ง‘๊ธฐ์—์„œ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ฐ™์€ ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ •์œผ๋กœ).", + "udapp.atAddressOptionsTitle3": "*.sol ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ *.abi ํŒŒ์ผ์„ ์„ ํƒํ•˜์„ธ์š”.", + "udapp.atAddressOptionsTitle4": "๋ฐฐํฌ๋œ ์ปจํŠธ๋ž™ํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์†Œ์Šค *.sol ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ํŽธ์ง‘๊ธฐ์—์„œ .abi ํŒŒ์ผ์„ ์„ ํƒํ•˜์„ธ์š”. (๊ฐ™์€ ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ •์œผ๋กœ) ", + "udapp.contractOptionsTitle1": ".sol ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜์—ฌ, ์ปจํŠธ๋ž™ํŠธ์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์—‘์„ธ์Šคํ•˜์„ธ์š”", + "udapp.contractOptionsTitle2": "๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ปดํŒŒ์ผ๋œ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.", + "udapp.contractOptionsTitle3": "*.sol ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜์—ฌ, ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์—‘์„ธ์Šคํ•˜์„ธ์š”.", + "udapp.contractOptionsTitle4": "์ปดํŒŒ์ผ๋œ .sol ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ, ์ฃผ์†Œ์—์„œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•  ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.", + "udapp.checkSumWarning": "์ฒดํฌ์„ฌ์ด ์ ์šฉ๋œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฒดํฌ์„ฌ์ด ์ ์šฉ๋œ ์ฃผ์†Œ๋Š” {a}์— ๋ช…์‹œ๋œ ๋Œ€๋กœ ๋Œ€๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ์ฒดํฌ์„ฌ์ด ์ ์šฉ๋œ ์ฃผ์†Œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ์ฃผ์†Œ๋กœ ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.", + "udapp.isOverSizePromptEip170": "์ปจํŠธ๋ž™ํŠธ ์ƒ์„ฑ ์ดˆ๊ธฐํ™”๊ฐ€ 24576 ๋ฐ”์ดํŠธ๋ณด๋‹ค ๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋„คํŠธ์›Œํฌ์—์„œ eip 170์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด: {a}", + "udapp.isOverSizePromptEip3860": "์ปจํŠธ๋ž™ํŠธ ์ƒ์„ฑ ์ดˆ๊ธฐ ์ฝ”๋“œ๊ฐ€ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€ ์ฝ”๋“œ ํฌ๊ธฐ์ธ 49152 ๋ฐ”์ดํŠธ๋ฅผ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋„คํŠธ์›Œํฌ์—์„œ eip 3860์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด: {a}", + "udapp.thisContractMayBeAbstract": "์ด ์ปจํŠธ๋ž™ํŠธ๋Š” ์ถ”์ƒ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”์ƒ ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์™„์ „ํžˆ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ƒ์†๋œ ์ปจํŠธ๋ž™ํŠธ์˜ ์ƒ์„ฑ์ž๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", + "udapp.noCompiledContracts": "์ปดํŒŒ์ผ๋œ ์ปจํŠธ๋ž™ํŠธ ์—†์Œ", + "udapp.addressOfContract": "์ปจํŠธ๋ž™ํŠธ ์ฃผ์†Œ", + "udapp.loadContractFromAddress": "์ฃผ์†Œ์—์„œ ์ปจํŠธ๋ž™ํŠธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ", + "udapp.ok": "ํ™•์ธ", + "udapp.alert": "๊ฒฝ๊ณ ", + "udapp.proceed": "๊ณ„์†", + "udapp.cancel": "์ทจ์†Œ", + "udapp.abiFileSelected": "ABI ํŒŒ์ผ ์„ ํƒ๋จ", + "udapp.evmVersion": "evm ๋ฒ„์ „", + "udapp.addressNotValid": "์ฃผ์†Œ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.", + "udapp._comment_account.tsx": "libs/remix-ui/run-tab/src/lib/components/account.tsx", + "udapp.account": "๊ณ„์ •", + "udapp.signAMessage": "๋ฉ”์‹œ์ง€ ์„œ๋ช…", + "udapp.enterAMessageToSign": "์„œ๋ช…ํ•  ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ", + "udapp.hash": "ํ•ด์‹œ", + "udapp.signature": "์„œ๋ช…", + "udapp.injectedTitle": "์ฃผ์ž…๋œ ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋ฐ”์ด๋”(์˜ˆ: ๋ฉ”ํƒ€๋งˆ์Šคํฌ ๋˜๋Š” ๊ฐ™์€ ์œ ํ˜•์˜ ๋‹ค๋ฅธ ํ”„๋กœ๋ฐ”์ด๋”)์—์„œ ์ง์ ‘ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜์„ธ์š”.", + "udapp.createNewAccount": "์ƒˆ ๊ณ„์ • ์ƒ์„ฑ", + "udapp.web3Title": "๊ณ„์ • ์ƒ์„ฑ์€ ๊ฐœ์ธ ๋ชจ๋“œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์œผ๋กœ ์ด๋™ํ•ด ํ™œ์„ฑํ™”ํ•˜์„ธ์š”.", + "udapp.defaultTitle": "์™ธ๋ถ€ ์ง€๊ฐ‘({selectExEnv})์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.", + "udapp.text1": "๊ณ„์ • ์ƒ์„ฑ์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”.", + "udapp.tooltipText1": "๊ณ„์ • ๋ชฉ๋ก์ด ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋กœ๋ฐ”์ด๋”๊ฐ€ Remix๊ฐ€ ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”", + "udapp.modalTitle1": "๋ฉ”์‹œ์ง€ ์„œ๋ช…์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ", + "udapp.modalMessage1": "๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", + "udapp.copyAccount": "๊ณ„์ •์„ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ", + "udapp.signMsgUsingAccount": "์ด ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ์„œ๋ช…", + "udapp._comment_environment.tsx": "libs/remix-ui/run-tab/src/lib/components/environment.tsx", + "udapp.environment": "ํ™˜๊ฒฝ", + "udapp.environmentDocs": "ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ๋ณด๋ ค๋ฉด ํด๋ฆญํ•˜์„ธ์š”", + "udapp.tooltipText2": "chainlist.org์„ ์—ด๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ ค๋Š” ์ฒด์ธ์˜ ์—ฐ๊ฒฐ ์‚ฌ์–‘์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.", + "udapp.tooltipText3": "L1 ๋ฉ”์ธ๋„ท ETH๋ฅผ ์„ ํƒํ•œ ๋„คํŠธ์›Œํฌ ํ†ตํ™”๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋ฆฌ์ง€๋ฅผ ์—ด๊ธฐ ์œ„ํ•ด ํด๋ฆญํ•˜์„ธ์š”.", + "udapp._comment_instanceContainerUI.tsx": "libs/remix-ui/run-tab/src/lib/components/instanceContainerUI.tsx", + "udapp.deployedContracts": "๋ฐฐํฌ๋œ ์ปจํŠธ๋ž™ํŠธ", + "udapp.deployAndRunClearInstances": "์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์„ ์ง€์šฐ๊ณ  ๋ ˆ์ฝ”๋”๋ฅผ ์žฌ์„ค์ •", + "udapp.deployAndRunNoInstanceText": "ํ˜„์žฌ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ปจํŠธ๋ž™ํŠธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", + "udapp.tooltipText6": "๋ฐฐํฌ๋œ ์ปจํŠธ๋ž™ํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™ ์ƒ์„ฑ๋œ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค", + "udapp._comment_recorderCardUI.tsx": "libs/remix-ui/run-tab/src/lib/components/recorderCardUI.tsx", + "udapp.transactionsRecorded": "๊ธฐ๋ก๋œ ํŠธ๋žœ์žญ์…˜", + "udapp.transactionsCountTooltip": "๊ธฐ๋ก๋œ ํŠธ๋ž™์žญ์…˜ ์ˆ˜", + "udapp.transactionSaveTooltip1": "์ €์žฅํ•  ํŠธ๋žœ์žญ์…˜์ด ์—†์Šต๋‹ˆ๋‹ค", + "udapp.transactionSaveTooltip2": "{count} ํŠธ๋žœ์žญ์…˜์„ ์‹œ๋‚˜๋ฆฌ์˜ค ํŒŒ์ผ๋กœ ์ €์žฅ", + "udapp.transactionSaveTooltip3": "{count} ํŠธ๋žœ์žญ์…˜์„ ์‹œ๋‚˜๋ฆฌ์˜ค ํŒŒ์ผ๋กœ ์ €์žฅ", + "udapp.transactionsWalkthroughTooltip": "๋ ˆ์ฝ”๋”์— ๋Œ€ํ•œ ์—ฐ์Šต ํˆฌ์–ด ์‹œ์ž‘", + "udapp.infoRecorderTooltip": "ํŠธ๋žœ์žญ์…˜(๋ฐฐํฌ๋œ ์ปจํŠธ๋ž™ํŠธ ๋ฐ ํ•จ์ˆ˜ ์‹คํ–‰)์„ ์ €์žฅํ•˜๊ณ  ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Remix VM์—์„œ ์ƒ์„ฑ๋œ ํŠธ๋žœ์žญ์…˜์€ ์ฃผ์ž…๋œ ํ”„๋กœ๋ฐ”์ด๋”์—์„œ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", + "udapp.livemodeRecorderTooltip": "ํŠธ๋žœ์žญ์…˜์„ ๊ธฐ๋กํ•œ ํ›„ ์ปจํŠธ๋ž™ํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ ๊ฒฝ์šฐ, ์ด ์ƒ์ž๋ฅผ ์ฒดํฌํ•˜๋ฉด ์ตœ์‹  ๋ณต์‚ฌ๋ณธ์˜ ์ปดํŒŒ์ผ๋œ ์ปจํŠธ๋ž™ํŠธ๋กœ ๊ธฐ๋ก๋œ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค", + "udapp.livemodeRecorderLabel": "์ตœ์‹  ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰", + "udapp.runRecorderTooltip": "ํ˜„์žฌ ์‹œ๋‚˜๋ฆฌ์˜ค ํŒŒ์ผ์—์„œ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰", + "udapp.save": "์ €์žฅ", + "udapp.run": "์‹คํ–‰", + "udapp._comment_contractGUI.tsx": "libs/remix-ui/run-tab/src/lib/components/contractGUI.tsx", + "udapp.parameters": "๋งค๊ฐœ๋ณ€์ˆ˜", + "udapp.copyParameters": "์ธ์ฝ”๋”ฉ๋œ ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ", + "udapp.copyCalldata": "calldata๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ", + "udapp.deployWithProxy": "ํ”„๋ก์‹œ์™€ ๊ฐ™์ด ๋ฐฐํฌ", + "udapp.upgradeWithProxy": "ํ”„๋ก์‹œ์™€ ๊ฐ™์ด ์—…๊ทธ๋ ˆ์ด๋“œ", + "udapp.getEncodedCallError": "๋นˆ ์ธ์ž๋Š” ์ธ์ฝ”๋”ฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค", + "udapp.proxyAddressError1": "ํ”„๋ก์‹œ ์ฃผ์†Œ๋Š” ๋น„์›Œ๋‘˜ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค", + "udapp.proxyAddressError2": "์œ ํšจํ•œ ์ปจํŠธ๋ž™ํŠธ ์ฃผ์†Œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค", + "udapp.tooltipText11": "ํ”„๋ก์‹œ ์ฃผ์†Œ๋Š” ๋น„์›Œ๋‘˜ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค", + "udapp.tooltipText12": "์ž…๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค", + "udapp.tooltipText13": "{date}์— ๋ฐฐํฌ๋จ", + "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", + "udapp.tooltipText7": "๋ชฉ๋ก์—์„œ ์ œ๊ฑฐ", + "udapp.tooltipText8": "'receive'/'fallback' ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ๋ณด๋ ค๋ฉด ํด๋ฆญํ•˜์„ธ์š”", + "udapp.tooltipText9": "์ปจํŠธ๋ž™ํŠธ์˜ fallback ํ•จ์ˆ˜๋กœ ๋ณด๋‚ผ Calldata์ž…๋‹ˆ๋‹ค.", + "udapp.tooltipText10": "์ปจํŠธ๋ž™ํŠธ์— ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ", + "udapp.balance": "์ž”์•ก", + "udapp.lowLevelInteractions": "์ €์ˆ˜์ค€ ์ƒํ˜ธ ์ž‘์šฉ", + "udapp.llIError1": "๋ณด๋‚ผ ๊ฐ’์€ ์ˆซ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค", + "udapp.llIError2": "Ether ์ „์†ก์„ ๋ฐ›์œผ๋ ค๋ฉด ์ปจํŠธ๋ž™ํŠธ์— 'receive' ๋˜๋Š” ์ง€๋ถˆ ๊ฐ€๋Šฅํ•œ 'fallback' ํ•จ์ˆ˜๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค", + "udapp.llIError3": "calldata๋Š” ์ตœ์†Œํ•œ 1 ๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ์œ ํšจํ•œ 16์ง„์ˆ˜ ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.", + "udapp.llIError4": "calldata๋Š” ์œ ํšจํ•œ 16์ง„์ˆ˜ ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.", + "udapp.llIError5": "'Fallback' ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค", + "udapp.llIError6": "'receive'์™€ 'fallback' ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋‘ ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค", + "udapp.llIError7": "calldata๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด 'Fallback' ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋”๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด 'Receive' ๋˜๋Š” ์ง€๋ถˆ ๊ฐ€๋Šฅํ•œ 'Fallback'์„ ์ •์˜ํ•˜์„ธ์š”", + "udapp.copy": "๋ณต์‚ฌ", + "udapp._comment_mainnet.tsx": "libs/remix-ui/run-tab/src/lib/components/mainnet.tsx", + "udapp.mainnetText1": "{name} ๋„คํŠธ์›Œํฌ์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ํ”„๋กœ๋ฐ”์ด๋”๋กœ ์ •๋ณด๋ฅผ ๋ณด๋‚ด์„ธ์š”.", + "udapp.mainnetText2": "๋งŽ์€ ์‚ฌ์šฉ์ž์˜ ํ”„๋กœ๋ฐ”์ด๋”๋Š” MetaMask์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๋ฐ”์ด๋”๋Š” {name} ๋„คํŠธ์›Œํฌ๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…ํ•˜๋„๋ก ์š”์ฒญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.", + "udapp.amount": "๊ธˆ์•ก", + "udapp.gasEstimation": "๊ฐ€์Šค ์ถ”์ •", + "udapp.maxPriorityFee": "์ตœ๋Œ€ ์šฐ์„  ์ˆœ์œ„ ์ˆ˜์ˆ˜๋ฃŒ", + "udapp.maxFee": "์ตœ๋Œ€ ์ˆ˜์ˆ˜๋ฃŒ (๊ธฐ๋ณธ ์ˆ˜์ˆ˜๋ฃŒ {baseFeePerGas} Gwei๋ณด๋‹ค ๋‚ฎ์ง€ ์•Š์Œ)", + "udapp.contractCreation": "์ปจํŠธ๋ž™ํŠธ ์ƒ์„ฑ", + "udapp.transactionFee": "ํŠธ๋žœ์žญ์…˜์ด ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ ์ˆ˜์ˆ˜๋ฃŒ๋Š” ๊ธฐ๋ณธ ์ˆ˜์ˆ˜๋ฃŒ๋ณด๋‹ค ๋‚ฎ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค", + "udapp.title1": "ํŠธ๋žœ์žญ์…˜ ์ˆ˜์ˆ˜๋ฃŒ์˜ ์ผ๋ถ€๊ฐ€ ์ฑ„๊ตด์ž์—๊ฒŒ ๊ฐ‘๋‹ˆ๋‹ค.", + "udapp.title2": "์ด ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด ์ง€๋ถˆํ•  ์ตœ๋Œ€ ์ˆ˜์ˆ˜๋ฃŒ ๊ธˆ์•ก์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ๊ธฐ๋ณธ ์ˆ˜์ˆ˜๋ฃŒ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.", + "udapp.gasPrice": "๊ฐ€์Šค ๊ฐ€๊ฒฉ", + "udapp.gweiText": "ํ˜„์žฌ ๊ฐ€์Šค ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด {a} ๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.", + "udapp.maxTransactionFee": "์ตœ๋Œ€ ํŠธ๋žœ์žญ์…˜ ์ˆ˜์ˆ˜๋ฃŒ", + "udapp.mainnetText3": "์ด ๊ฒฝ๊ณ ๋ฅผ ๋‹ค์‹œ ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ", + "udapp._comment_run-tab.tsx": "libs/remix-ui/run-tab/src/lib/run-tab.tsx", + "udapp.gasEstimationPromptText": "๊ฐ€์Šค ์ถ”์ •์ด ๋‹ค์Œ ๋ฉ”์‹œ์ง€(์•„๋ž˜ ์ฐธ์กฐ)๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰์ด ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ฐ•์ œ๋กœ ๋ณด๋‚ด์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?", + "udapp._comment_custom-dropdown.tsx": "libs/remix-ui/helper/src/lib/components/custom-dropdown.tsx", + "udapp.enterProxyAddress": "ํ”„๋ก์‹œ ์ฃผ์†Œ ์ž…๋ ฅ", + "udapp._comment_provider": "apps/remix-ide/src/app/providers", + "udapp.customVmForkProviderText": "์‚ฌ์šฉ์ž ์ •์˜ ํฌํฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์„ธ์š”. ๋…ธ๋“œ URL์ด ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด VM์ด ๋นˆ ์ƒํƒœ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.", + "udapp.nodeUrl": "๋…ธ๋“œ URL", + "udapp.blockNumber": "๋ธ”๋ก ๋„˜๋ฒ„(๋˜๋Š” ์ตœ์‹ )", + "udapp.externalHttpProviderText1": "์ฐธ๊ณ : Geth & https://remix.ethereum.org์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Remix์—์„œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์„ธ์š”:(Geth ๋ฌธ์„œ์˜ rpc ์„œ๋ฒ„ ์ฐธ์กฐ)", + "udapp.externalHttpProviderText2": "Remix & ๋กœ์ปฌ Geth ํ…Œ์ŠคํŠธ ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์„ธ์š”: (Geth ๋ฌธ์„œ์˜ ๊ฐœ๋ฐœ ๋ชจ๋“œ ์ฐธ์กฐ)", + "udapp.externalHttpProviderText3": "๊ฒฝ๊ณ : ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ --http.corsdomain ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: --http.corsdomain *", + "udapp.externalHttpProviderText4": "์ž์„ธํ•œ ์ •๋ณด: Remix ๋ฌธ์„œ์˜ ์™ธ๋ถ€ HTTP ์ œ๊ณต์ž", + "udapp.foundryProviderText1": "์ฐธ๊ณ : ์‹œ์Šคํ…œ์—์„œ Anvil์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”:", + "udapp.foundryProviderText2": "์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”: Foundry ๋ฌธ์„œ", + "udapp.ganacheProviderText1": "์ฐธ๊ณ : ์‹œ์Šคํ…œ์—์„œ Ganache๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”:", + "udapp.ganacheProviderText2": "์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”: Ganache ๋ฌธ์„œ", + "udapp.hardhatProviderText1": "์ฐธ๊ณ : ์‹œ์Šคํ…œ์—์„œ Hardhat ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด hardhat ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”:", + "udapp.hardhatProviderText2": "์ž์„ธํ•œ ์ •๋ณด๋Š” ์—ฌ๊ธฐ๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”: Hardhat ๋ฌธ์„œ" +} diff --git a/libs/remix-ui/home-tab/src/lib/components/homeTablangOptions.tsx b/libs/remix-ui/home-tab/src/lib/components/homeTablangOptions.tsx index 83beb31fbe..226fdc17a5 100644 --- a/libs/remix-ui/home-tab/src/lib/components/homeTablangOptions.tsx +++ b/libs/remix-ui/home-tab/src/lib/components/homeTablangOptions.tsx @@ -30,7 +30,7 @@ export function LanguageOptions({ plugin }: { plugin: any }) { {langOptions} - {['EN', 'ES', 'FR', 'IT', 'RU', 'ZH'].map((lang, index) => ( + {['EN', 'ES', 'FR', 'IT', 'KO', 'RU', 'ZH'].map((lang, index) => ( { changeLanguage(lang.toLowerCase()) From eef2faaf6dd7eed8454f7f8ca73f9cf17ccba7b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Tue, 4 Jun 2024 11:43:00 +0200 Subject: [PATCH 22/28] fixed capital letters on ask --- apps/circuit-compiler/src/app/components/feedbackAlert.tsx | 2 +- apps/vyper/src/app/components/CompileErrorCard.tsx | 2 +- libs/remix-ui/renderer/src/lib/renderer.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx index 0ce8066bad..dacb4278e4 100644 --- a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx +++ b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx @@ -24,7 +24,7 @@ export function FeedbackAlert ({ message, askGPT }: FeedbackAlertProps) { { e.stopPropagation() askGPT() - }}>ASK Remix AI + }}>Ask Remix AI
    diff --git a/apps/vyper/src/app/components/CompileErrorCard.tsx b/apps/vyper/src/app/components/CompileErrorCard.tsx index 10774ea01e..16726cda4a 100644 --- a/apps/vyper/src/app/components/CompileErrorCard.tsx +++ b/apps/vyper/src/app/components/CompileErrorCard.tsx @@ -21,7 +21,7 @@ export function CompileErrorCard(props: { output: any, plugin: RemixClient }) {
    await props.plugin.askGpt(props.output.message)}> - Ask GPT + Ask Remix AI diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index c6041801ed..b39cea8e19 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -111,7 +111,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { onClick={() => { askGtp() }} style={{ borderColor: "var(--ai)" }} > - ASK Remix AI + Ask Remix AI
    From 64608c4f4b827cd9cbc3ff11185cfc5d93b594ce Mon Sep 17 00:00:00 2001 From: drafish Date: Thu, 30 May 2024 18:55:33 +0800 Subject: [PATCH 23/28] add tooltips for dapp-draft icon --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 1 + .../run-tab/src/lib/components/universalDappUI.tsx | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app/tabs/locales/en/udapp.json b/apps/remix-ide/src/app/tabs/locales/en/udapp.json index bfab9f9759..ef43397caa 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -109,6 +109,7 @@ "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", "udapp.tooltipTextRemove": "Remove from the list", + "udapp.tooltipTextEdit": "Create Dapp with QuickDapp in the main panel", "udapp.tooltipTextPin": "Pin contract", "udapp.tooltipText8": "Click for docs about using 'receive'/'fallback'", "udapp.tooltipText9": "The Calldata to send to fallback function of the contract.", diff --git a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx index f2dc284fae..6192777e31 100644 --- a/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx +++ b/libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx @@ -297,7 +297,16 @@ export function UniversalDappUI(props: UdappProps) { - {props.exEnvironment && props.exEnvironment.startsWith('injected') && {props.editInstance(props.instance)}}>} + {props.exEnvironment && props.exEnvironment.startsWith('injected') && ( + }> + { + props.editInstance(props.instance) + }} + > + + )}
    { props.isPinnedContract && props.instance.pinnedAt ? (
    From 2e23b58d8f43fcede24a29e00cfb66dbc45d8945 Mon Sep 17 00:00:00 2001 From: drafish Date: Tue, 4 Jun 2024 10:49:52 +0800 Subject: [PATCH 24/28] update udapp.tooltipTextEdit --- apps/remix-ide/src/app/tabs/locales/en/udapp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/remix-ide/src/app/tabs/locales/en/udapp.json b/apps/remix-ide/src/app/tabs/locales/en/udapp.json index ef43397caa..bd9ff8b6d7 100644 --- a/apps/remix-ide/src/app/tabs/locales/en/udapp.json +++ b/apps/remix-ide/src/app/tabs/locales/en/udapp.json @@ -109,7 +109,7 @@ "udapp._comment_universalDappUI.tsx": "libs/remix-ui/run-tab/src/lib/components/universalDappUI.tsx", "udapp.tooltipTextRemove": "Remove from the list", - "udapp.tooltipTextEdit": "Create Dapp with QuickDapp in the main panel", + "udapp.tooltipTextEdit": "Create a DApp using this contract in the main panel", "udapp.tooltipTextPin": "Pin contract", "udapp.tooltipText8": "Click for docs about using 'receive'/'fallback'", "udapp.tooltipText9": "The Calldata to send to fallback function of the contract.", From 38c2b18c531bc5285f0d6301beedb9ca49090a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Tue, 4 Jun 2024 15:18:29 +0200 Subject: [PATCH 25/28] RemixAI --- apps/circuit-compiler/src/app/components/feedbackAlert.tsx | 2 +- apps/remix-ide/src/app/plugins/solcoderAI.tsx | 6 +++--- apps/vyper/src/app/components/CompileErrorCard.tsx | 2 +- libs/remix-ui/renderer/src/lib/renderer.tsx | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx index dacb4278e4..c6328dd510 100644 --- a/apps/circuit-compiler/src/app/components/feedbackAlert.tsx +++ b/apps/circuit-compiler/src/app/components/feedbackAlert.tsx @@ -24,7 +24,7 @@ export function FeedbackAlert ({ message, askGPT }: FeedbackAlertProps) { { e.stopPropagation() askGPT() - }}>Ask Remix AI + }}>Ask RemixAI
    diff --git a/apps/remix-ide/src/app/plugins/solcoderAI.tsx b/apps/remix-ide/src/app/plugins/solcoderAI.tsx index 85ea43bef7..81478a40be 100644 --- a/apps/remix-ide/src/app/plugins/solcoderAI.tsx +++ b/apps/remix-ide/src/app/plugins/solcoderAI.tsx @@ -80,7 +80,7 @@ export class SolCoder extends Plugin { async solidity_answer(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for RemixAI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'answering']) let result @@ -117,7 +117,7 @@ export class SolCoder extends Plugin { async code_explaining(prompt, context:string=""): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for RemixAI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result @@ -233,7 +233,7 @@ export class SolCoder extends Plugin { async error_explaining(prompt): Promise { this.emit("aiInfering") this.call('layout', 'maximizeTerminal') - this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for Remix AI answer...` }) + this.call('terminal', 'log', { type: 'aitypewriterwarning', value: `\n\nWaiting for RemixAI answer...` }) _paq.push(['trackEvent', 'ai', 'solcoder', 'explaining']) let result diff --git a/apps/vyper/src/app/components/CompileErrorCard.tsx b/apps/vyper/src/app/components/CompileErrorCard.tsx index 16726cda4a..e0d49c87e9 100644 --- a/apps/vyper/src/app/components/CompileErrorCard.tsx +++ b/apps/vyper/src/app/components/CompileErrorCard.tsx @@ -21,7 +21,7 @@ export function CompileErrorCard(props: { output: any, plugin: RemixClient }) {
    await props.plugin.askGpt(props.output.message)}> - Ask Remix AI + Ask RemixAI diff --git a/libs/remix-ui/renderer/src/lib/renderer.tsx b/libs/remix-ui/renderer/src/lib/renderer.tsx index b39cea8e19..006de70049 100644 --- a/libs/remix-ui/renderer/src/lib/renderer.tsx +++ b/libs/remix-ui/renderer/src/lib/renderer.tsx @@ -111,7 +111,7 @@ export const Renderer = ({ message, opt = {}, plugin }: RendererProps) => { onClick={() => { askGtp() }} style={{ borderColor: "var(--ai)" }} > - Ask Remix AI + Ask RemixAI
    From ea7ad4a89673ff4d243c00d433ba59d0641180d1 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Tue, 4 Jun 2024 18:54:35 +0530 Subject: [PATCH 26/28] release highlights for v0.50.0 --- releaseDetails.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releaseDetails.json b/releaseDetails.json index 75f4965ac0..077eb6c408 100644 --- a/releaseDetails.json +++ b/releaseDetails.json @@ -1,10 +1,10 @@ { - "version": "v0.49.0", + "version": "v0.50.0", "title": "RELEASE HIGHLIGHTS", - "highlight1": "Syntax highlighting for .toml files added", - "highlight2": "'Deploy & Run Transactions' plugin's UI improved", - "highlight3": "Remix AI model improved", + "highlight1": "Pin a plugin on right side", + "highlight2": "'zksync-ethers' NPM module supported in js/ts scripts", + "highlight3": "latest Solidity compiler version set to v0.8.26", "highlight4": "", "more": "Read More", - "moreLink": "https://medium.com/remix-ide/remix-release-v0-49-0-b396ab7fff2b?source=friends_link&sk=2e3c6063841bbfa398e3e60d59d4fd48" + "moreLink": "https://medium.com/remix-ide/remix-release-v0-50-0-1b0ca47ce2d9?source=friends_link&sk=a1cec61a506047186cd8e0c4349cdb86" } From 2b9b3e814386ed0fcb8ec26239540231708bae13 Mon Sep 17 00:00:00 2001 From: Aniket <30843294+Aniket-Engg@users.noreply.github.com> Date: Tue, 4 Jun 2024 19:16:28 +0530 Subject: [PATCH 27/28] Update releaseDetails.json --- releaseDetails.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releaseDetails.json b/releaseDetails.json index 077eb6c408..ba9d492684 100644 --- a/releaseDetails.json +++ b/releaseDetails.json @@ -1,7 +1,7 @@ { "version": "v0.50.0", "title": "RELEASE HIGHLIGHTS", - "highlight1": "Pin a plugin on right side", + "highlight1": "Pin a plugin on the right side", "highlight2": "'zksync-ethers' NPM module supported in js/ts scripts", "highlight3": "latest Solidity compiler version set to v0.8.26", "highlight4": "", From 94bd6afc50abef476ff93b36f5099929b8f9b2d6 Mon Sep 17 00:00:00 2001 From: Rob Stupay Date: Tue, 4 Jun 2024 10:18:52 -0400 Subject: [PATCH 28/28] Update releaseDetails.json --- releaseDetails.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releaseDetails.json b/releaseDetails.json index ba9d492684..db7cc4e491 100644 --- a/releaseDetails.json +++ b/releaseDetails.json @@ -1,7 +1,7 @@ { "version": "v0.50.0", "title": "RELEASE HIGHLIGHTS", - "highlight1": "Pin a plugin on the right side", + "highlight1": "Pin a plugin to the new right side panel", "highlight2": "'zksync-ethers' NPM module supported in js/ts scripts", "highlight3": "latest Solidity compiler version set to v0.8.26", "highlight4": "",