Merge branch 'master' of https://github.com/ethereum/remix-project into nxwebpack
@ -0,0 +1,38 @@ |
||||
import { PluginClient } from '@remixproject/plugin'; |
||||
import { verify, EtherScanReturn } from './utils/verify'; |
||||
import { getReceiptStatus, getEtherScanApi, getNetworkName } from './utils'; |
||||
|
||||
export class RemixClient extends PluginClient { |
||||
|
||||
loaded() { |
||||
return this.onload() |
||||
} |
||||
|
||||
async verify (apiKey: string, contractAddress: string, contractArguments: string, contractName: string, compilationResultParam: any) { |
||||
const result = await verify(apiKey, contractAddress, contractArguments, contractName, compilationResultParam, this, |
||||
(value: EtherScanReturn) => {}, (value: string) => {})
|
||||
return result |
||||
} |
||||
|
||||
async receiptStatus (receiptGuid: string, apiKey: string) { |
||||
try { |
||||
const network = await getNetworkName(this) |
||||
if (network === "vm") { |
||||
throw new Error("Cannot check the receipt status in the selected network") |
||||
} |
||||
const etherscanApi = getEtherScanApi(network) |
||||
const receiptStatus = await getReceiptStatus(receiptGuid, apiKey, etherscanApi) |
||||
return { |
||||
status: receiptStatus, |
||||
message: receiptStatus, |
||||
succeed: true |
||||
} |
||||
} catch (e: any){ |
||||
return { |
||||
status: 'error', |
||||
message: e.message, |
||||
succeed: false |
||||
} |
||||
}
|
||||
} |
||||
} |
@ -0,0 +1,25 @@ |
||||
export const verifyScript = ` |
||||
/** |
||||
* @param {string} apikey - etherscan api key. |
||||
* @param {string} contractAddress - Address of the contract to verify. |
||||
* @param {string} contractArguments - Parameters used in the contract constructor during the initial deployment. It should be the hex encoded value. |
||||
* @param {string} contractName - Name of the contract |
||||
* @param {string} contractFile - File where the contract is located |
||||
* @returns {{ guid, status, message, succeed }} verification result |
||||
*/ |
||||
export const verify = async (apikey: string, contractAddress: string, contractArguments: string, contractName: string, contractFile: string) => { |
||||
const compilationResultParam = await remix.call('compilerArtefacts' as any, 'getCompilerAbstract', contractFile) |
||||
console.log('verifying.. ' + contractName) |
||||
return await remix.call('etherscan' as any, 'verify', apikey, contractAddress, contractArguments, contractName, compilationResultParam) |
||||
}` |
||||
|
||||
export const receiptGuidScript = ` |
||||
/** |
||||
* @param {string} apikey - etherscan api key. |
||||
* @param {string} guid - receipt id. |
||||
* @returns {{ status, message, succeed }} receiptStatus |
||||
*/ |
||||
export const receiptStatus = async (apikey: string, guid: string) => { |
||||
return await remix.call('etherscan' as any, 'receiptStatus', guid, apikey) |
||||
} |
||||
` |
@ -0,0 +1,172 @@ |
||||
import { getNetworkName, getEtherScanApi, getReceiptStatus } from "../utils" |
||||
import { CompilationResult } from "@remixproject/plugin-api" |
||||
import { CompilerAbstract } from '@remix-project/remix-solidity' |
||||
import axios from 'axios' |
||||
import { PluginClient } from "@remixproject/plugin" |
||||
|
||||
const resetAfter10Seconds = (client: PluginClient, setResults: (value: string) => void) => { |
||||
setTimeout(() => { |
||||
client.emit("statusChanged", { key: "none" }) |
||||
setResults("") |
||||
}, 10000) |
||||
} |
||||
|
||||
export type EtherScanReturn = { |
||||
guid: any, |
||||
status: any, |
||||
} |
||||
export const verify = async ( |
||||
apiKeyParam: string, |
||||
contractAddress: string, |
||||
contractArgumentsParam: string, |
||||
contractName: string, |
||||
compilationResultParam: CompilerAbstract,
|
||||
client: PluginClient, |
||||
onVerifiedContract: (value: EtherScanReturn) => void, |
||||
setResults: (value: string) => void |
||||
) => { |
||||
const network = await getNetworkName(client) |
||||
if (network === "vm") { |
||||
return { |
||||
succeed: false, |
||||
message: "Cannot verify in the selected network" |
||||
} |
||||
} |
||||
const etherscanApi = getEtherScanApi(network) |
||||
|
||||
try { |
||||
const contractMetadata = getContractMetadata( |
||||
// cast from the remix-plugin interface to the solidity one. Should be fixed when remix-plugin move to the remix-project repository
|
||||
compilationResultParam.data as unknown as CompilationResult, |
||||
contractName |
||||
) |
||||
|
||||
if (!contractMetadata) { |
||||
return { |
||||
succeed: false, |
||||
message: "Please recompile contract" |
||||
} |
||||
} |
||||
|
||||
const contractMetadataParsed = JSON.parse(contractMetadata) |
||||
|
||||
const fileName = getContractFileName( |
||||
// cast from the remix-plugin interface to the solidity one. Should be fixed when remix-plugin move to the remix-project repository
|
||||
compilationResultParam.data as unknown as CompilationResult, |
||||
contractName |
||||
) |
||||
|
||||
const jsonInput = { |
||||
language: 'Solidity', |
||||
sources: compilationResultParam.source.sources, |
||||
settings: { |
||||
optimizer: { |
||||
enabled: contractMetadataParsed.settings.optimizer.enabled, |
||||
runs: contractMetadataParsed.settings.optimizer.runs |
||||
} |
||||
} |
||||
} |
||||
|
||||
const data: { [key: string]: string | any } = { |
||||
apikey: apiKeyParam, // A valid API-Key is required
|
||||
module: "contract", // Do not change
|
||||
action: "verifysourcecode", // Do not change
|
||||
codeformat: "solidity-standard-json-input", |
||||
contractaddress: contractAddress, // Contract Address starts with 0x...
|
||||
sourceCode: JSON.stringify(jsonInput), |
||||
contractname: fileName + ':' + contractName, |
||||
compilerversion: `v${contractMetadataParsed.compiler.version}`, // see http://etherscan.io/solcversions for list of support versions
|
||||
constructorArguements: contractArgumentsParam ? contractArgumentsParam.replace('0x', '') : '', // if applicable
|
||||
} |
||||
|
||||
const body = new FormData() |
||||
Object.keys(data).forEach((key) => body.append(key, data[key])) |
||||
|
||||
client.emit("statusChanged", { |
||||
key: "loading", |
||||
type: "info", |
||||
title: "Verifying ...", |
||||
}) |
||||
const response = await axios.post(etherscanApi, body) |
||||
const { message, result, status } = await response.data |
||||
|
||||
if (message === "OK" && status === "1") { |
||||
resetAfter10Seconds(client, setResults) |
||||
const receiptStatus = await getReceiptStatus( |
||||
result, |
||||
apiKeyParam, |
||||
etherscanApi |
||||
) |
||||
|
||||
const returnValue = { |
||||
guid: result, |
||||
status: receiptStatus, |
||||
message: `Verification process started correctly. Receipt GUID ${result}`, |
||||
succeed: true |
||||
} |
||||
onVerifiedContract(returnValue) |
||||
return returnValue |
||||
} else if (message === "NOTOK") { |
||||
client.emit("statusChanged", { |
||||
key: "failed", |
||||
type: "error", |
||||
title: result, |
||||
}) |
||||
const returnValue = { |
||||
message: result, |
||||
succeed: false |
||||
} |
||||
resetAfter10Seconds(client, setResults) |
||||
return returnValue |
||||
} |
||||
return { |
||||
message: 'unknown reason ' + result, |
||||
succeed: false |
||||
} |
||||
} catch (error: any) { |
||||
console.error(error) |
||||
setResults("Something wrong happened, try again") |
||||
return { |
||||
message: error.message, |
||||
succeed: false |
||||
} |
||||
} |
||||
} |
||||
|
||||
export const getContractFileName = ( |
||||
compilationResult: CompilationResult, |
||||
contractName: string |
||||
) => { |
||||
const compiledContracts = compilationResult.contracts |
||||
let fileName = "" |
||||
|
||||
for (const file of Object.keys(compiledContracts)) { |
||||
for (const contract of Object.keys(compiledContracts[file])) { |
||||
if (contract === contractName) { |
||||
fileName = file |
||||
break |
||||
} |
||||
} |
||||
} |
||||
return fileName |
||||
} |
||||
|
||||
export const getContractMetadata = ( |
||||
compilationResult: CompilationResult, |
||||
contractName: string |
||||
) => { |
||||
const compiledContracts = compilationResult.contracts |
||||
let contractMetadata = "" |
||||
|
||||
for (const file of Object.keys(compiledContracts)) { |
||||
for (const contract of Object.keys(compiledContracts[file])) { |
||||
if (contract === contractName) { |
||||
contractMetadata = compiledContracts[file][contract].metadata |
||||
if (contractMetadata) { |
||||
break |
||||
} |
||||
} |
||||
} |
||||
} |
||||
return contractMetadata |
||||
} |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"_format": "hh-sol-dbg-1", |
||||
"buildInfo": "../../build-info/7839ba878952cc00ff316061405f273a.json" |
||||
} |
@ -0,0 +1,74 @@ |
||||
{ |
||||
"_format": "hh-sol-artifact-1", |
||||
"contractName": "Lock", |
||||
"sourceName": "contracts/Lock.sol", |
||||
"abi": [ |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "_unlockTime", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"stateMutability": "payable", |
||||
"type": "constructor" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "amount", |
||||
"type": "uint256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "when", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "Withdrawal", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "owner", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "address payable", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "unlockTime", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "withdraw", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"bytecode": "0x60806040526040516105e13803806105e1833981810160405281019061002591906100f9565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a9565b60405180910390fd5b60006206ef9190508160008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506101c9565b600080fd5b6000819050919050565b6100d6816100c3565b81146100e157600080fd5b50565b6000815190506100f3816100cd565b92915050565b60006020828403121561010f5761010e6100be565b5b600061011d848285016100e4565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b6000610193602383610126565b915061019e82610137565b604082019050919050565b600060208201905081810360008301526101c281610186565b9050919050565b610409806101d86000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122036a0d1608af22fc2fc867e67c4fede260661a25d94e8d38a0f76a2324a7cebe564736f6c63430008110033", |
||||
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122036a0d1608af22fc2fc867e67c4fede260661a25d94e8d38a0f76a2324a7cebe564736f6c63430008110033", |
||||
"linkReferences": {}, |
||||
"deployedLinkReferences": {} |
||||
} |
@ -0,0 +1,274 @@ |
||||
'use strict' |
||||
import { NightwatchBrowser } from "nightwatch" |
||||
import init from "../helpers/init" |
||||
import sauce from "./sauce" |
||||
|
||||
module.exports = { |
||||
'@disabled': true, |
||||
before: function (browser: NightwatchBrowser, done: VoidFunction) { |
||||
init(browser, done) |
||||
}, |
||||
'Should not be able to create GIT without credentials #group1': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.clickLaunchIcon('filePanel') |
||||
.click('*[data-id="workspaceCreate"]') |
||||
.waitForElementVisible('*[data-id="modalDialogCustomPromptTextCreate"]') |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalFooter-react"] > button') |
||||
.waitForElementVisible({ |
||||
selector: "//*[@class='text-warning' and contains(.,'Please add username and email')]", |
||||
locateStrategy: 'xpath' |
||||
}) |
||||
.waitForElementPresent({ |
||||
selector: '//*[@data-id="initGitRepository"][@disabled]', |
||||
locateStrategy: 'xpath' |
||||
}) |
||||
.execute(function () { document.querySelector('*[data-id="modalDialogCustomPromptTextCreate"]')['value'] = 'workspace_blank' }) |
||||
.click('[data-id="initGitRepositoryLabel"]') |
||||
.waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') |
||||
.execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) |
||||
.pause(100) |
||||
.waitForElementVisible('*[data-id="treeViewLitreeViewItemcontracts"]') |
||||
.waitForElementNotPresent('*[data-id="treeViewLitreeViewItem.git"]') |
||||
.waitForElementNotVisible('[data-id="workspaceGitPanel"]') |
||||
}, |
||||
'Should add credentials #group1 #group2 #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.clickLaunchIcon('settings') |
||||
.setValue('[data-id="settingsTabGithubUsername"]', 'circleci') |
||||
.setValue('[data-id="settingsTabGithubEmail"]', 'remix@circleci.com') |
||||
.click('[data-id="settingsTabSaveGistToken"]') |
||||
}, |
||||
|
||||
'Should create and initialize a GIT repository #group1': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.clickLaunchIcon('filePanel') |
||||
.waitForElementNotVisible('[data-id="workspaceGitPanel"]') |
||||
.click('*[data-id="workspaceCreate"]') |
||||
.waitForElementVisible('*[data-id="modalDialogCustomPromptTextCreate"]') |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalFooter-react"] > button') |
||||
// eslint-disable-next-line dot-notation
|
||||
.execute(function () { document.querySelector('*[data-id="modalDialogCustomPromptTextCreate"]')['value'] = 'workspace_blank' }) |
||||
.click('select[id="wstemplate"]') |
||||
.click('select[id="wstemplate"] option[value=blank]') |
||||
.click('[data-id="initGitRepositoryLabel"]') |
||||
.waitForElementPresent('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') |
||||
.execute(function () { (document.querySelector('[data-id="fileSystemModalDialogModalFooter-react"] .modal-ok') as HTMLElement).click() }) |
||||
.pause(100) |
||||
.waitForElementVisible('[data-id="workspaceGitPanel"]') |
||||
.waitForElementContainsText('[data-id="workspaceGitBranchesDropdown"]', 'main') |
||||
}, |
||||
|
||||
|
||||
|
||||
|
||||
// CLONE REPOSITORY E2E START
|
||||
|
||||
'Should clone a repository #group2': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.clickLaunchIcon('filePanel') |
||||
.useXpath() |
||||
.click('//*[@id="workspacesMenuDropdown"]/span/i') |
||||
.waitForElementVisible('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.click('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.useCss() |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.click('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') |
||||
.setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/ethereum/awesome-remix') |
||||
.click('[data-id="fileSystem-modal-footer-ok-react"]') |
||||
.waitForElementPresent('.fa-spinner') |
||||
.pause(5000) |
||||
.waitForElementNotPresent('.fa-spinner') |
||||
.waitForElementVisible('*[data-id="treeViewLitreeViewItem.git"]') |
||||
.waitForElementContainsText('[data-id="workspacesSelect"]', 'awesome-remix') |
||||
}, |
||||
|
||||
'Should display dgit icon for cloned workspace #group2': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.switchWorkspace('default_workspace') |
||||
.waitForElementNotVisible('[data-id="workspacesSelect"] .fa-code-branch') |
||||
.switchWorkspace('awesome-remix') |
||||
.waitForElementVisible('[data-id="workspacesSelect"] .fa-code-branch') |
||||
}, |
||||
|
||||
'Should display non-clashing names for duplicate clone #group2': '' + function (browser: NightwatchBrowser) { |
||||
browser |
||||
.useXpath() |
||||
.click('//*[@id="workspacesMenuDropdown"]/span/i') |
||||
.waitForElementVisible('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.click('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.useCss() |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.click('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') |
||||
.setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/ethereum/awesome-remix') |
||||
.click('[data-id="fileSystem-modal-footer-ok-react"]') |
||||
.pause(5000) |
||||
.waitForElementContainsText('[data-id="workspacesSelect"]', 'awesome-remix1') |
||||
.useXpath() |
||||
.click('//*[@id="workspacesMenuDropdown"]/span/i') |
||||
.waitForElementVisible('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.click('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.useCss() |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.click('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') |
||||
.setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/ethereum/awesome-remix') |
||||
.click('[data-id="fileSystem-modal-footer-ok-react"]') |
||||
.pause(5000) |
||||
.waitForElementContainsText('[data-id="workspacesSelect"]', 'awesome-remix2') |
||||
.useXpath() |
||||
.click('//*[@id="workspacesMenuDropdown"]/span/i') |
||||
.waitForElementVisible('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.useCss() |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.click('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') |
||||
.setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/ethereum/awesome-remix') |
||||
.click('[data-id="fileSystem-modal-footer-ok-react"]') |
||||
.pause(5000) |
||||
.waitForElementContainsText('[data-id="workspacesSelect"]', 'awesome-remix3') |
||||
.switchWorkspace('awesome-remix') |
||||
.switchWorkspace('awesome-remix1') |
||||
.switchWorkspace('awesome-remix2') |
||||
.switchWorkspace('awesome-remix3') |
||||
}, |
||||
|
||||
'Should display error message in modal for failed clone #group2': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.useXpath() |
||||
.waitForElementPresent({ |
||||
selector: '//i[@data-icon="workspaceDropdownMenuIcon"]', |
||||
locateStrategy: 'xpath', |
||||
}) |
||||
.click('//*[@id="workspacesMenuDropdown"]/span/i') |
||||
.waitForElementVisible('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.click('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.useCss() |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.click('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') |
||||
.setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/ethereum/non-existent-repo') |
||||
.click('[data-id="fileSystem-modal-footer-ok-react"]') |
||||
.pause(5000) |
||||
.waitForElementVisible('[data-id="cloneGitRepositoryModalDialogModalBody-react"]') |
||||
.waitForElementContainsText('[data-id="cloneGitRepositoryModalDialogModalBody-react"]', 'An error occurred: Please check that you have the correct URL for the repo. If the repo is private, you need to add your github credentials (with the valid token permissions) in Settings plugin') |
||||
.click('[data-id="cloneGitRepository-modal-footer-ok-react"]') |
||||
}, |
||||
|
||||
// CLONE REPOSITORY E2E END
|
||||
|
||||
// GIT BRANCHES E2E START
|
||||
'Should show all cloned repo branches #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.clickLaunchIcon('filePanel') |
||||
.waitForElementNotVisible('[data-id="workspaceGitPanel"]') |
||||
.useXpath() |
||||
.click('//*[@id="workspacesMenuDropdown"]/span/i') |
||||
.waitForElementVisible('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.click('//*[@id="workspacesMenuDropdown"]/div/ul/a[5]') |
||||
.useCss() |
||||
.waitForElementVisible('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.click('[data-id="fileSystemModalDialogModalBody-react"]') |
||||
.waitForElementVisible('[data-id="modalDialogCustomPromptTextClone"]') |
||||
.setValue('[data-id="modalDialogCustomPromptTextClone"]', 'https://github.com/ioedeveloper/test-branch-change') |
||||
.click('[data-id="fileSystem-modal-footer-ok-react"]') |
||||
.waitForElementPresent('.fa-spinner') |
||||
.pause(5000) |
||||
.waitForElementNotPresent('.fa-spinner') |
||||
.waitForElementContainsText('[data-id="workspacesSelect"]', 'test-branch-change') |
||||
.waitForElementVisible('[data-id="workspaceGitPanel"]') |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.waitForElementVisible('[data-id="custom-dropdown-menu"]') |
||||
.waitForElementContainsText('[data-id="custom-dropdown-items"]', 'origin/dev') |
||||
.waitForElementContainsText('[data-id="custom-dropdown-items"]', 'origin/production') |
||||
.waitForElementContainsText('[data-id="custom-dropdown-items"]', 'origin/setup') |
||||
.expect.element('[data-id="workspaceGit-main"]').text.to.contain('✓ ') |
||||
}, |
||||
|
||||
'Should a checkout to a remote branch #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('[data-id="custom-dropdown-menu"]') |
||||
.waitForElementContainsText('[data-id="custom-dropdown-items"]', 'origin/dev') |
||||
.waitForElementPresent('[data-id="workspaceGit-origin/dev"]') |
||||
.click('[data-id="workspaceGit-origin/dev"]') |
||||
.pause(5000) |
||||
.waitForElementPresent('[data-id="treeViewDivtreeViewItemdev.ts"]') |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.expect.element('[data-id="workspaceGit-dev"]').text.to.contain('✓ ') |
||||
}, |
||||
|
||||
'Should search for a branch (local and remote) #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('[data-id="custom-dropdown-menu"]') |
||||
.waitForElementPresent('[data-id="workspaceGitInput"]') |
||||
.sendKeys('[data-id="workspaceGitInput"]', 'setup') |
||||
.waitForElementNotPresent('[data-id="workspaceGit-origin/dev"]') |
||||
.waitForElementNotPresent('[data-id="workspaceGit-origin/production"]') |
||||
.waitForElementNotPresent('[data-id="workspaceGit-dev"]') |
||||
.waitForElementNotPresent('[data-id="workspaceGit-main"]') |
||||
.waitForElementPresent('[data-id="workspaceGit-origin/setup"]') |
||||
}, |
||||
|
||||
'Should checkout to a new local branch #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('[data-id="custom-dropdown-menu"]') |
||||
.waitForElementPresent('[data-id="workspaceGitInput"]') |
||||
.clearValue('[data-id="workspaceGitInput"]') |
||||
.sendKeys('[data-id="workspaceGitInput"]', 'newLocalBranch') |
||||
.waitForElementContainsText('[data-id="workspaceGitCreateNewBranch"]', `Create branch: newLocalBranch from 'dev'`) |
||||
.click('[data-id="workspaceGitCreateNewBranch"]') |
||||
.pause(2000) |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.waitForElementVisible('[data-id="custom-dropdown-menu"]') |
||||
.expect.element('[data-id="workspaceGit-newLocalBranch"]').text.to.contain('✓ ') |
||||
}, |
||||
|
||||
'Should checkout to an exisiting local branch #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('[data-id="custom-dropdown-menu"]') |
||||
.waitForElementPresent('[data-id="workspaceGitInput"]') |
||||
.clearValue('[data-id="workspaceGitInput"]') |
||||
.sendKeys('[data-id="workspaceGitInput"]', [browser.Keys.SPACE, browser.Keys.BACK_SPACE]) |
||||
.waitForElementPresent('[data-id="workspaceGit-main"]') |
||||
.click('[data-id="workspaceGit-main"]') |
||||
.pause(2000) |
||||
.waitForElementNotPresent('[data-id="treeViewDivtreeViewItemdev.ts"]') |
||||
.waitForElementPresent('[data-id="treeViewDivtreeViewItemmain.ts"]') |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.expect.element('[data-id="workspaceGit-main"]').text.to.contain('✓ ') |
||||
}, |
||||
|
||||
'Should prevent checkout to a branch if local changes exists #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.renamePath('README.md', 'README.txt', 'README.txt') |
||||
.waitForElementVisible('[data-id="workspaceGitBranchesDropdown"]') |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.waitForElementVisible('[data-id="workspaceGit-dev"]') |
||||
.click('[data-id="workspaceGit-dev"]') |
||||
.waitForElementVisible('[data-id="switchBranchModalDialogContainer-react"]') |
||||
.waitForElementContainsText('[data-id="switchBranchModalDialogModalBody-react"]', 'Your local changes to the following files would be overwritten by checkout.') |
||||
.click('[data-id="switchBranchModalDialogModalFooter-react"]') |
||||
.click('[data-id="switchBranch-modal-footer-cancel-react"]') |
||||
.pause(2000) |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.expect.element('[data-id="workspaceGit-main"]').text.to.contain('✓ ') |
||||
}, |
||||
|
||||
'Should force checkout to a branch with exisiting local changes #group3': function (browser: NightwatchBrowser) { |
||||
browser |
||||
.waitForElementVisible('[data-id="workspaceGit-dev"]') |
||||
.click('[data-id="workspaceGit-dev"]') |
||||
.waitForElementVisible('[data-id="switchBranchModalDialogContainer-react"]') |
||||
.waitForElementContainsText('[data-id="switchBranchModalDialogModalBody-react"]', 'Your local changes to the following files would be overwritten by checkout.') |
||||
.click('[data-id="switchBranchModalDialogModalFooter-react"]') |
||||
.click('[data-id="switchBranch-modal-footer-ok-react"]') |
||||
.pause(2000) |
||||
.click('[data-id="workspaceGitBranchesDropdown"]') |
||||
.expect.element('[data-id="workspaceGit-dev"]').text.to.contain('✓ ') |
||||
}, |
||||
|
||||
// GIT BRANCHES E2E END
|
||||
|
||||
tearDown: sauce |
||||
} |
@ -0,0 +1,398 @@ |
||||
{ |
||||
"_format": "ethers-rs-sol-cache-3", |
||||
"paths": { |
||||
"artifacts": "out", |
||||
"build_infos": "out/build-info", |
||||
"sources": "src", |
||||
"tests": "test", |
||||
"scripts": "script", |
||||
"libraries": [ |
||||
"lib" |
||||
] |
||||
}, |
||||
"files": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"lastModificationDate": 1661541843388, |
||||
"contentHash": "962996f0e05d5218857a538a62d7c47e", |
||||
"sourceName": "lib/forge-std/lib/ds-test/src/test.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [], |
||||
"versionRequirement": ">=0.5.0", |
||||
"artifacts": { |
||||
"DSTest": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "test.sol/DSTest.json" |
||||
} |
||||
} |
||||
}, |
||||
"lib/forge-std/src/Script.sol": { |
||||
"lastModificationDate": 1661541842048, |
||||
"contentHash": "b313d0193442f5a12848be9c422a0064", |
||||
"sourceName": "lib/forge-std/src/Script.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [ |
||||
"lib/forge-std/src/Vm.sol", |
||||
"lib/forge-std/src/console.sol", |
||||
"lib/forge-std/src/console2.sol" |
||||
], |
||||
"versionRequirement": ">=0.6.0, <0.9.0", |
||||
"artifacts": { |
||||
"Script": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Script.sol/Script.json" |
||||
} |
||||
} |
||||
}, |
||||
"lib/forge-std/src/Test.sol": { |
||||
"lastModificationDate": 1661541842048, |
||||
"contentHash": "8e1ae731c7bb8023f36077d86d18693f", |
||||
"sourceName": "lib/forge-std/src/Test.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [ |
||||
"lib/forge-std/lib/ds-test/src/test.sol", |
||||
"lib/forge-std/src/Script.sol", |
||||
"lib/forge-std/src/Vm.sol", |
||||
"lib/forge-std/src/console.sol", |
||||
"lib/forge-std/src/console2.sol" |
||||
], |
||||
"versionRequirement": ">=0.6.0, <0.9.0", |
||||
"artifacts": { |
||||
"Test": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Test.sol/Test.json" |
||||
}, |
||||
"stdError": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Test.sol/stdError.json" |
||||
}, |
||||
"stdMath": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Test.sol/stdMath.json" |
||||
}, |
||||
"stdStorage": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Test.sol/stdStorage.json" |
||||
} |
||||
} |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"lastModificationDate": 1661541842048, |
||||
"contentHash": "225040109969e43ff90255e34aaecc99", |
||||
"sourceName": "lib/forge-std/src/Vm.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [], |
||||
"versionRequirement": ">=0.6.0, <0.9.0", |
||||
"artifacts": { |
||||
"Vm": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Vm.sol/Vm.json" |
||||
} |
||||
} |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"lastModificationDate": 1663196945880, |
||||
"contentHash": "100b8a33b917da1147740d7ab8b0ded3", |
||||
"sourceName": "lib/forge-std/src/console.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [], |
||||
"versionRequirement": ">=0.4.22, <0.9.0", |
||||
"artifacts": { |
||||
"console": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "console.sol/console.json" |
||||
} |
||||
} |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"lastModificationDate": 1661541842052, |
||||
"contentHash": "5df91f8e93efbfcccf68973dc1b74a70", |
||||
"sourceName": "lib/forge-std/src/console2.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [], |
||||
"versionRequirement": ">=0.4.22, <0.9.0", |
||||
"artifacts": { |
||||
"console2": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "console2.sol/console2.json" |
||||
} |
||||
} |
||||
}, |
||||
"script/Counter.s.sol": { |
||||
"lastModificationDate": 1661541840908, |
||||
"contentHash": "0705c52104730a78aef4aa6694175c81", |
||||
"sourceName": "script/Counter.s.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [ |
||||
"lib/forge-std/src/Script.sol", |
||||
"lib/forge-std/src/Vm.sol", |
||||
"lib/forge-std/src/console.sol", |
||||
"lib/forge-std/src/console2.sol" |
||||
], |
||||
"versionRequirement": "^0.8.13", |
||||
"artifacts": { |
||||
"CounterScript": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Counter.s.sol/CounterScript.json" |
||||
} |
||||
} |
||||
}, |
||||
"src/Counter.sol": { |
||||
"lastModificationDate": 1664875932853, |
||||
"contentHash": "ae6c800a2b4c57768024d6e9423d39e8", |
||||
"sourceName": "src/Counter.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [], |
||||
"versionRequirement": "^0.8.13", |
||||
"artifacts": { |
||||
"Counter": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Counter.sol/Counter.json" |
||||
} |
||||
} |
||||
}, |
||||
"test/Counter.t.sol": { |
||||
"lastModificationDate": 1661541840908, |
||||
"contentHash": "5122f4f87ee8fbf9a2468a4c9c780b6a", |
||||
"sourceName": "test/Counter.t.sol", |
||||
"solcConfig": { |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": [ |
||||
"ast" |
||||
], |
||||
"*": [ |
||||
"abi", |
||||
"evm.bytecode", |
||||
"evm.deployedBytecode", |
||||
"evm.methodIdentifiers", |
||||
"metadata" |
||||
] |
||||
} |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {} |
||||
} |
||||
}, |
||||
"imports": [ |
||||
"lib/forge-std/lib/ds-test/src/test.sol", |
||||
"lib/forge-std/src/Script.sol", |
||||
"lib/forge-std/src/Test.sol", |
||||
"lib/forge-std/src/Vm.sol", |
||||
"lib/forge-std/src/console.sol", |
||||
"lib/forge-std/src/console2.sol", |
||||
"src/Counter.sol" |
||||
], |
||||
"versionRequirement": "^0.8.13", |
||||
"artifacts": { |
||||
"CounterTest": { |
||||
"0.8.16+commit.07a7930e.Linux.gcc": "Counter.t.sol/CounterTest.json" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,377 @@ |
||||
{ |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"name": "increment", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "number", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "newNumber", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "setNumber", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"bytecode": { |
||||
"object": "0x608060405234801561001057600080fd5b5060f78061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f4a9b22e7a2d64c24355b4e7a6f8c62115ca728f26fc2a1e98e364ee91f794fa64736f6c63430008100033", |
||||
"sourceMap": "65:192:7:-:0;;;;;;;;;;;;;;;;;;;", |
||||
"linkReferences": {} |
||||
}, |
||||
"deployedBytecode": { |
||||
"object": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f4a9b22e7a2d64c24355b4e7a6f8c62115ca728f26fc2a1e98e364ee91f794fa64736f6c63430008100033", |
||||
"sourceMap": "65:192:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;116:80;;;;;;:::i;:::-;171:6;:18;116:80;;;88:21;;;;;;;;;345:25:9;;;333:2;318:18;88:21:7;;;;;;;202:53;;240:6;:8;;;:6;:8;;;:::i;:::-;;;;;;202:53::o;14:180:9:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:9;;14:180;-1:-1:-1;14:180:9:o;381:232::-;420:3;441:17;;;438:140;;500:10;495:3;491:20;488:1;481:31;535:4;532:1;525:15;563:4;560:1;553:15;438:140;-1:-1:-1;605:1:9;594:13;;381:232::o", |
||||
"linkReferences": {} |
||||
}, |
||||
"methodIdentifiers": { |
||||
"increment()": "d09de08a", |
||||
"number()": "8381f58a", |
||||
"setNumber(uint256)": "3fb5c1cb" |
||||
}, |
||||
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"increment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newNumber\",\"type\":\"uint256\"}],\"name\":\"setNumber\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Counter.sol\":\"Counter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/Counter.sol\":{\"keccak256\":\"0x09277f949d59a9521708c870dc39c2c434ad8f86a5472efda6a732ef728c0053\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://94cd5258357da018bf911aeda60ed9f5b130dce27445669ee200313cd3389200\",\"dweb:/ipfs/QmNbEfWAqXCtfQpk6u7TpGa8sTHXFLpUz7uebz2FVbchSC\"]}},\"version\":1}", |
||||
"metadata": { |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function", |
||||
"name": "increment" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"stateMutability": "view", |
||||
"type": "function", |
||||
"name": "number", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "newNumber", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function", |
||||
"name": "setNumber" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
], |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"compilationTarget": { |
||||
"src/Counter.sol": "Counter" |
||||
}, |
||||
"libraries": {} |
||||
}, |
||||
"sources": { |
||||
"src/Counter.sol": { |
||||
"keccak256": "0x09277f949d59a9521708c870dc39c2c434ad8f86a5472efda6a732ef728c0053", |
||||
"urls": [ |
||||
"bzz-raw://94cd5258357da018bf911aeda60ed9f5b130dce27445669ee200313cd3389200", |
||||
"dweb:/ipfs/QmNbEfWAqXCtfQpk6u7TpGa8sTHXFLpUz7uebz2FVbchSC" |
||||
], |
||||
"license": "UNLICENSED" |
||||
} |
||||
}, |
||||
"version": 1 |
||||
}, |
||||
"ast": { |
||||
"absolutePath": "src/Counter.sol", |
||||
"id": 21604, |
||||
"exportedSymbols": { |
||||
"Counter": [ |
||||
21603 |
||||
] |
||||
}, |
||||
"nodeType": "SourceUnit", |
||||
"src": "39:219:7", |
||||
"nodes": [ |
||||
{ |
||||
"id": 21583, |
||||
"nodeType": "PragmaDirective", |
||||
"src": "39:24:7", |
||||
"literals": [ |
||||
"solidity", |
||||
"^", |
||||
"0.8", |
||||
".13" |
||||
] |
||||
}, |
||||
{ |
||||
"id": 21603, |
||||
"nodeType": "ContractDefinition", |
||||
"src": "65:192:7", |
||||
"nodes": [ |
||||
{ |
||||
"id": 21585, |
||||
"nodeType": "VariableDeclaration", |
||||
"src": "88:21:7", |
||||
"constant": false, |
||||
"functionSelector": "8381f58a", |
||||
"mutability": "mutable", |
||||
"name": "number", |
||||
"nameLocation": "103:6:7", |
||||
"scope": 21603, |
||||
"stateVariable": true, |
||||
"storageLocation": "default", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"typeName": { |
||||
"id": 21584, |
||||
"name": "uint256", |
||||
"nodeType": "ElementaryTypeName", |
||||
"src": "88:7:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"visibility": "public" |
||||
}, |
||||
{ |
||||
"id": 21595, |
||||
"nodeType": "FunctionDefinition", |
||||
"src": "116:80:7", |
||||
"body": { |
||||
"id": 21594, |
||||
"nodeType": "Block", |
||||
"src": "161:35:7", |
||||
"statements": [ |
||||
{ |
||||
"expression": { |
||||
"id": 21592, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"leftHandSide": { |
||||
"id": 21590, |
||||
"name": "number", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21585, |
||||
"src": "171:6:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"nodeType": "Assignment", |
||||
"operator": "=", |
||||
"rightHandSide": { |
||||
"id": 21591, |
||||
"name": "newNumber", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21587, |
||||
"src": "180:9:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"src": "171:18:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"id": 21593, |
||||
"nodeType": "ExpressionStatement", |
||||
"src": "171:18:7" |
||||
} |
||||
] |
||||
}, |
||||
"functionSelector": "3fb5c1cb", |
||||
"implemented": true, |
||||
"kind": "function", |
||||
"modifiers": [], |
||||
"name": "setNumber", |
||||
"nameLocation": "125:9:7", |
||||
"parameters": { |
||||
"id": 21588, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [ |
||||
{ |
||||
"constant": false, |
||||
"id": 21587, |
||||
"mutability": "mutable", |
||||
"name": "newNumber", |
||||
"nameLocation": "143:9:7", |
||||
"nodeType": "VariableDeclaration", |
||||
"scope": 21595, |
||||
"src": "135:17:7", |
||||
"stateVariable": false, |
||||
"storageLocation": "default", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"typeName": { |
||||
"id": 21586, |
||||
"name": "uint256", |
||||
"nodeType": "ElementaryTypeName", |
||||
"src": "135:7:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"visibility": "internal" |
||||
} |
||||
], |
||||
"src": "134:19:7" |
||||
}, |
||||
"returnParameters": { |
||||
"id": 21589, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "161:0:7" |
||||
}, |
||||
"scope": 21603, |
||||
"stateMutability": "nonpayable", |
||||
"virtual": false, |
||||
"visibility": "public" |
||||
}, |
||||
{ |
||||
"id": 21602, |
||||
"nodeType": "FunctionDefinition", |
||||
"src": "202:53:7", |
||||
"body": { |
||||
"id": 21601, |
||||
"nodeType": "Block", |
||||
"src": "230:25:7", |
||||
"statements": [ |
||||
{ |
||||
"expression": { |
||||
"id": 21599, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"nodeType": "UnaryOperation", |
||||
"operator": "++", |
||||
"prefix": false, |
||||
"src": "240:8:7", |
||||
"subExpression": { |
||||
"id": 21598, |
||||
"name": "number", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21585, |
||||
"src": "240:6:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"id": 21600, |
||||
"nodeType": "ExpressionStatement", |
||||
"src": "240:8:7" |
||||
} |
||||
] |
||||
}, |
||||
"functionSelector": "d09de08a", |
||||
"implemented": true, |
||||
"kind": "function", |
||||
"modifiers": [], |
||||
"name": "increment", |
||||
"nameLocation": "211:9:7", |
||||
"parameters": { |
||||
"id": 21596, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "220:2:7" |
||||
}, |
||||
"returnParameters": { |
||||
"id": 21597, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "230:0:7" |
||||
}, |
||||
"scope": 21603, |
||||
"stateMutability": "nonpayable", |
||||
"virtual": false, |
||||
"visibility": "public" |
||||
} |
||||
], |
||||
"abstract": false, |
||||
"baseContracts": [], |
||||
"canonicalName": "Counter", |
||||
"contractDependencies": [], |
||||
"contractKind": "contract", |
||||
"fullyImplemented": true, |
||||
"linearizedBaseContracts": [ |
||||
21603 |
||||
], |
||||
"name": "Counter", |
||||
"nameLocation": "74:7:7", |
||||
"scope": 21604, |
||||
"usedErrors": [] |
||||
} |
||||
], |
||||
"license": "UNLICENSED" |
||||
}, |
||||
"id": 7 |
||||
} |
@ -0,0 +1,14 @@ |
||||
// SPDX-License-Identifier: UNLICENSED |
||||
pragma solidity ^0.8.13; |
||||
|
||||
contract Counter { |
||||
uint256 public number; |
||||
|
||||
function setNumber(uint256 newNumber) public { |
||||
number = newNumber; |
||||
} |
||||
|
||||
function increment() public { |
||||
number++; |
||||
} |
||||
} |
@ -0,0 +1 @@ |
||||
{"_format":"hh-sol-dbg-1","buildInfo":"../../build-info/7839ba878952cc00ff316061405f273a.json","default":{"_format":"hh-sol-dbg-1","buildInfo":"../../build-info/7839ba878952cc00ff316061405f273a.json"}} |
@ -0,0 +1,16 @@ |
||||
|
||||
{ |
||||
"language": "Solidity", |
||||
"settings": { |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"outputSelection": { |
||||
"*": { |
||||
"": ["ast"], |
||||
"*": ["abi", "metadata", "devdoc", "userdoc", "storageLayout", "evm.legacyAssembly", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "evm.gasEstimates", "evm.assembly"] |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,34 @@ |
||||
// SPDX-License-Identifier: UNLICENSED |
||||
pragma solidity ^0.8.9; |
||||
|
||||
// Uncomment this line to use console.log |
||||
// import "hardhat/console.sol"; |
||||
|
||||
contract Lock { |
||||
uint public unlockTime; |
||||
address payable public owner; |
||||
|
||||
event Withdrawal(uint amount, uint when); |
||||
|
||||
constructor(uint _unlockTime) payable { |
||||
require( |
||||
block.timestamp < _unlockTime, |
||||
"Unlock time should be in the future" |
||||
); |
||||
uint p = 454545; |
||||
unlockTime = _unlockTime; |
||||
owner = payable(msg.sender); |
||||
} |
||||
|
||||
function withdraw() public { |
||||
// Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal |
||||
// console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); |
||||
|
||||
require(block.timestamp >= unlockTime, "You can't withdraw yet"); |
||||
require(msg.sender == owner, "You aren't the owner"); |
||||
|
||||
emit Withdrawal(address(this).balance, block.timestamp); |
||||
|
||||
owner.transfer(address(this).balance); |
||||
} |
||||
} |
@ -1,121 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_SCRIPT", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "run", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "setUp", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "vm", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "contract Vm", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"script/Counter.s.sol": "CounterScript" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
}, |
||||
"script/Counter.s.sol": { |
||||
"keccak256": "0x01edaa1835b1a5bd3f4f66f73451488b8441d30642d3bf1f5fa2c5bf7c005bee", |
||||
"license": "UNLICENSED", |
||||
"urls": [ |
||||
"bzz-raw://3c6a0f19216ceeebf4ec16f8f2662a3bebbe18d4037d1399adf2e3e4ccbb57a2", |
||||
"dweb:/ipfs/Qmc8NknjPkSgbXLg6zZQ8uKT6kAWBvBXz5JrDvZfa88UNT" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,587 +0,0 @@ |
||||
{ |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"name": "increment", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "number", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "newNumber", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "setNumber", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"bytecode": { |
||||
"object": "0x608060405234801561001057600080fd5b50610125806100206000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146052578063d09de08a14606c575b600080fd5b6050604c3660046095565b6072565b005b605a60005481565b60405190815260200160405180910390f35b60506081565b607b81607b60c3565b60005550565b600080549080608e8360d9565b9190505550565b60006020828403121560a657600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111560d35760d360ad565b92915050565b60006001820160e85760e860ad565b506001019056fea2646970667358221220981d705d73c405a1cadf6bcd0ff9f1d0fcbbc1599040e504e71517ff0d8aa53264736f6c63430008100033", |
||||
"sourceMap": "65:198:7:-:0;;;;;;;;;;;;;;;;;;;", |
||||
"linkReferences": {} |
||||
}, |
||||
"deployedBytecode": { |
||||
"object": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146052578063d09de08a14606c575b600080fd5b6050604c3660046095565b6072565b005b605a60005481565b60405190815260200160405180910390f35b60506081565b607b81607b60c3565b60005550565b600080549080608e8360d9565b9190505550565b60006020828403121560a657600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111560d35760d360ad565b92915050565b60006001820160e85760e860ad565b506001019056fea2646970667358221220981d705d73c405a1cadf6bcd0ff9f1d0fcbbc1599040e504e71517ff0d8aa53264736f6c63430008100033", |
||||
"sourceMap": "65:198:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;116:86;;;;;;:::i;:::-;;:::i;:::-;;88:21;;;;;;;;;345:25:9;;;333:2;318:18;88:21:7;;;;;;;208:53;;;:::i;116:86::-;180:15;:9;192:3;180:15;:::i;:::-;171:6;:24;-1:-1:-1;116:86:7:o;208:53::-;246:6;:8;;;:6;:8;;;:::i;:::-;;;;;;208:53::o;14:180:9:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:9;;14:180;-1:-1:-1;14:180:9:o;381:127::-;442:10;437:3;433:20;430:1;423:31;473:4;470:1;463:15;497:4;494:1;487:15;513:125;578:9;;;599:10;;;596:36;;;612:18;;:::i;:::-;513:125;;;;:::o;643:135::-;682:3;703:17;;;700:43;;723:18;;:::i;:::-;-1:-1:-1;770:1:9;759:13;;643:135::o", |
||||
"linkReferences": {} |
||||
}, |
||||
"methodIdentifiers": { |
||||
"increment()": "d09de08a", |
||||
"number()": "8381f58a", |
||||
"setNumber(uint256)": "3fb5c1cb" |
||||
}, |
||||
"ast": { |
||||
"absolutePath": "src/Counter.sol", |
||||
"id": 21628, |
||||
"exportedSymbols": { |
||||
"Counter": [ |
||||
21605 |
||||
], |
||||
"CounterYann": [ |
||||
21627 |
||||
] |
||||
}, |
||||
"nodeType": "SourceUnit", |
||||
"src": "39:427:7", |
||||
"nodes": [ |
||||
{ |
||||
"id": 21583, |
||||
"nodeType": "PragmaDirective", |
||||
"src": "39:24:7", |
||||
"literals": [ |
||||
"solidity", |
||||
"^", |
||||
"0.8", |
||||
".13" |
||||
] |
||||
}, |
||||
{ |
||||
"id": 21605, |
||||
"nodeType": "ContractDefinition", |
||||
"src": "65:198:7", |
||||
"nodes": [ |
||||
{ |
||||
"id": 21585, |
||||
"nodeType": "VariableDeclaration", |
||||
"src": "88:21:7", |
||||
"constant": false, |
||||
"functionSelector": "8381f58a", |
||||
"mutability": "mutable", |
||||
"name": "number", |
||||
"nameLocation": "103:6:7", |
||||
"scope": 21605, |
||||
"stateVariable": true, |
||||
"storageLocation": "default", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"typeName": { |
||||
"id": 21584, |
||||
"name": "uint256", |
||||
"nodeType": "ElementaryTypeName", |
||||
"src": "88:7:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"visibility": "public" |
||||
}, |
||||
{ |
||||
"id": 21597, |
||||
"nodeType": "FunctionDefinition", |
||||
"src": "116:86:7", |
||||
"body": { |
||||
"id": 21596, |
||||
"nodeType": "Block", |
||||
"src": "161:41:7", |
||||
"statements": [ |
||||
{ |
||||
"expression": { |
||||
"id": 21594, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"leftHandSide": { |
||||
"id": 21590, |
||||
"name": "number", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21585, |
||||
"src": "171:6:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"nodeType": "Assignment", |
||||
"operator": "=", |
||||
"rightHandSide": { |
||||
"commonType": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"id": 21593, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"leftExpression": { |
||||
"id": 21591, |
||||
"name": "newNumber", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21587, |
||||
"src": "180:9:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"nodeType": "BinaryOperation", |
||||
"operator": "+", |
||||
"rightExpression": { |
||||
"hexValue": "313233", |
||||
"id": 21592, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": true, |
||||
"kind": "number", |
||||
"lValueRequested": false, |
||||
"nodeType": "Literal", |
||||
"src": "192:3:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_rational_123_by_1", |
||||
"typeString": "int_const 123" |
||||
}, |
||||
"value": "123" |
||||
}, |
||||
"src": "180:15:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"src": "171:24:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"id": 21595, |
||||
"nodeType": "ExpressionStatement", |
||||
"src": "171:24:7" |
||||
} |
||||
] |
||||
}, |
||||
"functionSelector": "3fb5c1cb", |
||||
"implemented": true, |
||||
"kind": "function", |
||||
"modifiers": [], |
||||
"name": "setNumber", |
||||
"nameLocation": "125:9:7", |
||||
"parameters": { |
||||
"id": 21588, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [ |
||||
{ |
||||
"constant": false, |
||||
"id": 21587, |
||||
"mutability": "mutable", |
||||
"name": "newNumber", |
||||
"nameLocation": "143:9:7", |
||||
"nodeType": "VariableDeclaration", |
||||
"scope": 21597, |
||||
"src": "135:17:7", |
||||
"stateVariable": false, |
||||
"storageLocation": "default", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"typeName": { |
||||
"id": 21586, |
||||
"name": "uint256", |
||||
"nodeType": "ElementaryTypeName", |
||||
"src": "135:7:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"visibility": "internal" |
||||
} |
||||
], |
||||
"src": "134:19:7" |
||||
}, |
||||
"returnParameters": { |
||||
"id": 21589, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "161:0:7" |
||||
}, |
||||
"scope": 21605, |
||||
"stateMutability": "nonpayable", |
||||
"virtual": false, |
||||
"visibility": "public" |
||||
}, |
||||
{ |
||||
"id": 21604, |
||||
"nodeType": "FunctionDefinition", |
||||
"src": "208:53:7", |
||||
"body": { |
||||
"id": 21603, |
||||
"nodeType": "Block", |
||||
"src": "236:25:7", |
||||
"statements": [ |
||||
{ |
||||
"expression": { |
||||
"id": 21601, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"nodeType": "UnaryOperation", |
||||
"operator": "++", |
||||
"prefix": false, |
||||
"src": "246:8:7", |
||||
"subExpression": { |
||||
"id": 21600, |
||||
"name": "number", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21585, |
||||
"src": "246:6:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"id": 21602, |
||||
"nodeType": "ExpressionStatement", |
||||
"src": "246:8:7" |
||||
} |
||||
] |
||||
}, |
||||
"functionSelector": "d09de08a", |
||||
"implemented": true, |
||||
"kind": "function", |
||||
"modifiers": [], |
||||
"name": "increment", |
||||
"nameLocation": "217:9:7", |
||||
"parameters": { |
||||
"id": 21598, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "226:2:7" |
||||
}, |
||||
"returnParameters": { |
||||
"id": 21599, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "236:0:7" |
||||
}, |
||||
"scope": 21605, |
||||
"stateMutability": "nonpayable", |
||||
"virtual": false, |
||||
"visibility": "public" |
||||
} |
||||
], |
||||
"abstract": false, |
||||
"baseContracts": [], |
||||
"canonicalName": "Counter", |
||||
"contractDependencies": [], |
||||
"contractKind": "contract", |
||||
"fullyImplemented": true, |
||||
"linearizedBaseContracts": [ |
||||
21605 |
||||
], |
||||
"name": "Counter", |
||||
"nameLocation": "74:7:7", |
||||
"scope": 21628, |
||||
"usedErrors": [] |
||||
}, |
||||
{ |
||||
"id": 21627, |
||||
"nodeType": "ContractDefinition", |
||||
"src": "265:200:7", |
||||
"nodes": [ |
||||
{ |
||||
"id": 21607, |
||||
"nodeType": "VariableDeclaration", |
||||
"src": "292:21:7", |
||||
"constant": false, |
||||
"functionSelector": "8381f58a", |
||||
"mutability": "mutable", |
||||
"name": "number", |
||||
"nameLocation": "307:6:7", |
||||
"scope": 21627, |
||||
"stateVariable": true, |
||||
"storageLocation": "default", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"typeName": { |
||||
"id": 21606, |
||||
"name": "uint256", |
||||
"nodeType": "ElementaryTypeName", |
||||
"src": "292:7:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"visibility": "public" |
||||
}, |
||||
{ |
||||
"id": 21619, |
||||
"nodeType": "FunctionDefinition", |
||||
"src": "320:84:7", |
||||
"body": { |
||||
"id": 21618, |
||||
"nodeType": "Block", |
||||
"src": "365:39:7", |
||||
"statements": [ |
||||
{ |
||||
"expression": { |
||||
"id": 21616, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"leftHandSide": { |
||||
"id": 21612, |
||||
"name": "number", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21607, |
||||
"src": "375:6:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"nodeType": "Assignment", |
||||
"operator": "=", |
||||
"rightHandSide": { |
||||
"commonType": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"id": 21615, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"leftExpression": { |
||||
"id": 21613, |
||||
"name": "newNumber", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21609, |
||||
"src": "384:9:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"nodeType": "BinaryOperation", |
||||
"operator": "+", |
||||
"rightExpression": { |
||||
"hexValue": "39", |
||||
"id": 21614, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": true, |
||||
"kind": "number", |
||||
"lValueRequested": false, |
||||
"nodeType": "Literal", |
||||
"src": "396:1:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_rational_9_by_1", |
||||
"typeString": "int_const 9" |
||||
}, |
||||
"value": "9" |
||||
}, |
||||
"src": "384:13:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"src": "375:22:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"id": 21617, |
||||
"nodeType": "ExpressionStatement", |
||||
"src": "375:22:7" |
||||
} |
||||
] |
||||
}, |
||||
"functionSelector": "3fb5c1cb", |
||||
"implemented": true, |
||||
"kind": "function", |
||||
"modifiers": [], |
||||
"name": "setNumber", |
||||
"nameLocation": "329:9:7", |
||||
"parameters": { |
||||
"id": 21610, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [ |
||||
{ |
||||
"constant": false, |
||||
"id": 21609, |
||||
"mutability": "mutable", |
||||
"name": "newNumber", |
||||
"nameLocation": "347:9:7", |
||||
"nodeType": "VariableDeclaration", |
||||
"scope": 21619, |
||||
"src": "339:17:7", |
||||
"stateVariable": false, |
||||
"storageLocation": "default", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
}, |
||||
"typeName": { |
||||
"id": 21608, |
||||
"name": "uint256", |
||||
"nodeType": "ElementaryTypeName", |
||||
"src": "339:7:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"visibility": "internal" |
||||
} |
||||
], |
||||
"src": "338:19:7" |
||||
}, |
||||
"returnParameters": { |
||||
"id": 21611, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "365:0:7" |
||||
}, |
||||
"scope": 21627, |
||||
"stateMutability": "nonpayable", |
||||
"virtual": false, |
||||
"visibility": "public" |
||||
}, |
||||
{ |
||||
"id": 21626, |
||||
"nodeType": "FunctionDefinition", |
||||
"src": "410:53:7", |
||||
"body": { |
||||
"id": 21625, |
||||
"nodeType": "Block", |
||||
"src": "438:25:7", |
||||
"statements": [ |
||||
{ |
||||
"expression": { |
||||
"id": 21623, |
||||
"isConstant": false, |
||||
"isLValue": false, |
||||
"isPure": false, |
||||
"lValueRequested": false, |
||||
"nodeType": "UnaryOperation", |
||||
"operator": "++", |
||||
"prefix": false, |
||||
"src": "448:8:7", |
||||
"subExpression": { |
||||
"id": 21622, |
||||
"name": "number", |
||||
"nodeType": "Identifier", |
||||
"overloadedDeclarations": [], |
||||
"referencedDeclaration": 21607, |
||||
"src": "448:6:7", |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"typeDescriptions": { |
||||
"typeIdentifier": "t_uint256", |
||||
"typeString": "uint256" |
||||
} |
||||
}, |
||||
"id": 21624, |
||||
"nodeType": "ExpressionStatement", |
||||
"src": "448:8:7" |
||||
} |
||||
] |
||||
}, |
||||
"functionSelector": "d09de08a", |
||||
"implemented": true, |
||||
"kind": "function", |
||||
"modifiers": [], |
||||
"name": "increment", |
||||
"nameLocation": "419:9:7", |
||||
"parameters": { |
||||
"id": 21620, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "428:2:7" |
||||
}, |
||||
"returnParameters": { |
||||
"id": 21621, |
||||
"nodeType": "ParameterList", |
||||
"parameters": [], |
||||
"src": "438:0:7" |
||||
}, |
||||
"scope": 21627, |
||||
"stateMutability": "nonpayable", |
||||
"virtual": false, |
||||
"visibility": "public" |
||||
} |
||||
], |
||||
"abstract": false, |
||||
"baseContracts": [], |
||||
"canonicalName": "CounterYann", |
||||
"contractDependencies": [], |
||||
"contractKind": "contract", |
||||
"fullyImplemented": true, |
||||
"linearizedBaseContracts": [ |
||||
21627 |
||||
], |
||||
"name": "CounterYann", |
||||
"nameLocation": "274:11:7", |
||||
"scope": 21628, |
||||
"usedErrors": [] |
||||
} |
||||
], |
||||
"license": "UNLICENSED" |
||||
}, |
||||
"id": 7 |
||||
} |
@ -1,82 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"name": "increment", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "number", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "newNumber", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "setNumber", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"src/Counter.sol": "Counter" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"src/Counter.sol": { |
||||
"keccak256": "0x74eb20a9c3120b64f0e66b02cf476d5d1ff5e07149a4c52b8e774a6800a40b83", |
||||
"license": "UNLICENSED", |
||||
"urls": [ |
||||
"bzz-raw://be4d1233bdd7aaf1846eb4c3b94c58914fa4a4b7a2fa4a5734d9d09c562975dc", |
||||
"dweb:/ipfs/QmNVGX1nn75pwmWKQjPdV8cy5u5PHuWGbL6TsztchKqmAZ" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,561 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"name": "log_address", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256[]", |
||||
"name": "val", |
||||
"type": "uint256[]" |
||||
} |
||||
], |
||||
"name": "log_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256[]", |
||||
"name": "val", |
||||
"type": "int256[]" |
||||
} |
||||
], |
||||
"name": "log_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address[]", |
||||
"name": "val", |
||||
"type": "address[]" |
||||
} |
||||
], |
||||
"name": "log_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "log_bytes", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"name": "log_bytes32", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "", |
||||
"type": "int256" |
||||
} |
||||
], |
||||
"name": "log_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "val", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"name": "log_named_address", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256[]", |
||||
"name": "val", |
||||
"type": "uint256[]" |
||||
} |
||||
], |
||||
"name": "log_named_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256[]", |
||||
"name": "val", |
||||
"type": "int256[]" |
||||
} |
||||
], |
||||
"name": "log_named_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address[]", |
||||
"name": "val", |
||||
"type": "address[]" |
||||
} |
||||
], |
||||
"name": "log_named_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "val", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "log_named_bytes", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "val", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"name": "log_named_bytes32", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "val", |
||||
"type": "int256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "decimals", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_decimal_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "val", |
||||
"type": "uint256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "decimals", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_decimal_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "val", |
||||
"type": "int256" |
||||
} |
||||
], |
||||
"name": "log_named_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "val", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log_named_string", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "val", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log_string", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "logs", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_SCRIPT", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_TEST", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "counter", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "contract Counter", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "failed", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "setUp", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "testIncrement", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "x", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "testSetNumber", |
||||
"outputs": [], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "vm", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "contract Vm", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"test/Counter.t.sol": "CounterTest" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", |
||||
"license": "GPL-3.0-or-later", |
||||
"urls": [ |
||||
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", |
||||
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Test.sol": { |
||||
"keccak256": "0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55", |
||||
"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
}, |
||||
"src/Counter.sol": { |
||||
"keccak256": "0x74eb20a9c3120b64f0e66b02cf476d5d1ff5e07149a4c52b8e774a6800a40b83", |
||||
"license": "UNLICENSED", |
||||
"urls": [ |
||||
"bzz-raw://be4d1233bdd7aaf1846eb4c3b94c58914fa4a4b7a2fa4a5734d9d09c562975dc", |
||||
"dweb:/ipfs/QmNVGX1nn75pwmWKQjPdV8cy5u5PHuWGbL6TsztchKqmAZ" |
||||
] |
||||
}, |
||||
"test/Counter.t.sol": { |
||||
"keccak256": "0x76bdc40734abcf9acbe5d56422e22662bc218e7d410264f3de6a823036be6a6d", |
||||
"license": "UNLICENSED", |
||||
"urls": [ |
||||
"bzz-raw://27118e74e69a15c903cb826430175f337a9ab5cd1bb55a767ae9439e860052bd", |
||||
"dweb:/ipfs/QmfNHmcHCDN2eDQpbaDTSRyU4uhcZjpLEdvrudZRLY5knF" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,99 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_SCRIPT", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "vm", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "contract Vm", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/Script.sol": "Script" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,505 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"name": "log_address", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256[]", |
||||
"name": "val", |
||||
"type": "uint256[]" |
||||
} |
||||
], |
||||
"name": "log_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256[]", |
||||
"name": "val", |
||||
"type": "int256[]" |
||||
} |
||||
], |
||||
"name": "log_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address[]", |
||||
"name": "val", |
||||
"type": "address[]" |
||||
} |
||||
], |
||||
"name": "log_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "log_bytes", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"name": "log_bytes32", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "", |
||||
"type": "int256" |
||||
} |
||||
], |
||||
"name": "log_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "val", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"name": "log_named_address", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256[]", |
||||
"name": "val", |
||||
"type": "uint256[]" |
||||
} |
||||
], |
||||
"name": "log_named_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256[]", |
||||
"name": "val", |
||||
"type": "int256[]" |
||||
} |
||||
], |
||||
"name": "log_named_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address[]", |
||||
"name": "val", |
||||
"type": "address[]" |
||||
} |
||||
], |
||||
"name": "log_named_array", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "val", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "log_named_bytes", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "val", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"name": "log_named_bytes32", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "val", |
||||
"type": "int256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "decimals", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_decimal_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "val", |
||||
"type": "uint256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "decimals", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_decimal_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "val", |
||||
"type": "int256" |
||||
} |
||||
], |
||||
"name": "log_named_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "val", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log_named_string", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "val", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log_string", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "logs", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_SCRIPT", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_TEST", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "failed", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "vm", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "contract Vm", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/Test.sol": "Test" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", |
||||
"license": "GPL-3.0-or-later", |
||||
"urls": [ |
||||
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", |
||||
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Test.sol": { |
||||
"keccak256": "0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55", |
||||
"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,219 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"inputs": [], |
||||
"name": "arithmeticError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "assertionError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "divisionError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "encodeStorageError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "enumConversionError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "indexOOBError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "lowLevelError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "memOverflowError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "popError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "zeroVarError", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/Test.sol": "stdError" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", |
||||
"license": "GPL-3.0-or-later", |
||||
"urls": [ |
||||
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", |
||||
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Test.sol": { |
||||
"keccak256": "0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55", |
||||
"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,88 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/Test.sol": "stdMath" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", |
||||
"license": "GPL-3.0-or-later", |
||||
"urls": [ |
||||
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", |
||||
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Test.sol": { |
||||
"keccak256": "0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55", |
||||
"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,163 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "who", |
||||
"type": "address" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes4", |
||||
"name": "fsig", |
||||
"type": "bytes4" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "keysHash", |
||||
"type": "bytes32" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "slot", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "SlotFound", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "who", |
||||
"type": "address" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "slot", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "WARNING_UninitedSlot", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"inputs": [ |
||||
{ |
||||
"internalType": "bytes", |
||||
"name": "b", |
||||
"type": "bytes" |
||||
}, |
||||
{ |
||||
"internalType": "uint256", |
||||
"name": "offset", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "bytesToBytes32", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bytes32", |
||||
"name": "", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"stateMutability": "pure", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/Test.sol": "stdStorage" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", |
||||
"license": "GPL-3.0-or-later", |
||||
"urls": [ |
||||
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", |
||||
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Script.sol": { |
||||
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a", |
||||
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Test.sol": { |
||||
"keccak256": "0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55", |
||||
"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/Vm.sol": { |
||||
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f", |
||||
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
}, |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,48 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/console.sol": "console" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/src/console.sol": { |
||||
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", |
||||
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,48 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/src/console2.sol": "console2" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/src/console2.sol": { |
||||
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671", |
||||
"license": "MIT", |
||||
"urls": [ |
||||
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f", |
||||
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -1,343 +0,0 @@ |
||||
{ |
||||
"compiler": { |
||||
"version": "0.8.16+commit.07a7930e" |
||||
}, |
||||
"language": "Solidity", |
||||
"output": { |
||||
"abi": [ |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"name": "log_address", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "log_bytes", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"name": "log_bytes32", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "", |
||||
"type": "int256" |
||||
} |
||||
], |
||||
"name": "log_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "address", |
||||
"name": "val", |
||||
"type": "address" |
||||
} |
||||
], |
||||
"name": "log_named_address", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "val", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "log_named_bytes", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes32", |
||||
"name": "val", |
||||
"type": "bytes32" |
||||
} |
||||
], |
||||
"name": "log_named_bytes32", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "val", |
||||
"type": "int256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "decimals", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_decimal_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "val", |
||||
"type": "uint256" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "decimals", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_decimal_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "int256", |
||||
"name": "val", |
||||
"type": "int256" |
||||
} |
||||
], |
||||
"name": "log_named_int", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "val", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log_named_string", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "key", |
||||
"type": "string" |
||||
}, |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "val", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_named_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "string", |
||||
"name": "", |
||||
"type": "string" |
||||
} |
||||
], |
||||
"name": "log_string", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "uint256", |
||||
"name": "", |
||||
"type": "uint256" |
||||
} |
||||
], |
||||
"name": "log_uint", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"anonymous": false, |
||||
"inputs": [ |
||||
{ |
||||
"indexed": false, |
||||
"internalType": "bytes", |
||||
"name": "", |
||||
"type": "bytes" |
||||
} |
||||
], |
||||
"name": "logs", |
||||
"type": "event" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "IS_TEST", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "view", |
||||
"type": "function" |
||||
}, |
||||
{ |
||||
"inputs": [], |
||||
"name": "failed", |
||||
"outputs": [ |
||||
{ |
||||
"internalType": "bool", |
||||
"name": "", |
||||
"type": "bool" |
||||
} |
||||
], |
||||
"stateMutability": "nonpayable", |
||||
"type": "function" |
||||
} |
||||
], |
||||
"devdoc": { |
||||
"kind": "dev", |
||||
"methods": {}, |
||||
"version": 1 |
||||
}, |
||||
"userdoc": { |
||||
"kind": "user", |
||||
"methods": {}, |
||||
"version": 1 |
||||
} |
||||
}, |
||||
"settings": { |
||||
"compilationTarget": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": "DSTest" |
||||
}, |
||||
"evmVersion": "london", |
||||
"libraries": {}, |
||||
"metadata": { |
||||
"bytecodeHash": "ipfs" |
||||
}, |
||||
"optimizer": { |
||||
"enabled": true, |
||||
"runs": 200 |
||||
}, |
||||
"remappings": [ |
||||
":ds-test/=lib/forge-std/lib/ds-test/src/", |
||||
":forge-std/=lib/forge-std/src/" |
||||
] |
||||
}, |
||||
"sources": { |
||||
"lib/forge-std/lib/ds-test/src/test.sol": { |
||||
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54", |
||||
"license": "GPL-3.0-or-later", |
||||
"urls": [ |
||||
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5", |
||||
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr" |
||||
] |
||||
} |
||||
}, |
||||
"version": 1 |
||||
} |
@ -0,0 +1,18 @@ |
||||
// SPDX-License-Identifier: MIT |
||||
// pragma solidity >=0.4.22 <0.8.0; |
||||
|
||||
contract Migrations { |
||||
address public owner = msg.sender; |
||||
uint public last_completed_migration; |
||||
modifier restricted() { |
||||
require( |
||||
msg.sender == owner, |
||||
"This function is restricted to the contract's owner" |
||||
); |
||||
_; |
||||
} |
||||
|
||||
function setCompleted(uint completed) public restricted { |
||||
last_completed_migration = completed; |
||||
} |
||||
} |
@ -0,0 +1,75 @@ |
||||
import { Plugin } from '@remixproject/engine' |
||||
import { EventEmitter } from 'events' |
||||
import { QueryParams } from '@remix-project/remix-lib' |
||||
import * as packageJson from '../../../../../package.json' |
||||
import Registry from '../state/registry' |
||||
import enUS from './locales/en-US' |
||||
import zhCN from './locales/zh-CN' |
||||
const _paq = window._paq = window._paq || [] |
||||
|
||||
const locales = [ |
||||
{ name: 'en-US', messages: enUS }, |
||||
{ name: 'zh-CN', messages: zhCN }, |
||||
] |
||||
|
||||
const profile = { |
||||
name: 'locale', |
||||
events: ['localeChanged'], |
||||
methods: ['switchLocale', 'getLocales', 'currentLocale'], |
||||
version: packageJson.version, |
||||
kind: 'locale' |
||||
} |
||||
|
||||
export class LocaleModule extends Plugin { |
||||
constructor () { |
||||
super(profile) |
||||
this.events = new EventEmitter() |
||||
this._deps = { |
||||
config: Registry.getInstance().get('config') && Registry.getInstance().get('config').api |
||||
} |
||||
this.locales = {} |
||||
locales.map((locale) => { |
||||
this.locales[locale.name.toLocaleLowerCase()] = locale |
||||
}) |
||||
this._paq = _paq |
||||
let queryLocale = (new QueryParams()).get().locale |
||||
queryLocale = queryLocale && queryLocale.toLocaleLowerCase() |
||||
queryLocale = this.locales[queryLocale] ? queryLocale : null |
||||
let currentLocale = (this._deps.config && this._deps.config.get('settings/locale')) || null |
||||
currentLocale = currentLocale && currentLocale.toLocaleLowerCase() |
||||
currentLocale = this.locales[currentLocale] ? currentLocale : null |
||||
this.currentLocaleState = { queryLocale, currentLocale } |
||||
this.active = queryLocale || currentLocale || 'en-us' |
||||
this.forced = !!queryLocale |
||||
} |
||||
|
||||
/** Return the active locale */ |
||||
currentLocale () { |
||||
return this.locales[this.active] |
||||
} |
||||
|
||||
/** Returns all locales as an array */ |
||||
getLocales () { |
||||
return Object.keys(this.locales).map(key => this.locales[key]) |
||||
} |
||||
|
||||
/** |
||||
* Change the current locale |
||||
* @param {string} [localeName] - The name of the locale |
||||
*/ |
||||
switchLocale (localeName) { |
||||
localeName = localeName && localeName.toLocaleLowerCase() |
||||
if (localeName && !Object.keys(this.locales).includes(localeName)) { |
||||
throw new Error(`Locale ${localeName} doesn't exist`) |
||||
} |
||||
const next = localeName || this.active // Name
|
||||
if (next === this.active) return // --> exit out of this method
|
||||
_paq.push(['trackEvent', 'localeModule', 'switchTo', next]) |
||||
const nextLocale = this.locales[next] // Locale
|
||||
if (!this.forced) this._deps.config.set('settings/locale', next) |
||||
|
||||
if (localeName) this.active = localeName |
||||
this.emit('localeChanged', nextLocale) |
||||
this.events.emit('localeChanged', nextLocale) |
||||
} |
||||
} |
@ -0,0 +1,196 @@ |
||||
export default { |
||||
'panel.author': 'Author', |
||||
'panel.maintainedBy': 'Maintained By', |
||||
'panel.documentation': 'Documentation', |
||||
'panel.description': 'Description', |
||||
|
||||
'settings.displayName': 'Settings', |
||||
'settings.reset': 'Reset to Default settings', |
||||
'settings.general': 'General settings', |
||||
'settings.generateContractMetadataText': 'Generate contract metadata. Generate a JSON file in the contract folder. Allows to specify library addresses the contract depends on. If nothing is specified, Remix deploys libraries automatically.', |
||||
'settings.ethereunVMText': 'Always use Javascript VM at load', |
||||
'settings.wordWrapText': 'Word wrap in editor', |
||||
'settings.useAutoCompleteText': 'Enable code completion in editor.', |
||||
'settings.useShowGasInEditorText': 'Display gas estimates in editor.', |
||||
'settings.displayErrorsText': 'Display errors in editor while typing.', |
||||
'settings.matomoAnalytics': 'Enable Matomo Analytics. We do not collect personally identifiable information (PII). The info is used to improve the site’s UX & UI. See more about ', |
||||
'settings.enablePersonalModeText': ' Enable Personal Mode for web3 provider. Transaction sent over Web3 will use the web3.personal API.\n', |
||||
'settings.warnText': 'Be sure the endpoint is opened before enabling it. \nThis mode allows a user to provide a passphrase in the Remix interface without having to unlock the account. Although this is very convenient, you should completely trust the backend you are connected to (Geth, Parity, ...). Remix never persists any passphrase'.split('\n').map(s => s.trim()).join(' '), |
||||
'settings.gitAccessTokenTitle': 'GitHub Access Token', |
||||
'settings.gitAccessTokenText': 'Manage the access token used to publish to Gist and retrieve GitHub contents.', |
||||
'settings.gitAccessTokenText2': 'Go to github token page (link below) to create a new token and save it in Remix. Make sure this token has only \'create gist\' permission.', |
||||
'settings.etherscanTokenTitle': 'EtherScan Access Token', |
||||
'settings.etherscanAccessTokenText': 'Manage the api key used to interact with Etherscan.', |
||||
'settings.etherscanAccessTokenText2': 'Go to Etherscan api key page (link below) to create a new api key and save it in Remix.', |
||||
'settings.save': 'Save', |
||||
'settings.remove': 'Remove', |
||||
'settings.themes': 'Themes', |
||||
'settings.locales': 'Lanaguage', |
||||
'settings.swarm': 'Swarm Settings', |
||||
'settings.ipfs': 'IPFS Settings', |
||||
|
||||
'filePanel.displayName': 'File explorer', |
||||
'filePanel.workspace': 'WORKSPACES', |
||||
'filePanel.create': 'Create', |
||||
'filePanel.clone': 'Clone', |
||||
'filePanel.download': 'Download', |
||||
'filePanel.restore': 'Restore', |
||||
'filePanel.workspace.create': 'Create Workspace', |
||||
'filePanel.workspace.rename': 'Rename Workspace', |
||||
'filePanel.workspace.delete': 'Delete Workspace', |
||||
'filePanel.workspace.deleteConfirm': 'Are you sure to delete the current workspace?', |
||||
'filePanel.workspace.name': 'Workspace name', |
||||
'filePanel.workspace.chooseTemplate': 'Choose a template', |
||||
'filePanel.workspace.download': 'Download Workspace', |
||||
'filePanel.workspace.restore': 'Restore Workspace Backup', |
||||
'filePanel.workspace.clone': 'Clone Git Repository', |
||||
'filePanel.workspace.enterGitUrl': 'Enter git repository url', |
||||
'filePanel.newFile': 'New File', |
||||
'filePanel.newFolder': 'New Folder', |
||||
'filePanel.rename': 'Rename', |
||||
'filePanel.delete': 'Delete', |
||||
'filePanel.deleteAll': 'Delete All', |
||||
'filePanel.run': 'Run', |
||||
'filePanel.pushChangesToGist': 'Push changes to gist', |
||||
'filePanel.publishFolderToGist': 'Publish folder to gist', |
||||
'filePanel.publishFileToGist': 'Publish file to gist', |
||||
'filePanel.copy': 'Copy', |
||||
'filePanel.paste': 'Paste', |
||||
'filePanel.compile': 'Compile', |
||||
'filePanel.compileForNahmii': 'Compile for Nahmii', |
||||
'filePanel.createNewFile': 'Create New File', |
||||
'filePanel.createNewFolder': 'Create New Folder', |
||||
'filePanel.publishToGist': 'Publish all the current workspace files to a github gist', |
||||
'filePanel.uploadFile': 'Load a local file into current workspace', |
||||
'filePanel.updateGist': 'Update the current [gist] explorer', |
||||
|
||||
'home.scamAlert': 'Scam Alert', |
||||
'home.scamAlertText': 'The only URL Remix uses is remix.ethereum.org', |
||||
'home.scamAlertText2': 'Beware of online videos promoting "liquidity front runner bots"', |
||||
'home.scamAlertText3': 'Additional safety tips', |
||||
'home.learnMore': 'Learn more', |
||||
'home.here': 'here', |
||||
'home.featuredPlugins': 'Featured Plugins', |
||||
'home.files': 'Files', |
||||
'home.newFile': 'New File', |
||||
'home.openFile': 'Open File', |
||||
'home.connectToLocalhost': 'Connect to Localhost', |
||||
'home.loadFrom': 'LOAD FROM', |
||||
'home.resources': 'Resources', |
||||
|
||||
'terminal.listen': 'listen on all transactions', |
||||
'terminal.search': 'Search with transaction hash or address', |
||||
'terminal.used': 'used', |
||||
'terminal.welcomeText1': 'Welcome to', |
||||
'terminal.welcomeText2': 'Your files are stored in', |
||||
'terminal.welcomeText3': 'You can use this terminal to', |
||||
'terminal.welcomeText4': 'Check transactions details and start debugging', |
||||
'terminal.welcomeText5': 'Execute JavaScript scripts', |
||||
'terminal.welcomeText6': 'Input a script directly in the command line interface', |
||||
'terminal.welcomeText7': 'Select a Javascript file in the file explorer and then run `remix.execute()` or `remix.exeCurrent()` in the command line interface', |
||||
'terminal.welcomeText8': 'Right click on a JavaScript file in the file explorer and then click `Run`', |
||||
'terminal.welcomeText9': 'The following libraries are accessible', |
||||
'terminal.welcomeText10': 'Type the library name to see available commands', |
||||
|
||||
'debugger.displayName': 'Debugger', |
||||
'debugger.debuggerConfiguration': 'Debugger Configuration', |
||||
'debugger.stopDebugging': 'Stop debugging', |
||||
'debugger.startDebugging': 'Start debugging', |
||||
'debugger.placeholder': 'Transaction hash, should start with 0x', |
||||
'debugger.introduction': `When Debugging with a transaction hash,
|
||||
if the contract is verified, Remix will try to fetch the source code from Sourcify or Etherscan. Put in your Etherscan API key in the Remix settings. |
||||
For supported networks, please see`,
|
||||
|
||||
'udapp.displayName': 'Deploy & run transactions', |
||||
'udapp.gasLimit': 'Gas limit', |
||||
'udapp.account': 'Account', |
||||
'udapp.value': 'Value', |
||||
'udapp.contract': 'Contract', |
||||
'udapp.signAMessage': 'Sign a message', |
||||
'udapp.enterAMessageToSign': 'Enter a message to sign', |
||||
'udapp.hash': 'hash', |
||||
'udapp.signature': 'signature', |
||||
'udapp.signedMessage': 'Signed Message', |
||||
'udapp.environment': 'Environment', |
||||
'udapp.environmentDocs': 'Click for docs about Environment', |
||||
'udapp.deploy': 'Deploy', |
||||
'udapp.publishTo': 'Publish to', |
||||
'udapp.or': 'or', |
||||
'udapp.atAddress': 'At Address', |
||||
'udapp.noCompiledContracts': 'No compiled contracts', |
||||
'udapp.loadContractFromAddress': 'Load contract from Address', |
||||
'udapp.deployedContracts': 'Deployed Contracts', |
||||
'udapp.deployAndRunClearInstances': 'Clear instances list and reset recorder', |
||||
'udapp.deployAndRunNoInstanceText': 'Currently you have no contract instances to interact with.', |
||||
'udapp.transactionsRecorded': 'Transactions recorded', |
||||
|
||||
'search.displayName': 'Search in files', |
||||
'search.replace': 'Replace', |
||||
'search.replaceAll': 'Replace All', |
||||
'search.placeholder1': 'Search ( Enter to search )', |
||||
'search.placeholder2': 'Include ie *.sol ( Enter to include )', |
||||
'search.placeholder3': 'Exclude ie .git/**/* ( Enter to exclude )', |
||||
'search.matchCase': 'Match Case', |
||||
'search.matchWholeWord': 'Match Whole Word', |
||||
'search.useRegularExpression': 'Use Regular Expression', |
||||
'search.replaceWithoutConfirmation': 'replace without confirmation', |
||||
'search.filesToInclude': 'Files to include', |
||||
'search.filesToExclude': 'Files to exclude', |
||||
|
||||
'solidity.displayName': 'Solidity compiler', |
||||
'solidity.compiler': 'Compiler', |
||||
'solidity.addACustomCompiler': 'Add a custom compiler', |
||||
'solidity.addACustomCompilerWithURL': 'Add a custom compiler with URL', |
||||
'solidity.includeNightlyBuilds': 'Include nightly builds', |
||||
'solidity.autoCompile': 'Auto compile', |
||||
'solidity.hideWarnings': 'Hide warnings', |
||||
'solidity.enableHardhat': 'Enable Hardhat Compilation', |
||||
'solidity.learnHardhat': 'Learn how to use Hardhat Compilation', |
||||
'solidity.enableTruffle': 'Enable Truffle Compilation', |
||||
'solidity.learnTruffle': 'Learn how to use Truffle Compilation', |
||||
'solidity.advancedConfigurations': 'Advanced Configurations', |
||||
'solidity.compilerConfiguration': 'Compiler configuration', |
||||
'solidity.compilationDetails': 'Compilation Details', |
||||
'solidity.language': 'Language', |
||||
'solidity.evmVersion': 'EVM Version', |
||||
'solidity.enableOptimization': 'Enable optimization', |
||||
'solidity.useConfigurationFile': 'Use configuration file', |
||||
'solidity.change': 'Change', |
||||
'solidity.compile': 'Compile', |
||||
'solidity.noFileSelected': 'no file selected', |
||||
'solidity.compileAndRunScript': 'Compile and Run script', |
||||
'solidity.publishOn': 'Publish on', |
||||
'solidity.Assembly': 'Assembly opcodes describing the contract including corresponding solidity source code', |
||||
'solidity.Opcodes': 'Assembly opcodes describing the contract', |
||||
'solidity.name': 'Name of the compiled contract', |
||||
'solidity.metadata': 'Contains all informations related to the compilation', |
||||
'solidity.bytecode': 'Bytecode being executed during contract creation', |
||||
'solidity.abi': 'ABI: describing all the functions (input/output params, scope, ...)', |
||||
'solidity.web3Deploy': 'Copy/paste this code to any JavaScript/Web3 console to deploy this contract', |
||||
'solidity.metadataHash': 'Hash representing all metadata information', |
||||
'solidity.functionHashes': 'List of declared function and their corresponding hash', |
||||
'solidity.gasEstimates': 'Gas estimation for each function call', |
||||
'solidity.Runtime Bytecode': 'Bytecode storing the state and being executed during normal contract call', |
||||
'solidity.swarmLocation': 'Swarm url where all metadata information can be found (contract needs to be published first)', |
||||
|
||||
'pluginManager.displayName': 'Plugin manager', |
||||
'pluginManager.activate': 'Activate', |
||||
'pluginManager.deactivate': 'Deactivate', |
||||
'pluginManager.activeModules': 'Active Modules', |
||||
'pluginManager.inactiveModules': 'Inactive Modules', |
||||
'pluginManager.connectLocal': 'Connect to a Local Plugin', |
||||
'pluginManager.localForm.title': 'Local Plugin', |
||||
'pluginManager.localForm.pluginName': 'Plugin Name', |
||||
'pluginManager.localForm.shouldBeCamelCase': 'Should be camelCase', |
||||
'pluginManager.localForm.displayName': 'Display Name', |
||||
'pluginManager.localForm.nameInTheHeader': 'Name in the header', |
||||
'pluginManager.localForm.required': 'required', |
||||
'pluginManager.localForm.commaSeparatedMethod': 'comma separated list of method names', |
||||
'pluginManager.localForm.commaSeparatedPlugin': 'comma separated list of plugin names', |
||||
'pluginManager.localForm.pluginsItCanActivate': 'Plugins it can activate', |
||||
'pluginManager.localForm.typeOfConnection': 'Type of connection', |
||||
'pluginManager.localForm.locationInRemix': 'Location in remix', |
||||
'pluginManager.localForm.sidePanel': 'Side Panel', |
||||
'pluginManager.localForm.mainPanel': 'Main Panel', |
||||
'pluginManager.localForm.none': 'None', |
||||
} |
@ -0,0 +1,196 @@ |
||||
export default { |
||||
'panel.author': '作者', |
||||
'panel.maintainedBy': '维护者', |
||||
'panel.documentation': '文档', |
||||
'panel.description': '描述', |
||||
|
||||
'settings.displayName': '设置', |
||||
'settings.reset': '恢复默认设置', |
||||
'settings.general': '常规设置', |
||||
'settings.generateContractMetadataText': '生成合约元数据. 在contract文件夹中生成JSON文件. 允许指定合约依赖的库地址. 如果未指定任何内容,Remix将自动部署库.', |
||||
'settings.ethereunVMText': '加载时始终使用以太坊虚拟机', |
||||
'settings.wordWrapText': '文本换行', |
||||
'settings.useAutoCompleteText': '在编辑器中启用代码自动补全.', |
||||
'settings.useShowGasInEditorText': '在编辑器中展示 gas 预算.', |
||||
'settings.displayErrorsText': '编辑代码时展示错误提示.', |
||||
'settings.matomoAnalytics': '启用 Matomo 分析. 我们不会收集个人身份信息 (PII). 收集的信息只会用于提升 UX & UI. 查看更多关于 ', |
||||
'settings.enablePersonalModeText': '为web3提供器启用私有模式. 通过Web3发送的交易将使用web3.personal API.\n', |
||||
'settings.warnText': '在启用之前请确认访问端结点已经开放. \n此模式允许在Remix界面中提供密码而无需解锁账号. 虽然这很方便,但你应当完全信任所连接的后端节点 (Geth, Parity, ...). Remix不会持久化保存任何密码.'.split('\n').map(s => s.trim()).join(' '), |
||||
'settings.gitAccessTokenTitle': 'Github 访问令牌', |
||||
'settings.gitAccessTokenText': '管理用于发布到 Gist 以及读取 Github 内容的 GitHub 访问令牌.', |
||||
'settings.gitAccessTokenText2': '前往 github (参见下方链接) 创建一个新的token,然后保存到Remix中. 确保这个token只有 \'create gist\' 权限.', |
||||
'settings.etherscanTokenTitle': 'EtherScan 访问 Token', |
||||
'settings.etherscanAccessTokenText': '管理用于与Etherscan交互的api密钥.', |
||||
'settings.etherscanAccessTokenText2': '前往 Etherscan api 密钥页面 (参见下方链接),创建一个新的api密钥并保存到Remix中.', |
||||
'settings.save': '保存', |
||||
'settings.remove': '删除', |
||||
'settings.themes': '主题', |
||||
'settings.locales': '语言', |
||||
'settings.swarm': 'Swarm 设置', |
||||
'settings.ipfs': 'IPFS 设置', |
||||
|
||||
'filePanel.displayName': '文件浏览器', |
||||
'filePanel.workspace': '工作空间', |
||||
'filePanel.create': '新建', |
||||
'filePanel.clone': '克隆', |
||||
'filePanel.download': '下载', |
||||
'filePanel.restore': '恢复', |
||||
'filePanel.workspace.create': '新建工作空间', |
||||
'filePanel.workspace.rename': '重命名工作空间', |
||||
'filePanel.workspace.delete': '删除工作空间', |
||||
'filePanel.workspace.deleteConfirm': '确定要删除当前工作空间?', |
||||
'filePanel.workspace.name': '工作空间名称', |
||||
'filePanel.workspace.chooseTemplate': '选择一个工作空间模板', |
||||
'filePanel.workspace.download': '下载工作空间', |
||||
'filePanel.workspace.restore': '恢复工作空间', |
||||
'filePanel.workspace.clone': '克隆 Git 仓库', |
||||
'filePanel.workspace.enterGitUrl': '输入 Git 仓库地址', |
||||
'filePanel.newFile': '新建文件', |
||||
'filePanel.newFolder': '新建文件夹', |
||||
'filePanel.rename': '重命名', |
||||
'filePanel.delete': '删除', |
||||
'filePanel.deleteAll': '删除所有', |
||||
'filePanel.run': '运行', |
||||
'filePanel.pushChangesToGist': '将修改推送到gist', |
||||
'filePanel.publishFolderToGist': '将当前目录发布到gist', |
||||
'filePanel.publishFileToGist': '将当前文件发布到gist', |
||||
'filePanel.copy': '复制', |
||||
'filePanel.paste': '黏贴', |
||||
'filePanel.compile': '编译', |
||||
'filePanel.compileForNahmii': 'Nahmii编译', |
||||
'filePanel.createNewFile': '新建文件', |
||||
'filePanel.createNewFolder': '新建文件夹', |
||||
'filePanel.publishToGist': '将当前工作空间下所有文件发布到github gist', |
||||
'filePanel.uploadFile': '加载本地文件到当前工作空间', |
||||
'filePanel.updateGist': '更新当前 [gist] 浏览', |
||||
|
||||
'home.scamAlert': '诈骗警报', |
||||
'home.scamAlertText': 'Remix 唯一使用的 URL 是 remix.ethereum.org', |
||||
'home.scamAlertText2': '注意那些宣传 "liquidity front runner bots" 的在线视频', |
||||
'home.scamAlertText3': '其他安全提示', |
||||
'home.learnMore': '了解更多', |
||||
'home.here': '这里', |
||||
'home.featuredPlugins': '精选插件', |
||||
'home.files': '文件', |
||||
'home.newFile': '新建文件', |
||||
'home.openFile': '打开本地文件', |
||||
'home.connectToLocalhost': '连接本地主机', |
||||
'home.loadFrom': '从以下来源导入', |
||||
'home.resources': '资源', |
||||
|
||||
'terminal.listen': '监听所有交易', |
||||
'terminal.search': '按交易哈希或地址搜索', |
||||
'terminal.used': '已使用', |
||||
'terminal.welcomeText1': '欢迎使用', |
||||
'terminal.welcomeText2': '您的文件储存在', |
||||
'terminal.welcomeText3': '您可使用此终端', |
||||
'terminal.welcomeText4': '查看交易详情并启动调试', |
||||
'terminal.welcomeText5': '执行 JavaScript 脚本', |
||||
'terminal.welcomeText6': '直接在命令行界面输入脚本', |
||||
'terminal.welcomeText7': '在文件浏览器中选择一个 Javascript 文件,然后在命令行界面运行 `remix.execute()` 或 `remix.exeCurrent()` ', |
||||
'terminal.welcomeText8': '在文件浏览器中右键点击一个 JavaScript 文件,然后点击 `Run`', |
||||
'terminal.welcomeText9': '可以访问以下库', |
||||
'terminal.welcomeText10': '输入库名查看可用的指令', |
||||
|
||||
'debugger.displayName': '调试器', |
||||
'debugger.debuggerConfiguration': '调试器配置', |
||||
'debugger.stopDebugging': '停止调试', |
||||
'debugger.startDebugging': '开始调试', |
||||
'debugger.placeholder': '交易哈希, 应该以 0x 开头', |
||||
'debugger.introduction': `当使用交易哈希调试时,
|
||||
如果该合约已被验证, Remix 会试图从 Sourcify 或 Etherscan 获取源码. 在 Remix 中设置您的 Etherscan API key. |
||||
有关受支持的网络,请参阅`,
|
||||
|
||||
'udapp.displayName': '部署 & 发交易', |
||||
'udapp.gasLimit': 'Gas 上限', |
||||
'udapp.account': '账户', |
||||
'udapp.value': '以太币数量', |
||||
'udapp.contract': '合约', |
||||
'udapp.signAMessage': '给一个消息签名', |
||||
'udapp.enterAMessageToSign': '输入一个需要签名的消息', |
||||
'udapp.hash': '哈希', |
||||
'udapp.signature': '签名', |
||||
'udapp.signedMessage': '已签名的消息', |
||||
'udapp.environment': '环境', |
||||
'udapp.environmentDocs': '点击查看环境文档', |
||||
'udapp.deploy': '部署', |
||||
'udapp.publishTo': '发布到', |
||||
'udapp.or': '或', |
||||
'udapp.atAddress': 'At Address', |
||||
'udapp.noCompiledContracts': '没有已编译的合约', |
||||
'udapp.loadContractFromAddress': '加载此地址的合约', |
||||
'udapp.deployedContracts': '已部署的合约', |
||||
'udapp.deployAndRunClearInstances': '清空合约实例并重置交易记录', |
||||
'udapp.deployAndRunNoInstanceText': '当前您没有可交互的合约实例.', |
||||
'udapp.transactionsRecorded': '已记录的交易', |
||||
|
||||
'search.displayName': '全文搜索', |
||||
'search.replace': '替换', |
||||
'search.replaceAll': '替换所有', |
||||
'search.placeholder1': '搜索 ( 回车搜索 )', |
||||
'search.placeholder2': '包含 ie *.sol ( 回车包含 )', |
||||
'search.placeholder3': '排除 ie .git/**/* ( 回车排除 )', |
||||
'search.matchCase': '大小写匹配', |
||||
'search.matchWholeWord': '全字匹配', |
||||
'search.useRegularExpression': '使用正则表达式', |
||||
'search.replaceWithoutConfirmation': '替换无需确认', |
||||
'search.filesToInclude': '文件包含', |
||||
'search.filesToExclude': '文件排除', |
||||
|
||||
'solidity.displayName': 'Solidity 编译器', |
||||
'solidity.compiler': '编译器', |
||||
'solidity.addACustomCompiler': '添加一个自定义编译器', |
||||
'solidity.addACustomCompilerWithURL': '通过URL添加一个自定义编译器', |
||||
'solidity.includeNightlyBuilds': '包含每日构造版本', |
||||
'solidity.autoCompile': '自动编译', |
||||
'solidity.hideWarnings': '隐藏警告', |
||||
'solidity.enableHardhat': '启用 Hardhat 编译', |
||||
'solidity.learnHardhat': '学习怎么使用 Hardhat 编译', |
||||
'solidity.enableTruffle': '启用 Truffle 编译', |
||||
'solidity.learnTruffle': '学习怎么使用 Truffle 编译', |
||||
'solidity.advancedConfigurations': '高级配置', |
||||
'solidity.compilerConfiguration': '编译器配置', |
||||
'solidity.compilationDetails': '编译详情', |
||||
'solidity.language': '语言', |
||||
'solidity.evmVersion': 'EVM 版本', |
||||
'solidity.enableOptimization': '启用优化', |
||||
'solidity.useConfigurationFile': '使用配置文件', |
||||
'solidity.change': '修改', |
||||
'solidity.compile': '编译', |
||||
'solidity.noFileSelected': '未选中文件', |
||||
'solidity.compileAndRunScript': '编译且执行脚本', |
||||
'solidity.publishOn': '发布到', |
||||
'solidity.Assembly': '合约的汇编操作码,包含对应的solidity源程序', |
||||
'solidity.Opcodes': '合约的汇编操作码', |
||||
'solidity.name': '已编译合约的名称', |
||||
'solidity.metadata': '包含编译相关的全部信息', |
||||
'solidity.bytecode': '合约创建时执行的字节码', |
||||
'solidity.abi': 'ABI: 全部合约函数的描述 (输入/输出 参数, 作用域, ...)', |
||||
'solidity.web3Deploy': '拷贝/粘贴这部分代码到任何 JavaScript/Web3 控制台都可以部署此合约', |
||||
'solidity.metadataHash': '元数据的哈希值', |
||||
'solidity.functionHashes': '合约定义的函数清单,包含对应的哈希', |
||||
'solidity.gasEstimates': '每个函数调用的Gas估算值', |
||||
'solidity.Runtime Bytecode': '用于保存状态并在合约调用期执行的字节码', |
||||
'solidity.swarmLocation': '可以找到所有元数据信息的Swarm url (首先需要发布合约) ', |
||||
|
||||
'pluginManager.displayName': '插件管理', |
||||
'pluginManager.activate': '启用', |
||||
'pluginManager.deactivate': '停用', |
||||
'pluginManager.activeModules': '启用的模块', |
||||
'pluginManager.inactiveModules': '停用的模块', |
||||
'pluginManager.connectLocal': '连接本地插件', |
||||
'pluginManager.localForm.title': '本地插件', |
||||
'pluginManager.localForm.pluginName': '插件名称', |
||||
'pluginManager.localForm.shouldBeCamelCase': '应当采用驼峰命名法', |
||||
'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': '无', |
||||
} |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 639 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 552 KiB |
After Width: | Height: | Size: 972 KiB |
After Width: | Height: | Size: 6.8 KiB |